如何在Python的IF语句中用或运算符实现字符串部分比较及问题修复
问题分析
你的代码存在两个核心问题:
- Python不支持
like关键字:SQL中的like 'pur%'语法在Python里需要用字符串方法实现,比如startswith('pur')(匹配开头)或'purchase' in v1(包含子串)。 - 逻辑判断错误:原条件
(v1 not like 'pur%') or (v1 != 'ordered')的逻辑完全反了——只要v1不以pur开头,或者v1不是ordered,就会触发"不相等"的输出,这和你的预期完全相悖。
修正后的代码
根据你的场景需求(v1为purchase、purchased或ordered时输出相等,否则输出不相等),代码可以这样写:
v1 = 'purchased' # 可替换为"purchase"或"ordered"测试 target = 'purchase' # 判断条件:v1包含目标字符串,或者v1等于"ordered" if 'purchase' in v1 or v1 == 'ordered': print("Both strings are equal", v1) else: print("Both strings are not equal", v1)
如果你的需求是v1以purchase开头(比如purchase、purchased都符合),可以把条件改成:
if v1.startswith(target) or v1 == 'ordered':
测试验证
- 当
v1="purchase"时,条件成立,输出Both strings are equal purchase - 当
v1="ordered"时,条件成立,输出Both strings are equal ordered - 当
v1="purchased"时,条件成立,输出Both strings are equal purchased - 当
v1="other"时,条件不成立,输出Both strings are not equal other
内容的提问来源于stack exchange,提问作者user3040157
相关产品推荐
相关产品推荐

