python - 在 while 循环中使用 if 语句
问题描述
我正在尝试使用 if 语句将某个范围内的数字分类为热、冷或宜人的温度,但它不起作用。这是我的代码:
cold = 0
hot = 0
pleasant = 0
temp = int(input("Temperature C (-500 to stop): "))
while temp >= -499:
temp = int(input("Temperature C (-500 to stop): "))
if temp > 28:
hot = hot + 1
elif 28 > temp > 17:
pleasant = pleasant + 1
elif temp < 18:
cold = cold + 1
print('Cold days: {}'.format(cold))
print('Pleasant days: {}'.format(pleasant))
print('Hot days: {}'.format(hot))
-------- 任何帮助都非常感谢,谢谢
解决方案
您应该仅在 while 循环结束时再次要求输入,否则您的第二个输入将覆盖第一个输入(while 循环之前的那个)。这是固定代码:
cold = 0
hot = 0
pleasant = 0
temp = int(input("Temperature C (-500 to stop): "))
while temp >= -499:
if temp > 28:
hot = hot + 1
print("hot updated")
elif 28 > temp > 17:
pleasant = pleasant + 1
print("pleasant updated")
elif temp < 18:
cold = cold + 1
print("cold updated")
temp = int(input("Temperature C (-500 to stop): "))
print('Cold days: {}'.format(cold))
print('Pleasant days: {}'.format(pleasant))
print('Hot days: {}'.format(hot))
推荐阅读
- angular - GeoJSON 是否包含在 JS 原生中?
- r - 通过 Windows 任务计划程序运行的 R 脚本失败
- python - 如果我在 XGB 模型中具有主导特征,我该怎么办?
- html - 如何始终将页脚放在底部但不将其位置设置为固定(因为它位于实际内容之间)
- authentication - Google Auth:“oauth 状态丢失或无效。位置未知”
- excel - 尝试突出显示大于 15 的单元格时,Excel 中的条件格式选择错误的行
- oracle - Oracle NLS_LANG 设置正确(WE8ISO8859P1),但会话以 US7ASCII 开始
- flutter - Flutter 中的跨平台文件缓存
- javascript - Vuejs计算属性for循环打印所有值,但只返回一个值
- mysql - 如何在日志文件中恢复mysql产生的错误?