Using a function within a function- Python
本问题已经有最佳答案,请猛点这里访问。
我只是想知道是否有人能帮我解决这个问题。作为学校项目的一部分,我目前正在为大学比赛设计一个计分程序。
现在,我在一个.py文件中有一个主菜单,但在另一个.py文件中有我的注册学生功能。到目前为止,我已经成功地将该函数调用到主菜单程序中,并按我预期的方式工作。然而,我所经历的一件事是,函数将简单地不停地循环自身,并且不会停止。
因此,我在注册学生功能的末尾调用了主菜单功能。这可以让你注册一个学生(谁的名字随后被附加到一个文本文件中),然后把你送回主菜单,让用户选择另一个动作。
如果我再次尝试输入1,它会弹出一个长的回溯列表,最后会出现一个错误:
1 2 | ModuleNotFoundError: No module named 'Function_1_reg_student.py'; 'Function_1_reg_student' is not a package. |
如何让我的程序允许我注册一个学生,可能会问用户是否想注册另一个学生,或者如果用户拒绝,返回主菜单?
如果这没有意义,我道歉。我对这件事非常陌生,很难解释我的处境以及我希望它做什么!
以下是我的两个文件:
主菜单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | def main_menu(): print(""" Welcome to the main menu. | (1.) Register a student| | (2.) Score a student | | (3.) Leaderboard | | (4.) Quit | """) while True: answer=input("Please enter a number between 1-4:") if answer=="1": from Function_1_reg_student.py import reg_solo continue elif answer=="2": print ("Call function 2") continue elif answer=="3": print ("Call function 3") continue elif answer=="4": print ("Quit") continue else: print("ERROR MESSAGE: Please enter in a number from 1 to 4") continue main_menu() |
号
函数_1_Reg_student.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def reg_solo(): while True: studentname=input("Please enter student name") studentsurname=input("Please enter surname") print("Name:"+studentname+""+studentsurname) text_file=open("solo_students_reg.txt","a") text_file.write(studentname+":"+studentsurname+":"+"0"+":"+studentname[:3]+ studentsurname[:3]+":"+" ") text_file.close() print(studentname+""+studentsurname+" has been registered") from MAIN_MENU.py import main_menu reg_solo() |
导入模块或从模块导入时不包括文件扩展名。
执行此操作:
1 | from Function_1_reg_student import reg_solo |
不是这个:
1 | from Function_1_reg_student.py import reg_solo |
号