Python 3.6.5中判断字符串用逗号分隔报错,求解决方法
解决你的Python条件判断语法问题
嘿,我来帮你排查这个语法错误的问题~
你遇到的问题是Python里不能用逗号直接分隔多个值来判断变量是否等于其中某一个,你写的if colour=="red", "Red":会被Python解析成不符合规则的结构(逗号在这里会创建一个元组),完全不符合条件判断的语法逻辑,所以才会触发报错。
下面给你几种正确的写法,你可以根据需求选择:
方法1:用or连接多个相等判断
这是最直观的写法,明确判断变量是否等于其中任意一个值:
colour = input("What is your favourite colour? ") if colour == "red" or colour == "Red": print("Red is my favourite colour as well")
方法2:用in操作符匹配集合/列表
把需要判断的所有值放到一个集合(或列表)里,用in来检查变量是否在这个集合中,这种写法在值较多的时候更简洁:
colour = input("What is your favourite colour? ") if colour in {"red", "Red"}: # 用集合比列表效率更高,写成["red", "Red"]也可以正常运行 print("Red is my favourite colour as well")
方法3:统一转换输入的大小写(推荐)
这种方法可以忽略用户输入的大小写差异,比如用户输入RED、rEd也能匹配到,交互体验更好:
colour = input("What is your favourite colour? ").strip().lower() # 先去除前后空格,再转成小写 if colour == "red": print("Red is my favourite colour as well")
这样修改后代码就能正常运行啦~
内容的提问来源于stack exchange,提问作者smiley21
相关产品推荐
相关产品推荐

