Python编写trick or treat代码运行失败 input判断逻辑异常如何修复
问题诊断
- 变量未定义错误:代码中将用户输入存储到了变量
x中,但后续判断逻辑全程没有使用x,反而直接调用了未定义的treat、trick变量,运行时会直接抛出NameError。 - 输入类型不匹配:
input()函数返回的所有结果都是字符串类型,你没有做任何类型或逻辑转换,直接和布尔值True做判断,必然永远不满足条件。 - 运算符使用不当:
is运算符用于判断两个对象的内存地址是否一致,判断值相等应当使用==运算符。
修正方案
你可以根据实际交互逻辑调整,比如判断用户输入的内容是否为指定字符串,示例代码如下:
# 让用户输入trick或者treat user_input = input("Enter 'trick' or 'treat': ").strip().lower() if user_input == "treat": print("treat") else: print("trick")
如果需要实现输入特定内容返回布尔真的逻辑,也可以按如下方式调整:
x = input("Enter a letter: ").strip() # 约定输入字母t则treat为真 treat = x.lower() == 't' if treat: print("treat") else: print("trick")
内容的提问来源于stack exchange,提问作者Joseph Diblasi
相关产品推荐
相关产品推荐

