Python 回溯(最近调用最后)错误

Python Traceback (most recent call last) error

我已经开始编码大约一个星期了,在练习创建形状计算器时,我遇到了这样的错误:

Traceback (most recent call last):
File "python", line 4
if option = 'C':
          ^
SyntaxError: invalid syntax

代码如下:

print "The Calculator has been launched"
option = raw_input ("What shape is your object?     Enter C for circle or T 
for Triangle.")
if option = 'C': 
    radius = float (raw_input ("What is the radius of your circle?") )
    area_1 = 3.14159 * ( radius ** 2)
    print area_1 

elif option = 'T':
    base = float (raw_input ("What is the base of the triangle?"))
    height = float (raw_input ("What is the corresponding height of the 
    triangle?"))
    area_2 = (base * height) * 1/2
    print area 
else :
    print "Please, enter a valid shape" 

如果有人能解释错误的原因,我将不胜感激。

谢谢!

比较时必须使用 === 仅用于赋值。

因此在您的示例中,该行应为

if option == 'C':

你也可以使用'is'

if option is 'C':

不要使用等号“==”来比较对象 None 使用 "is" 代替

"etc" is None  # => False
None is None  # => True
# negate with not
not True  # => False
not False  # => True

# Equality is ==
1 == 1  # => True
2 == 1  # => False

# Inequality is !=
1 != 1  # => False
2 != 1  # => True

是的,这实际上是每个人一开始都会犯的一个非常基本的错误:)
= 运算符在代码中的含义与在数学中的含义不同。这里的意思是你想给一个变量赋值(你也可以把它想象成你可以在数学或其他编码语言中看到的 := 运算符)。

您需要比较两个元素的运算符是 ==,其中 returns 是一个布尔值:TrueFalse

值得一提的是,由于需要输入大字母(Shitf + letter),此代码对于用户来说将难以使用。为避免这种情况,只需使用 lower() 方法。

if option.lower() == "c":
   do_something()

现在,用户可以输入大小写字母("c"或"C"),程序将与此相同。当然,在任何比较中使用“==”的必要性是必要的。