当前位置: 首页 > 知识库问答 >
问题:

在函数中使用函数-Python[重复]

郏景澄
2023-03-14

我只是想知道是否有人能帮我解决这个问题。作为我学校项目的一部分,我目前正在为大学锦标赛设计一个计分程序。

现在,我有一个单间的主菜单。py文件,但我有一个不同的注册学生函数。py文件。到目前为止,我已经成功地将该函数调用到主菜单程序中

因此,我调用了register student函数末尾的主菜单函数。这可以让你注册一个学生(他的名字会被添加到一个文本文件中),然后把你送回主菜单,让用户选择另一个动作。

如果我再次尝试输入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()

函数_1_reg_学生。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()

共有1个答案

韶云瀚
2023-03-14

导入模块或从模块导入时,不要包含文件扩展名。

这样做:

from Function_1_reg_student import reg_solo

不是这个:

from Function_1_reg_student.py import reg_solo
 类似资料:
  • 问题内容: 我知道Python不支持方法重载,但是我遇到了一个似乎无法用一种很好的Pythonic方法解决的问题。 我正在制作一个角色需要射击各种子弹的游戏,但是如何编写用于创建这些子弹的不同功能?例如,假设我有一个函数,该函数创建一个以给定速度从A点移动到B点的子弹。我会写一个像这样的函数: 但是我想编写其他创建项目符号的功能,例如: 以此类推。有没有一种更好的方法可以在不使用太多关键字参数的情

  • 有没有可能创建一个函数,它将lambda函数作为参数(每个lambda函数使用参数),然后返回一个具有单个参数的新函数,并返回所有lambda函数的乘积? 以下是我的非工作示例: 所以本质上,你有一个函数,它需要4个lambda函数,每个函数使用参数。例如,的参数可以类似于。 然后返回一个名为的新函数,该函数的输出是所有lambda函数的乘积,并且有一个参数,该参数传递到的每个lambda函数的参

  • 如果我不使用' a '和' b '变量,一切正常,否则,C返回: 错误:无法转换“main()::” 注意:初始化'void f(int, void(*)(int))'的参数2

  • 下面是我的function.json 有什么想法可以摆脱这个“exception:attributeError:module'azure.functions'没有属性'in'”错误吗?

  • php版本: 5.4 我定义了一个这样的函数 输出是 如何在的正文中引用。

  • 给定一个字符串,返回子字符串长度2在该字符串中出现的次数计数,并作为该字符串的最后2个字符,因此“hixxxhi”产生1(我们不计算结束子字符串)。 我在其中一个网站上发现了这个问题(https://codingbat.com/prob/p145834). 网站上对上述问题的回答如下: 我对下面提到的代码行有疑问 现在,我知道这段代码正在提取字符串“str”的最后两个字母。我感到困惑的是变量名。正