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

如何验证用户输入是否为列表目标项?Python代码调试求助

解决Python猜城市游戏的逻辑问题

嘿,我来帮你搞定这个猜城市代码的问题!咱们先拆解下原代码里的几个关键bug,再给出修正方案:

原代码里的核心问题

  • 变量名拼写混乱:你把guessing写成了gussing,虽然Python允许这种写法,但很容易搞混,统一拼写能避免不必要的麻烦。
  • 类型不匹配的条件判断:gussing != guessing_list[1:5]是拿字符串和列表切片(一个列表对象)做比较,这俩永远不可能相等,导致循环会一直跑直到次数耗尽,根本触发不了成功分支。
  • 细节拼写错误:比如Peris应该是Paris,You're out or range!里的or是错别字,应该是of。

修正后的代码(匹配列表中任意城市即可成功)

如果你的需求是输入列表里的任意城市(包括你指定的"Brooklyn")都算成功,那用这个版本:

guessing_list = ["New York", "Mumbai", "Brooklyn", "Tokyo", "Paris"]
guessing = ""
guessing_counting = 0
guessing_limits = 4
guessing_range = False

# 循环条件改为:输入不在目标列表中,且未超出次数限制
while guessing not in guessing_list and not guessing_range:
    if guessing_counting < guessing_limits:
        guessing = input("Enter Your dream city: ")  # input本身返回字符串,无需str()转换
        guessing_counting += 1
    else:
        guessing_range = True

if guessing_range:
    print("You're out of range!")
else:
    print("You got your dream city!")

只匹配"Brooklyn"的版本

如果你的需求是只有输入"Brooklyn"才算成功,其他输入都算失败,那用这个简化版:

guessing = ""
guessing_counting = 0
guessing_limits = 4
guessing_range = False

while guessing != "Brooklyn" and not guessing_range:
    if guessing_counting < guessing_limits:
        guessing = input("Enter Your dream city: ")
        guessing_counting += 1
    else:
        guessing_range = True

if guessing_range:
    print("You're out of range!")
else:
    print("You got your dream city!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:07:10