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

Python宝可梦初始精灵选择脚本异常:无论输入均仅选中Squirtle

问题分析与修复方案

核心问题

你在获取输入后调用了.lower()把输入转为全小写,但判断条件里用的是首字母大写的精灵名称(比如"Bulbasaur"),两者永远无法匹配,所以不管输入什么都会进入else分支,默认选中Squirtle。另外原代码里rival_name变量未定义,运行时会抛出NameError,需要补充定义。

修复方案

把判断条件里的精灵名称改为全小写,和转小写后的输入匹配,同时补充rival_name的定义:

rival_name = "Gary"  # 根据需求替换成你需要的对手名字

starter = input("Which Pokemon will you choose?").lower()

if starter == "bulbasaur":
  print("You chose Bulbasaur")
  print(f"{rival_name}: I choose you, Charmander!")
elif starter == "charmander":
  print("You chose Charmander")
  print(f"{rival_name}: I choose you, Squirtle!")
else:
  print("You chose Squirtle")
  print(f"{rival_name}: I choose you, Bulbasaur!")

也可以选择保留判断条件里的大写名称,去掉输入的.lower(),但这种方式对用户输入的大小写敏感(比如必须输入"Bulbasaur"才能匹配),不如转小写的方式友好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:34:56