我很快就要弄明白这件事了,但我必须把目光放在解决问题的正确方向上。该程序旨在接收以摄氏度为单位的温度值,将其转换为华氏度,然后计算“凉爽”、“温暖”和“炎热”的天数。我已经解决了这个问题的前两个部分,但不管出于什么原因,我的程序没有正确计算每一天的数量。
temperature_list = []
value = int(input("Number of temperatures to enter: "))
for i in range(value):
#We now collect the values
t = int(input("Enter temperature: "))
temperature_list.append(t)
print("Your entered temperatures in Celsius are: ", temperature_list)
#Next up is to print those temperatures in Fahrenheit, which we'll do in a batch
f_list = list()
f = [t*1.8 + 32 for t in temperature_list]
f_list.append(f)
fint = int(f[0])
cooldays = 0
hotdays = 0
for f in f_list:
if fint > 65 :
cooldays = cooldays + 1
if fint < 80 :
hotdays = hotdays + 1
print("Your temperature in Fahrenheit is: ", f[:])
warmdays = (len(f_list) - (cooldays + hotdays))
print(cooldays)
print(hotdays)
print(warmdays)
有人能告诉我我错过了什么吗?
目前,您正在使用每个迭代的阈值检查fint。相反,您希望对照f\u列表中的每个值检查它。
其次,根据你的要求,你也可能需要改变你的条件。喜欢例如66大于65并且也小于80。所以它会同时增加...请修改你的条件。
第三,f=[t*1.8 32 for t intemperature_list]
使f
成为一个浮动列表。您将此附加到另一个列表,f_list
。本质上,您的f_list现在是一个2D矩阵。例如:[[65,66,68.2, 98.3]]
注意双方括号...您可以直接将温度分配给f_list
,而不是创建中间变量f
f_list = [t*1.8 + 32 for t in temperature_list]
for f in f_list:
if f < 65 :
cooldays = cooldays + 1
elif f > 80 :
hotdays = hotdays + 1