#python
#python
Вопрос:
Что я могу делать неправильно в этой программе? Недавно я начал с Python.
##number guesser generator
import random
def main():
print("welcome to the number guessing game!")
print("You will receive three guesses!")
print("Choose a number between 1 and 100")
randomnumbergenerator()
userinput()
winorlose()
def randomnumbergenerator():
random.seed(0)
randomnumber = random.randint(1,100)
return randomnumber
def userinput():
answer1 = int(input('what is your 1st guess?'))
answer2 = int(input('what is your 2nd guess?'))
answer3 = int(input('what is your 3rd guess?'))
answers = answer1, answer2, answer3
return answers
def winorlose(randomnumber, answers):
while randomnumber != answers:
print('You lose! The correct answer equals' randomnumber)
if randomnumber == answers:
print("You picked the correct answer! The answer was " randomnumber)
return winorlose()
Комментарии:
1. Вы когда-нибудь вызываете
main
? Это не специальная функция, как в других языках. Оно не вызывается автоматически.2.
def main()
это просто обычная функция, как и другие. вы должны запустить свою программу с помощью__name__
=="__main__"
check или просто вызватьmain()
метод напрямую.
Ответ №1:
Функция main
— это просто еще одна обычная функция. В Python нет понятия «основной» функции. Вам нужно вызвать main()
функцию вручную, вот так
# Check if file was executed as the "main" file
# This is optional, but it ensures that if you import this file as a module,
# the main function isn't invoked
if __name__ == "__main__":
main() # Call the main function
Ответ №2:
Я тоже довольно новичок, но похоже, что вы создаете скрипт в методе типа класса, но не добавили класс.
На данный момент программа просто выполняется и создает все функции, готовые к вызову экземпляров, но вы вызвали их в рамках основной функции, которая сама по себе не вызывается. Если бы вы должны были сделать что-то вроде этого:
class randomGenerator():
def __init__(self):
self.main()
def main(self):
print("welcome to the number guessing game!")
print("You will receive three guesses!")
print("Choose a number between 1 and 100")
self.randomnumbergenerator()
self.userinput()
self.winorlose()
def randomnumbergenerator(self):
random.seed(0)
randomnumber = random.randint(1,100)
return randomnumber
def userinput(self):
answer1 = int(input('what is your 1st guess?'))
answer2 = int(input('what is your 2nd guess?'))
answer3 = int(input('what is your 3rd guess?'))
answers = answer1, answer2, answer3
return answers
def winorlose(self, randomnumber, answers):
while randomnumber != answers:
print('You lose! The correct answer equals' randomnumber)
if randomnumber == answers:
print("You picked the correct answer! The answer was " randomnumber)
return winorlose()
run = randomGenerator()
тогда, по крайней мере, она запустится, и вы сможете устранить дополнительные неполадки. Я рекомендую вам также изучить классы.