Ich versuche, meine Funktion zu beenden, die Schleife, sobald es die Rückkehrklausel trifft, aber es nicht tut. Erklärungen, anstatt direkte Code-Bearbeitung wäre willkommen.Schleife beendet nicht, sobald Bedingungen erfüllt sind
def Menu():
UserMenu = True
print ("""
U.Create a Username
E.Run Exponential Calculator
Q.Exit/Quit
""")
while UserMenu not in ("U", "E", "Q"):
print("\n Error: Choice must be U, E or Q")
return UserMenu
# Function designed to retrieve first name only from fullname entry.
def get_first_name(name):
first=[""]
i = 0
while i < len(name) and name[i] !=" ":
first += name[i]
i += 1
return name[:i]
# Function designed to retrieve first initial of last name or first initial of first name if only one name input.
def get_last_initial(name):
j = len(name) - 1
while j >= 0 and name[j] !=" ":
j-=1
return name[j+1]
# Function that generates username based upon user input.
def get_username():
name = raw_input("Please enter your Full Name: ")
username = get_first_name(name) + get_last_initial(name)
return username.lower()
# Function to generate exponential numbers based upon usser input.
def print_exponential():
base = int(raw_input("Please select a base number: \n"))
power = int(raw_input("Please select a power number: \n"))
exponential = 1
while power>0:
exponential = exponential * base
print base
if power >1:
print "*",
power = power -1
return "=%d" % exponential
print Menu()
while UserMenu != "Q":
if UserMenu is "U":
UserMenu = raw_input("Please enter your Full Name: ")
print "your username is %s" % get_username()
else:
print print_exponential()
print Menu()
Dies ist das ganze Programm, hoffe es hilft!
'UserMenu' wird nicht ewig gleich zu' ("U", "E", "Q") ', weil Sie setzen es als' UserMenu = true'. Sie müssen 'input' (python 3) oder' raw_input' (python 2) verwenden, damit jemand mit Ihrem Programm interagiert – roganjosh
Ihre Bearbeitung hat das komplizierter gemacht. Was beabsichtigen Sie für 'print Menu()'? – roganjosh
Wenn Sie einen Stringvergleich durchführen, verwenden Sie '==' statt 'is'. Sie sind anders. – Lafexlos