Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我在这些类和对象上做错了什么_Python_Class_Object - Fatal编程技术网

Python 我在这些类和对象上做错了什么

Python 我在这些类和对象上做错了什么,python,class,object,Python,Class,Object,编写一个程序以在类中存储学生详细信息。信息应包括 学生编号、名字、姓氏和用户名。 包括一个返回学生电子邮件地址的函数。您可以通过在用户名中添加@coventry.ac.uk来构建emaila地址。所以,乔用用户名写博客 blogsj将获得电子邮件地址blogsj@coventry.ac.uk 2任务2 创建一个程序,使用任务1中的类从中收集学生记录列表 用户,并允许列出他们的电子邮件地址。 您应该为用户提供一个菜单系统 #Python Lab9 Task1 & Task2 class s

编写一个程序以在类中存储学生详细信息。信息应包括

学生编号、名字、姓氏和用户名。 包括一个返回学生电子邮件地址的函数。您可以通过在用户名中添加@coventry.ac.uk来构建emaila地址。所以,乔用用户名写博客 blogsj将获得电子邮件地址blogsj@coventry.ac.uk

2任务2

创建一个程序,使用任务1中的类从中收集学生记录列表 用户,并允许列出他们的电子邮件地址。 您应该为用户提供一个菜单系统

#Python Lab9 Task1 & Task2
class student(object):
    def _init_(self,student_ID,name,surname,username):
        self.student_ID = student_ID
        self.name = name
        self.surname = surname
        self.username = username

    def email(self):
        return self.username, "@coventry.ac.uk"
    def _str_(self):
        return "%d %s %s %s"%(self.student_ID,self.name,self.surname,self.username)

if __name__ == '__main__':
    students=[]
    user=""

    while user not in ["Q","q"]:
        print "Menu"
        print "1. Show student detail"
        print "2. Create new student detail"
        print "3. Quit"

        user=raw_input(">")
        if user=="1":
            for i in students:
                print i

        elif user=="2":
            print "Creating a new student detail"
            print "-----------------------------"

            student_ID=raw_input("Student ID:")
            name=raw_input("First Name:")
            surname=raw_input("Surname:")
            username=raw_input("Username:")

            s = student(student_ID,name,surname,username)
            students.append(s)

        elif user=="3":
            exit
您需要为_init__和_str_uu添加双下划线:

这是一本书

此外,除非您通过在exit之后放置以下内容来调用它,否则exit将不起作用:

elif user=="3":
    exit()
最后,由于self.student_ID将是一个字符串,因此需要将此行中的%d替换为%s:


%d仅用于整数。

谢谢您的帮助,但我对第12行返回%d%s%s%self.student\u ID,self.name,self.姓氏,self也有问题。username@user3083481-对。该问题是因为self.student_ID是字符串,但%d正在查找整数。请参阅我的编辑。从技术上讲,退出而不退出将终止程序,但会出现名称错误而不是SystemExit@SethMMorton-至少在Python 2.7+中,exit是在下定义的。但是,不调用它将不会像其他内置程序那样做任何事情。但是,如果您在启动Python时带有禁用站点模块的标志,则是正确的。@iCodez-Hmm。。。我似乎记得在2.7上出现了一个命名错误,但我的记忆力可能会下降。不管怎样,很高兴知道!
elif user=="3":
    exit()
return "%s %s %s %s"%(self.student_ID,self.name,self.surname,self.username)