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

Python if语句合并两个判断条件触发SyntaxError语法错误原因

Python爱情计算器SyntaxError错误解析

问题代码

name1 = input("What is your name? \n")
name2 = input("What is their name? \n")

total1 = (name2+name1).count('t') + (name2+name1).count('r') + (name2+name1).count('u') + (name2+name1).count('e')
print("total1", total1)

total2 = (name2+name1).count('l') + (name2+name1).count('o') + (name2+name1).count('v') + (name2+name1).count('e')
print("total2", total2)

if (total1, total2) <= 10 or >= 90:
  print("Your score is", total1,total2, "you go together like coke and mentos.")

运行报错信息

Traceback (most recent call last):
  File "/Users/PythonLoveCalculator.py", line 11
    if (total1, total2) <= 10 or >= 90:
                                  ^
SyntaxError: invalid syntax

错误核心原因

  • 直接触发语法报错的点:Python中的or是二元逻辑运算符,运算符左右两侧必须是完整的、可独立求值的比较表达式。你写的>= 90左侧没有明确指定比较的对象,解析器读到这里无法识别判断逻辑,直接抛出语法错误。

    错误写法类比:if age < 18 or >= 60: 是非法的,必须补全比较对象写为if age <18 or age >=60:

  • 隐藏的逻辑错误:你写的(total1, total2)是Python元组类型,元组和整数做大小比较本身不符合爱情计算器的得分规则——这个程序的最终得分是把total1作为十位、total2作为个位拼接成的整数(比如TRUE计数为5、LOVE计数为2,得分就是52),拿元组和整数比大小就算语法修正后也得不到正确结果。

修正后可运行代码

name1 = input("What is your name? \n")
name2 = input("What is their name? \n")
combined_str = (name1 + name2).lower() # 统一转小写,避免用户输入大写字母漏计数

count_true = combined_str.count('t') + combined_str.count('r') + combined_str.count('u') + combined_str.count('e')
count_love = combined_str.count('l') + combined_str.count('o') + combined_str.count('v') + combined_str.count('e')
love_score = int(f"{count_true}{count_love}") # 拼接为最终整数得分

if love_score <= 10 or love_score >= 90:
    print(f"Your score is {love_score}, you go together like coke and mentos.")

内容的提问来源于stack exchange,提问作者Eddy Evodius Hieronimus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:36:17