python - 训练任务python if循环的问题
问题描述
我正在尝试创建一个循环来收集天气信息并打印天气在某些预设中的日期。我很挣扎,因为打印只使用最后一个输入来列出日期,而第一个输入被丢弃。
使用评论中的更新后,我的代码看起来像这样,但它仍然无法正常工作,代码忽略大于和小于,并打印前 3 天。它也会产生这个错误:IndexError: string index out of range
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
rainlist = []
windlist = []
temperaturelist = []
for day in week:
rain = input('What is the amount of rain today? ')
rainlist.append(rain)
wind = input('What is the current windspeed? ')
windlist.append(wind)
temperature = input('What is the temperature? ')
temperaturelist.append(temperature)
for idx, day in enumerate(week) :
if rain[idx] > '1':
print(f'it is more than 1mm rain on {day} . It was {rainlist[idx]}')
if wind[idx] > '10':
print(f'it is more than 10m/s of wind on {day}. It was {windlist[idx]} m/s')
if temperature[idx] < '5':
print(f'it was less than 5 degrees on {day}. It was {temperaturelist[idx]} degrees celsius')
解决方案
您需要索引风、雨和温度列表,您可以使用enumerate
它。也format
用于输出:
for idx, day in enumerate(week) :
if rain[idx] > 1:
print('it is more than 1mm rain on {}. It was {} mm'.format(day,
rain[idx]))
if wind[idx] > 10:
print('it is more than 10m/s of wind on {}. It was \
{} m/s'.format(day, wind[idx]))
if temperature[idx] < 5:
print('it was less than 5 degrees on {}. It was {} degrees \
celsius'.format(day, temperature[idx]))
推荐阅读
- sql-server - 使用合并和自动递增值插入数据
- python - 错误的解释器:/usr/bin/python3:在 Kali Linux 上没有这样的文件或目录
- sql - 将两个表合并为一个新表
- django - 在 Elastic Beanstalk SSH 上运行 Django 命令 -> 缺少环境变量
- php - PHP POST 请求到 Android Volley POST 请求
- flutter - RadioListTile 不改变选中
- javascript - 将日期格式从 MM/DD/YYYY 编辑为 DD/MM/YYY
- visual-studio - Visual Studio 自动对齐
- c# - C#当有空单元格时按几列降序对数据表进行排序
- python - Tensorflow - Numpy 数组和形状错误