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

Python实现英超球队胜平负查询时if语句失效求助

问题分析与解决方案

嘿,我一眼就瞅出你代码里的问题啦!你的if语句没法正常工作,核心原因是没有正确调用字符串的lower()方法,另外还有个小拼写失误,我给你一步步拆解:

1. 直接导致if失效的关键问题

你写的:

team = input(...).lower
winDrawLoss = input(...).lower

这里的.lower只是引用了字符串的lower方法对象,并没有执行它!也就是说,team和winDrawLoss存储的不是用户输入的小写字符串,而是方法本身,自然没法和你写的"manchester city"这类字符串条件匹配。

修正方法:给lower加上括号,调用方法来转换字符串:

team = input("Do you want to know Manchester City, Manchester United, Chelsea, Liverpool or Tottenham Hotspur?").lower()
winDrawLoss = input("Do you want to know wins, draws or losses?").lower()

2. 小细节修正

你输入提示里的Machester United少了一个字母n,应该是Manchester United,虽然不影响代码逻辑,但可能会让用户输入时产生困惑,建议修正过来。

代码优化建议(可选)

如果以后要添加更多球队,一堆elif会显得很冗余,推荐用字典映射来简化球队和索引的对应关系,代码会更清晰易维护:

# 初始化数据,建议给列表加语义化的注释
league = [
    ["20","14","14","12","11"],  # 胜场
    ["2","5","4","8","5"],       # 平场
    ["0","3","4","2","5"]        # 负场
]

# 用字典存储球队与索引的映射
team_index_map = {
    "manchester city": 0,
    "manchester united": 1,
    "chelsea": 2,
    "liverpool": 3,
    "tottenham hotspur": 4
}

# 获取用户输入并处理
team_input = input("Do you want to know Manchester City, Manchester United, Chelsea, Liverpool or Tottenham Hotspur? ").lower()
if team_input not in team_index_map:
    print("抱歉,你输入的球队不在查询范围内哦!")
else:
    team_num = team_index_map[team_input]
    wdl_input = input("Do you want to know wins, draws or losses? ").lower()
    
    # 匹配查询类型并输出
    if wdl_input == "wins":
        print(f"{team_input.title()}的胜场是:{league[0][team_num]}")
    elif wdl_input == "draws":
        print(f"{team_input.title()}的平场是:{league[1][team_num]}")
    elif wdl_input == "losses":
        print(f"{team_input.title()}的负场是:{league[2][team_num]}")
    else:
        print("请输入正确的选项哦:wins、draws或losses")

这样不仅解决了原问题,还增加了输入合法性判断,让程序更健壮~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:28:17