添加elif后Python条件语句执行异常,请求修正交互逻辑
问题分析与修复方案
问题根源
修改后的代码把参数索引输入逻辑放到了遍历weather_data['resource']的for循环内部:
- 输入'y'时,每打印一个参数就会弹出输入提示,而非打印完所有参数后统一提示
- 输入'n'时,循环会遍历所有资源项,每一次迭代都触发输入提示(但实际只需要一次输入)
修复后的代码
调整逻辑,将参数索引输入放到循环外部,确保仅触发一次:
def create_parameter_url(weather_data): list_parameters = str(input('Would you like to see available parameters? y/n \n>>>')) # 处理参数列表展示逻辑 if list_parameters == 'y': for i in range(len(weather_data['resource'])): print(i+1 , ":" , weather_data['resource'][i]['title'] , weather_data['resource'][i]['summary']) # 统一提示输入参数索引,仅执行一次 choose_parameter = str(input('\nEnter the index of a parameter (integer): \n>>>')) parameter_url = first_url_no_json + choose_parameter return parameter_url
逻辑说明
- 先判断用户是否需要查看参数列表,若是则遍历打印所有参数项
- 无论用户选'y'还是'n',都在完成列表展示(或直接跳过)后,仅触发一次参数索引输入
- 完全匹配需求:选'y'先看参数列表再输入索引,选'n'直接跳过列表输入索引
内容的提问来源于stack exchange,提问作者ilra
相关产品推荐
相关产品推荐

