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

如何实现输入不区分大小写?Python国家查大洲项目求助

问题分析与解决方案

你的代码核心问题是仅对输入的国家名做了大写转换,但列表里的国家名大小写不统一(比如"senegal"是全小写、"South africa"是混合大小写),导致转成大写的输入和列表元素无法匹配。

解决办法(两种可选)

方法一:提前将国家列表转为大写集合(推荐,查询效率更高)

把列表里的所有国家名都统一转成大写,同时用集合存储(集合的成员查询速度比列表快,适合后续扩展更多国家):

country = input('Tell me a country... ')

# 统一转换为大写并存储为集合
countries_in_africa = {
    "Sao Tome and Principe".upper(),
    "senegal".upper(),
    "Seychelles".upper(),
    "Sierra Leone".upper(),
    "Somalia".upper(),
    "South africa".upper(),
    "South Sudan".upper()
}

if country.upper() in countries_in_africa:
    print('这个国家在非洲')
else:
    print('这个国家不在非洲')

方法二:判断时动态转换列表元素的大小写

如果不想修改原列表,可以在判断时把列表里的每个元素都转成大写,再和转大写的输入对比:

country = input('Tell me a country... ')

countries_in_africa = ["Sao Tome and Principe", "senegal",
                       "Seychelles", "Sierra Leone", "Somalia", "South africa", "South Sudan", ]

# 生成临时的大写列表用于匹配
if country.upper() in [c.upper() for c in countries_in_africa]:
    print('这个国家在非洲')
else:
    print('这个国家不在非洲')

原理说明

不管用户输入的是Senegal、SENEGAL还是senegal,转成大写后都是SENEGAL,和列表里统一转换后的国家名一致,就能解决大小写敏感导致的匹配失败问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:41:00