python - 在函数中使用函数 - Python
问题描述
我只是想知道是否有人可以帮助我解决这个问题。作为我学校项目的一部分,我目前正在为大学锦标赛设计一个计分程序。
现在,我在一个 .py 文件中有一个主菜单,但我在另一个 .py 文件中有我的注册学生功能。到目前为止,我已经设法将该功能调用到主菜单程序中,并按我预期的方式工作。然而,我经历过的一件事是,该函数只会不停地循环并且不会停止。
因此,我在注册学生功能结束时回调了主菜单功能。这可以让您注册一个学生(然后将学生的名字附加到一个文本文件中),然后将您送回主菜单,让用户选择另一个操作。
如果我然后尝试再次输入 1,它会吐出一个很长的回溯列表,最后是一个错误:
ModuleNotFoundError: No module named 'Function_1_reg_student.py';
'Function_1_reg_student' is not a package.
如何让我的程序允许我注册学生,可能会询问用户是否要注册另一个学生,或者如果用户拒绝,则返回主菜单?
如果这没有意义,我深表歉意,我对此非常陌生,并且很难解释我的情况以及我希望它做什么!
以下是我的两个文件:
主菜单.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()
函数_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()
解决方案
导入模块或从模块导入时不要包含文件扩展名。
做这个:
from Function_1_reg_student import reg_solo
不是这个:
from Function_1_reg_student.py import reg_solo
推荐阅读
- python - 像 pip.exe 这样的可执行文件是否需要 python 才能工作?
- javascript - 是否可以跨子域使用 Shared Worker?
- r - 将使用 gtrendsR 包下载的数据收集到 excel 中
- c - Makefile 在不同的目录中生成目标文件
- python - 优化函数参数
- python - 在嵌套结构上使用Glom,如何将顶级字典字段移动到字典列表中?
- salesforce - 代码覆盖率失败 你的代码覆盖率是 72%。您需要至少 75% 的覆盖率才能完成此部署
- kubernetes - 更改现有集群上的网络插件
- javascript - 在需要传入参数的 Angular Protractor 测试中包含外部脚本
- c++ - 通过C中的指针打印char数组时出现分段错误