def choose_page():
print('Welcome to the code system!')
print('****************************n')
print('there are the three options:n'
'1.sign upn'
'2.log inn'
'3.quit')
print('****************************n')
option = eval(input('Please input your option:'))
return option
这里是"sign_up"函数:
def sign_up():
global customer
# global option
# global option2
..................
..................(many codes)
option2 = eval(input('Now you can log in the main page by inputting 2 or 0 to return the sign_page: '))
return option2
我还写了"log_in"one_answers"quit"自定义函数,然后我可以像这样随心所欲地将它们组合在一起(这一步没有"退出"函数,因为现在无关紧要(:
if choose_page() == 1:
sign_up()
if sign_up() == 0:
choose_page()
elif sign_up() == 2:
log_in()
elif choose_page() == 2:
log_in()
我运行了它,但遇到了似乎是逻辑错误的问题:
当我进入"choose_page"并输入1时,它会运行到"sign_up",在"sign_u普"的末尾,我输入2或0,它仍然会一次又一次地运行到"signa_up"中,没有停止。
当我使用这些自定义功能时,是否存在逻辑错误?感谢您提前提供帮助。
每次编写sign_up()
时,它都会调用它并运行该函数。Python并不聪明。它不会说:"我们以前已经运行过sign_up()
了。我记得答案。不需要再运行了!"它完全按照你说的去做。如果你写sign_up()
,它就会调用sign_up()
。
为了避免重复提示,您需要将结果保存到变量中,并且只调用一次函数。
if choose_page() == 1:
sign_up_answer = sign_up()
if sign_up_answer == 0:
choose_page()
elif sign_up_answer == 2:
log_in()
对有相同问题的任何其他函数重复同样的想法。