我需要一些帮助。 我试图让我的for循环工作小数,但我的代码不能接受浮动,我不知道下一步该做什么。任何人都可以指出我哪里出错了吗?
它是用于将Celsius转换为Fahrenheit的代码,用户定义的步骤(Delta)。这是:
def main():
# Handshake
print("This program will convert a range of Celsius degrees to")
print("Fahrenheit degrees based on your input.")
# Ask and read low end of range
Rangelow = eval(input("Enter the low end of your range: "))
# Ask and read top end of range
Rangehigh = 1 + eval(input("Enter the high end of your range: "))
# Ask and read Delta
Delta = eval(input("Enter the Delta for your range: "))
#Display output
print("Celsius to Fahrenheit by", Delta)
for i in range(Rangelow, Rangehigh, Delta):
print(i, " ", 9/5 * i + 32)
main()
这是我的意思的一个例子:
此程序会将摄氏度范围转换为 华氏度根据您的输入而定。 输入范围的低端:3.8 输入范围的高端:14.7 输入您的范围的Delta:1.1 摄氏度到华氏度1.1 Traceback(最近一次调用最后一次): 文件" C:\ Users \ jarre \ Desktop \ Python Programs \ Conversion.py",第27行,in 主要() 文件" C:\ Users \ jarre \ Desktop \ Python程序\ Conversion.py",第22行,主要 我在范围内(Rangelow,Rangehigh + 1,Delta): TypeError:' float' object不能解释为整数
我应该注意问题似乎在于输入,输出转换后输出没有问题抛出小数。
答案 0 :(得分:3)
你不能使用内置的浮点数/小数增量,但构建自己的生成器相当容易:
def decimal_range(start, stop, increment):
while start < stop: # and not math.isclose(start, stop): Py>3.5
yield start
start += increment
for i in decimal_range(Rangelow, Rangehigh, Delta):
...
或者你可以使用numpy
,但这感觉就像一把大锤破解坚果:
import numpy as np
for i in np.arange(Rangelow, Rangehigh, Delta):
...