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

Python使用len()统计用户输入城市列表数量结果异常排查

问题根因

计数错误的核心问题出在城市列表的赋值逻辑:

places_lived_list = [input("Which cities have you lived in: ")]

input() 函数的返回值是用户输入的完整字符串,你直接用方括号包裹这个字符串,生成的列表永远只有1个元素——不管你输入多少个用逗号分隔的城市,所有输入内容都只是列表里唯一的字符串,len()统计结果自然永远是1,和实际输入的城市数量无关。

修复方案

你需要先获取用户输入的整段字符串,再按逗号分割为独立的城市条目,同时清理输入时可能带有的多余空格、无效空值,才能得到正确的城市列表做统计。
修复后的完整可运行代码:

# 存储用户输入的姓名
myfirst_string = input("Hello, What is your name: ")

# 输出姓名的前两个字符
print("The first two letters of your name is: ", myfirst_string[0] + myfirst_string[1])

# 接收居住城市输入,按逗号分割为列表,自动清理每个城市名前后空格、过滤空条目
cities_input = input("Which cities have you lived in (separate multiple cities with commas): ")
places_lived_list = [city.strip() for city in cities_input.split(',') if city.strip()]

# 输出居住城市列表和统计数量
print("You have lived in these cities: ", places_lived_list)
city_count = len(places_lived_list)
print(f"you have lived in {city_count} {'City' if city_count == 1 else 'Cities'}")
改动说明
  • 用split(',')把用户输入的逗号分隔字符串拆分为独立的城市名条目
  • 用strip()清除每个城市名前后不小心输入的空格、制表符,避免出现" 上海"这类带多余空格的无效条目
  • 增加空值过滤逻辑,自动跳过用户多打逗号产生的空字符串,不会把无效内容计入城市数量
  • 优化了数量输出的单复数适配,统计结果为1时显示City,大于1时显示Cities,表述更准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:09:11