在Python数组中计算值

2024-10-17 08:28:24 发布

您现在位置: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)

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


Tags: toin程序forinputvaluelistint
1条回答
网友
1楼 · 发布于 2024-10-17 08:28:24

目前,您正在使用每个迭代的阈值检查fint。相反,您希望根据f_list中的每个值检查它

其次,根据您的需求,您可能还需要更改您的条件。例如,66大于65,也小于80。因此,它将同时增加。。。请修改你的条件

第三,f = [t*1.8 + 32 for t in temperature_list]使f成为一个浮动列表。您可以将其附加到另一个列表f_list。本质上,您的f_列表现在是一个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

相关问题 更多 >