我正在学习编码,并试图越来越多地使用函数。我在这里有3个不同的函数,并且由于
无论我做什么或添加什么代码, times_table()函数都会不断重复自身。它停留在 user_menu()函数中 if语句的最后一行。我该怎么办才能补救?
我还想将 times_table2()函数添加到 times_table()函数正下方的 user_menu()函数中。 / p>
我还想就如何将两个times_table()函数合并为一个函数同时保持其功能提出建议。我没有在网上或书中碰到过一个例子,说实话实在令人沮丧。
我希望能获得一些信息,可能还需要一些网站,以获取更多资源。
在此先感谢您。
def user_menu():
options = ["1. Would you like to learn to multiply two numbers of your choice?",
"2. Would you like to learn to multiply a number in a table?"]
print(*options, sep="\n")
user_input = int(input("Please select from the list above: "))
if user_input == 1:
times_table(multiple="Please enter the number you wish to learn to multiply with")
def times_table(multiple):
while True:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
except ValueError:
print("Please enter a numerical value!")
continue
return multiple_int
def times_table2(multiple):
while True:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
except ValueError:
print("Please enter a numerical value!")
continue
return multiple_int
答案 0 :(得分:0)
获得正确的值后,您应该使用return
def times_table(multiple):
while True:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
return multiple_int
except ValueError:
print("Please enter a numerical value!")
最终使用break
存在while
循环,然后使用return
def times_table(multiple):
while True:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
break # exit loop
except ValueError:
print("Please enter a numerical value!")
# after `while` loop
return multiple_int
编辑:正如我在评论中所说,您可以通过其他方式进行操作。如果您确实需要使用continue
,请按照@Kevin的建议进行操作
def times_table(multiple):
while True:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
except ValueError:
print("Please enter a numerical value!")
continue
# inside `while` but not in `except`
return multiple_int
在第二个版本中,您也可以使用变量True/False
代替break
def times_table(multiple):
repeat = True
while repeat:
multiple_text = input(multiple)
try:
multiple_int = int(multiple_text)
repeat = False # exit loop
except ValueError:
print("Please enter a numerical value!")
# after `while` loop
return multiple_int