Использование переменной в функции try в другой функции без global (python) - PullRequest
0 голосов
/ 05 августа 2020

Как я могу использовать переменную 'guess' в моей функции guess () в основной функции (для i в диапазоне (1,6)? Я получаю сообщение об ошибке "guess not defined". Изначально все работало нормально без функции guess, но я хотел добавить возможность неправильного ввода от пользователя, и это заставило меня застрять. Я увидел на stackexchange, что использование global внутри функции - плохая практика, но даже с global я не знаю, как решить мою проблему. Есть ли способ изменить int (предположить), если можно получить переменную из функции? Спасибо!

import random, sys

print("Hello. What is your name?")
name = str(input())
print("Well, " + name + ", I am thinking of a number between 1 and 20.")
number = random.randint(1, 20)

def guessfunction():
    print("Take a guess.")
    guess = input()
    for number_attempts in range(0,3):
        try:
            return guess
        except ValueError:
            print("Please enter a number in figures not as a word")
    print("You didn't enter a number in figures after 3 tries, program ended")
    sys.exit()
    
for i in range(1,6):
    guessfunction()
    if int(guess) != number:
        if int(guess) < number:
            print("Your guess is too low")
        else:
            print("Your guess is too high")
    elif int(guess) == number:
        print("Good job, " + name + "! You guessed my number in " + str(i) + " guesses")
        sys.exit()
print("Nope. The number I was thinking of was " +str(number))

1 Ответ

0 голосов
/ 05 августа 2020

вам нужно инициализировать его в вашем for l oop:

guess = guessfunction()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...