我只是想知道是否有人可以帮助我解决这个问题。我目前正在为大学比赛设计一个计分程序,这是我学校项目的一部分。
现在,我在单个.py文件中有一个主菜单,但在另一个.py文件中有注册学生的功能。到目前为止,我已经设法将函数调用到主菜单程序中并按照我期望的方式工作。但是,我经历的一件事是该函数只会不停地循环自身并且不会停止。
因此,我在注册学生功能的末尾调用了主菜单功能。这样做的作用是允许您注册学生(然后将其姓名附加到文本文件中),然后将您发送回主菜单,以供用户选择其他操作。
如果我然后尝试再次输入1,它会显示一个很长的回溯列表,最后出现一个错误:
ModuleNotFoundError: No module named 'Function_1_reg_student.py';
'Function_1_reg_student' is not a package.
我如何获得允许我注册学生的程序,可能会问用户是否要注册另一个学生,或者如果用户拒绝则返回主菜单?
如果这没有道理,我深表歉意。我对此非常陌生,并且发现很难解释我的处境以及我想做什么!
下面是我的两个文件:
Main_menu.py:
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()
Function_1_reg_student.py:
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]+":"+"\n")
text_file.close()
print(studentname+" "+studentsurname+" has been registered")
from MAIN_MENU.py import main_menu
reg_solo()
答案 0 :(得分:1)
在导入模块或从模块导入时不包括文件扩展名。
执行以下操作:
from Function_1_reg_student import reg_solo
不是这样的:
from Function_1_reg_student.py import reg_solo