计算引发错误“无法将序列乘以'int'类型的非int”

时间:2017-09-11 00:14:51

标签: python-3.x

所以,我想用python 3编写一个程序,它可以帮助用户计算圆和圆球的周长。到目前为止,这就是我所拥有的。

pi = 3.14159
value = input("Enter the value of your radius:")
circ = 2*pi*value
print(circ)

但是,它一直说“不能将序列乘以'int'类型的非int”。我该如何解决?而且,如何仅将输入作为数字?谢谢。

2 个答案:

答案 0 :(得分:0)

value = float(input("Enter the value of your radius: "))

请注意,如果输入不是数字,则会抛出错误。

此外,虽然您无法控制他们输入的内容,但如果他们输入其他任何内容,您可以继续询问数字:

while True: try: value = float(input("Enter the value of your radius: ")) except ValueError: print("Please enter a number")

答案 1 :(得分:0)

按原样运行程序

bash-3.2$ python3 test.py
Enter the value of your radius:10
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    circ = 2*pi*value
TypeError: can't multiply sequence by non-int of type 'float'

问题是valueinput返回后包含一个字符串 并且python试图将float(2 * pi)和字符串(字符序列value)相乘。 要纠正此问题,您可能希望在乘法之前将值转换为浮点数。 e.g。

pi = 3.14159
value = input("Enter the value of your radius:")
circ = 2*pi*float(value)
print(circ)

使用此更改运行示例

bash-3.2$ python3 test.py
Enter the value of your radius:10
62.8318