不能将序列乘以'float'类型的非int

时间:2013-07-07 21:35:45

标签: python

我想将两个变量相乘。它们是原始输入但它总是给我这个错误。

no1 = raw_input('Your first number')
no2 = raw_input('Your second number')

answer = no1 * no2

2 个答案:

答案 0 :(得分:1)

raw_input返回一个字符串,首先将它们转换为整数或浮点数以执行数值运算。

no1 = float(raw_input('Your first number'))
no2 = float(raw_input('Your second number'))

在py2.x上你也可以使用input,如果它会自动将输入字符串转换为a 数。但如果不知道输入来源,那就不安全了。

raw_input上的帮助:

>>> print raw_input.__doc__
raw_input([prompt]) -> string

Read a string from standard input.  The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled.  The prompt string, if given,
is printed without a trailing newline before reading.

input上的帮助:

>>> print input.__doc__
input([prompt]) -> value

Equivalent to eval(raw_input(prompt)).

答案 1 :(得分:0)

您正在尝试将2个字符串相乘,因此您需要通过调用float结果上的raw_input函数将它们手动转换为浮点数。

在python 2中,你也可以使用input函数而不是raw_input - 它会自动执行。

警告 - 此函数完全不安全 - 它将输入字符串作为python代码执行(与eval函数的方式相同)。除非您信任用户,否则不要使用它