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

2024-04-19 05:14:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

学号、名字、姓氏和用户名。 包括一个返回学生电子邮件地址的函数。您可以通过添加“@考文垂.ac.uk“到用户名。所以,乔用用户名写博客 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

Tags: nameselfidinputraw电子邮件地址username
1条回答
网友
1楼 · 发布于 2024-04-19 05:14:32

对于__init____str__,您需要双下划线:

class student(object):
    def __init__(self,student_ID,name,surname,username):
    ...
    def __str__(self):

这是一个reference。你知道吗


另外,exit将不起作用,除非您通过在它后面放置()来调用它:

elif user=="3":
    exit()

最后,因为self.student_ID将是一个字符串,所以需要用%s替换此行上的%d

return "%s %s %s %s"%(self.student_ID,self.name,self.surname,self.username)

%d仅用于整数。你知道吗

相关问题 更多 >