Почему этот код не выполняется? (Я новичок в кодировании)

#python #python-3.x

#python #python-3.x

Вопрос:

Я довольно новичок в программировании, я только начал изучать python один день назад. Я пытался написать этот код, потому что однажды видел нечто подобное на веб-сайте. (Я не могу вспомнить, какой именно), но код почему-то не выполняется.

 def getNumber():
    result = int(input("Enter a number: "))
    return result 

def Main():
    print("test")

    output = getNumber()
    print(output)

if __name__ = "__main__":
    Main()
 

Предполагается, что он печатает число, которое вы вводите. Сообщения об ошибке нет, и на данный момент я в замешательстве.

Спасибо за любую помощь

Комментарии:

1. Опубликуйте свой вывод, можете ли вы увидеть хотя бы тест?

2. Вы хотите if __name__ == "__main__": , чтобы вам нужно было использовать == для проверки на равенство. Проголосуйте за закрытие, поскольку это опечатка

3. Как уже говорилось несколько раз ранее, вы назначили неправильный оператор. Для будущих проектов очень удобно знать, что python (и практически любой другой язык) возвращает ошибки в следующем формате <type> <reference> <additional info> тип сообщает вам, что вы сделали неправильно, например, ссылались на переменную, прежде чем присвоить ей значение. Место указывает вам, где, строка 1, 2, 3 и так далее, а дополнительная информация может рассказать вам больше о том, что вы сделали неправильно. Сообщения об ошибках — ваш самый большой друг при отладке!

Ответ №1:

Вы забыли a == вместо a = in __name__ = "__main__": , используйте это вместо:

 def getNumber():
  result = int(input("Enter a number: "))
  return result

def Main():
  print("test")

output = getNumber()
print(output)

if __name__ == "__main__":
  Main()
 

Ожидаемый результат программы:

 test
Enter a number: 5
5
 

Кроме того, вам не нужно усложнять вещи, вы можете просто использовать:

 print("test")
result = int(input("Enter a number: "))
print(result)
 

Ответ №2:

Проблема в том, что вы используете оператор присваивания ( = ) вместо оператора equals ( == ) .

Операторы присваивания ( == ) используются для присвоения значений именам:

 my_name = "LogicalBranch"
 

В то время как оператор equals ( == ) должен определять, равно ли значение другому:

 1 == 1 # Expected output: True
2 == 1 # Expected output: False
 

Решением было бы изменить ваши последние две строки из этого:

 if __name__ = "__main__":
  Main()
 

К этому:

 if __name__ == "__main__":
  Main()
 

Еще один совет — использовать соглашение PEP8 при именовании функций и переменных, поэтому, возможно, имеет смысл назвать вашу main функцию main вместо Main .

Удачи.

Ответ №3:

Это if __name__ = "__main__":

должно быть if __name__ == "__main__":

Ответ №4:

= используется для объявления переменных. == это то, что вы используете для сравнения (как в предложении if)

Попробуйте изменить его.

Ответ №5:

Каждый говорит, чтобы поместить это «==»

Просто помните, что когда вы делаете это «=» он присваивает значение имени, но когда вы делаете это «==» он проверяет, равно ли оно этому значению

Если это имеет смысл