【问题标题】:Python raises SyntaxError on "=" in if statement [closed]Python在if语句中的“=”上引发SyntaxError [关闭]
【发布时间】:2021-11-06 14:42:11
【问题描述】:

我正在编写一个程序,它接受用户输入并将其与不同的命令字符串进行比较。当我尝试运行程序时,我得到一个关于 if method = 'addition': 行的 SyntaxError 并且 IDLE 以红色突出显示 =

num1 = input('Enter your first value: ')
num2 = input('Enter your second value: ')
method = input('Which method will you be using? ')

if method = 'addition':
    solveFor = num1 + num2
elif method = 'subtraction':
    solveFor = num1 - num2
else:
    print("Please enter 'addition' or 'subtraction'")

【问题讨论】:

    标签: python


    【解决方案1】:

    这里有一些提示:

    • Python 不需要像其他语言那样声明变量,因为它是动态类型的,因此无需在脚本开头写 num1
    • 单等号用于设置值 (a = 2),而双等号用于比较值 (if a == 2:)。
    • 您需要在所有ifelseelif 语句之后放置冒号。
    • 缩进在 Python 中很重要。

    您似乎缺乏基本的 Python 知识,应该认真阅读一本不错的 Python 教程。听说这本书不错:http://learnpythonthehardway.org/book/

    作为参考,这是您的代码的固定版本:

    print "Welcome to PyCalcBasic"
    
    num1 = input("Enter your first value")
    num2 = input("Enter you second value")
    method = raw_input("Which mathematical operator will you be using?")
    
    if method == "addition":
        solveFor = num1 + num2
    elif method == "subtraction":
        solveFor = num1 - num2
    else:
        print ("Please enter 'addition' or 'subtraction'")
    

    【讨论】:

    • 谢谢,多问一个问题,“raw_input”与“input”的区别我看到您已将方法设置为 raw_input,将 num1、num2 设置为标准输入
    • input() 计算字符串(2 + 2 变为 4),而 raw_input() 只为您提供 2 + 2
    【解决方案2】:
    1. 单等于=是赋值,双等于==是相等测试
    2. ifelif 语句的条件后或 else 后需要一个冒号

    【讨论】:

      【解决方案3】:

      Python 中的相等比较运算符是=== 是为变量赋值的语句。

      您的代码还有许多其他错误(从未定义的名称num1num2 开始,一开始什么也不做)。您应该阅读 the Python tutorial 以复习 Python 语法的基础知识。

      【讨论】:

        猜你喜欢
        • 2021-12-23
        • 2022-08-24
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 2018-02-22
        • 2014-05-05
        • 1970-01-01
        相关资源
        最近更新 更多