Python: Zugriff auf zurückgegebene Werte von einer Funktion durch eine andere Funktion

Ich bin ein bisschen neu in der Programmierung im Allgemeinen, habe gerade angefangen, mich wirklich mit Python zu beschäftigen. Und ich arbeite an einem Zahlenprojekt.

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()

Ein Problem, das ich während des Schreibens hatte, war, dass ich dieses Programm nicht ausführen konnte, ohne jede Variable als globale Variable neu zu definieren. Nur durch Rückgabe der Werte von einer Funktion war ich nicht in der Lage, z.B. die zweite zurückgegebene Variable upper_range_cut aus der range_function

Gibt es eine Möglichkeit, das irgendwie kürzer zu handhaben?

Auch ich freue mich über jeden Hinweis auf den Code selbst (Lesbarkeit, Funktionsgebrauch, Länge). Ich weiß, dass dieser Code durch die Verwendung des Listenverständnisses möglicherweise viel kürzer hätte werden können, aber ich habe noch nicht wirklich das Auge für Möglichkeiten in diesem Bereich.

Also danke für jede Hilfe!

KiliBio

Antworten auf die Frage(4)

Ihre Antwort auf die Frage