提问者:小点点

在Python数组中计算值


我很快就要弄明白这件事了,但我必须把目光放在解决问题的正确方向上。该程序旨在接收以摄氏度为单位的温度值,将其转换为华氏度,然后计算“凉爽”、“温暖”和“炎热”的天数。我已经解决了这个问题的前两个部分,但不管出于什么原因,我的程序没有正确计算每一天的数量。

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)

有人能告诉我我错过了什么吗?


共1个答案

匿名用户

目前,您正在使用每个迭代的阈值检查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