Ошибка отслеживания Python (последний вызов был последним) - PullRequest
0 голосов
/ 29 июня 2018

Я начал программировать около недели, и во время практики создания калькулятора форм я столкнулся с такой ошибкой:

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" 

Буду очень признателен, если кто-нибудь сможет объяснить причину ошибки.

Спасибо!

Ответы [ 4 ]

0 голосов
/ 29 июня 2018

Стоит отметить, что этот код будет трудным для пользователя из-за необходимости ввода больших букв (Shitf + letter). Чтобы избежать этого, просто используйте метод lower ().

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

Теперь пользователь может вводить как большие, так и маленькие буквы ("c" или "C"), и программа не будет отличаться от этого. Конечно, необходимость использования «==» в любом сравнении является необходимостью.

0 голосов
/ 29 июня 2018

Вы также можете использовать '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
0 голосов
/ 29 июня 2018

Да, на самом деле это очень простая ошибка, которую все делают в начале:)
Оператор = не означает то же самое в коде, что и в математике. Здесь это означает, что вы хотите присвоить значение переменной (вы также можете думать о нем как об операторе :=, который вы можете видеть в математике или других языках кодирования).

Оператор, который необходимо сравнить с двумя элементами: ==, который возвращает логическое значение: True или False

0 голосов
/ 29 июня 2018

При сравнении вы должны использовать ==. = используется только для назначения.

Так что в вашем примере строка должна быть

if option == 'C':
...