You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FOR循环输出对应CSV值的Python代码优化求助

简化代码并实现正确格式输出的解决方案

优化后的代码

# 获取用户输入并做合法性校验
while True:
    print('Give me a number that\'s 0 - 50:')
    try:
        user_num = int(input())
        if 0 <= user_num <= 50:
            break
        print('Number must be between 0 and 50. Try again.')
    except ValueError:
        print('Please enter a valid integer.')

# 配对州名与人口,按要求格式输出
for name, population in zip(state_names[:user_num], state_populations[:user_num]):
    # 左对齐州名(占10字符宽度),保证格式整齐
    print(f'{name:<10} {population}')

关键改进点

  • 移除冗余代码:原代码中两个for循环完全没必要,直接通过切片state_names[:user_num]即可获取前user_num个元素,无需循环判断。
  • 配对数据输出:使用zip()函数同时遍历州名和人口的切片,直接获取每一组对应的数据。
  • 格式化输出:利用f-string的<10格式控制,让州名左对齐并占用固定宽度,确保输出格式与期望一致。
  • 输入校验:增加循环校验逻辑,避免用户输入非整数或超出0-50范围的数值,提升程序健壮性。

测试效果

当输入为3时,输出结果:

Michigan   9986857
Georgia   10617423
Ohio      11689100

内容的提问来源于stack exchange,提问作者Jake A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:20:00