python上的简单摄氏到华氏程序由于编码错误而无法工作。程序应该通过循环运行
我得到这个错误:python上的简单摄氏到华氏程序由于编码错误而无法工作。程序应该通过循环运行,python,Python,我得到这个错误: a=int(input("Enter any number: ")) b=float(a*9//5)+32 print(b) for x in range(5,50,b): print (x) 输入任意数字:43 109 回溯(最近一次呼叫最后一次): 文件“main.py”,第4行,在 对于范围(5,50,b)内的x: TypeError:“float”对象不能解释为整数 范围的步骤参数应为整数() 既然你在进行分区( 9/5版/代码>),你保证 b 将是一个整数,
a=int(input("Enter any number: "))
b=float(a*9//5)+32
print(b)
for x in range(5,50,b):
print (x)
输入任意数字:43
109
回溯(最近一次呼叫最后一次):
文件“main.py”,第4行,在
对于范围(5,50,b)内的x:
TypeError:“float”对象不能解释为整数
范围的步骤
参数应为整数()
既然你在进行分区(<代码> 9/5版/代码>),你保证<代码> b <代码>将是一个整数,所以你可以考虑改写定义<代码> b>代码>的行:
Enter any number: 43
109.0
Traceback (most recent call last):
File "main.py", line 4, in <module>
for x in range(5,50,b):
TypeError: 'float' object cannot be interpreted as an integer
然后剩下的代码将按原样工作
样本输出:
>>> a = 2
>>> b = (a * 9 // 5) + 32
>>> b
35
a = int(input("Enter any number: "))
b = a * 9 / 5 + 32 # one slash instead of two
print(b)
x = 5
while x < 50:
print(x)
x += b
我猜您打算乘以1.8,所以您需要将b
保持为浮点数,并进行正常除法。在这种情况下,您可以尝试while
循环:
Enter any number: 4
39
5
44
注意:此代码适用于Python3,其中9/5=1.8
。对于Python 2,整数除法默认为楼层除法-9/5=1
,因此需要编写:
Enter any number: 1
33.8
5
38.8
相反。您希望得到什么输出?
对于范围(5,50,int(b))中的x:
python范围中的间隔参数不能是浮点。要做到这一点,您需要numpy或其他循环<编码>x=5;当x<50时:打印(x);x+=b
b = a * (9.0 / 5) + 32