Python: доступ к возвращенным значениям из функции другой функцией
Я немного новичок в программировании в целом, только начал по-настоящему разбираться в питоне. И я работаю над номером проекта.
import random
def main(): # main function
print("Welcome to the number guesser game")
range_func()
max_guess_number(lower_range_cut, upper_range_cut)
evaluation(random_number, total_guesses)
def range_func(): # allows user to select a range for the number guess
print("Please select a range in which you would like to guess.")
lower_range_cut = int(input("Lower boundary limit: "))
global lower_range_cut
upper_range_cut = int(input("Upper boundary limit: "))
global upper_range_cut
random_number = random.randint(lower_range_cut,upper_range_cut)
global random_number
return lower_range_cut, upper_range_cut, random_number
def max_guess_number(low,high): # returns the total number of guesses
total_numbers = (high - low) + 1
total_guesses = 0
while (2**total_guesses) < total_numbers:
total_guesses += 1
print ("You have a total of %d guesses\n"
"for your range between %d to %d"
% (total_guesses, low, high))
global total_guesses
return total_guesses
def evaluation(random_number, total_guesses): # evaluates the users input
guess_count = 0
while guess_count < total_guesses:
user_guess = int(input("Your guess: "))
print("Your guess is: %d" % (user_guess))
if (random_number == user_guess):
print("You got it ")
break
elif user_guess > random_number:
print("Guess lower!")
guess_count += 1
else:
print("Guess higher!")
guess_count += 1
if __name__ == "__main__":
main()
Одна из проблем, с которыми я столкнулся при написании этой книги, заключается в том, что я не смог выполнить эту программу, не переопределив каждую переменную как глобальную переменную. Просто возвращая значения из одной функции, я не смог получить доступ, например. вторая возвращаемая переменная upper_range_cut из range_function
Есть ли способ справиться с этим как-то короче?
Также я рад каждой заметке в самом коде (удобочитаемость, использование функции, длина). Я знаю, что это могло бы сделать этот код намного короче, возможно, с помощью понимания списков, но у меня пока нет глаз, чтобы увидеть возможности в этой области.
Так что спасибо за любую помощь!
KiliBio