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

Python判断用户输入是否匹配字符串列表时条件判断不生效问题

问题根因

代码不触发打印是两个写法错误:

  • 你写for循环遍历Addition时,每次取出来的单个匹配字符串存在变量x里,但判断条件写的是welcome == Addition——相当于拿用户输入的单个字符串,和存了5个值的整个元组做相等判断,结果永远是False。
  • 就算删掉循环直接判断welcome == Addition,本质还是拿字符串类型和元组类型做比较,不可能匹配成功。
修正方案

根本不需要手动写for循环遍历,Python内置的in关键字原生支持判断元素是否在序列/集合里,写法简洁还不容易错:

# input()本身返回字符串类型,不需要额外套str()转换
welcome = input("Welcome to the calculator, which form of operation do you wish to choose? ")
# 加法匹配关键词集合
Addition = ("Add", "add", "Addition", "addition", "+")

if welcome in Addition:
    print("Works")
    # 后续在这里补加法运算的逻辑即可

如果你是想练习循环写法(实际开发不推荐这么写),正确的循环判断逻辑应该是和遍历出来的单个值做比较:

is_add = False
for keyword in Addition:
    if welcome == keyword:
        is_add = True
        break # 匹配到就直接跳出循环,不用多余遍历
if is_add:
    print("Works")

额外小提示:后续你加其他运算(减法、乘法、除法)的匹配逻辑时,也可以直接用elif搭配in判断,结构会非常清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:24:20