如何使该脚本接受循环输入?

时间:2019-02-27 17:15:07

标签: python loops oop

我是python的新手,在学习OOP时,我尝试制作一个脚本,该脚本可以接受用户输入指定数量的条目(或者直到输入诸如“ exit”之类的特殊关键字)并将其写到名为“ entries.txt”,但是代码无法正常工作。有人可以指导我或修改我的代码吗?谢谢!

num = int(input("number of students: "))

n = input("Name : ")
a = input("Age : ")
m = input("Marks : ")


class Students:
def __init__(self, n, a, m):
    self.name = n
    self.age = a
    self.marks = m


def file(self):
    for i in range(1,num):
        with open("entries.txt","a+") as f:
            f.write("Name : %s \n" %self.name)
            f.write("Age : %s \n" %self.age)
            f.write("Marks : %s \n" %self.marks)
            f.write("----------------------------------------- \n")


s1 = Students(n, a, m)

s1.file() 

我期望输出类似 姓名:安德鲁 年龄:20 分数:55

然后程序不应退出,而只是要求再次输入。

1 个答案:

答案 0 :(得分:1)

num = int(input("number of students: "))

class Student:
    def __init__(self, n, a, m):
        self.name = n
        self.age = a
        self.marks = m

    def file(self):
        with open("entries.txt","a+") as f:
            f.write("Name : %s \n" %self.name)
            f.write("Age : %s \n" %self.age)
            f.write("Marks : %s \n" %self.marks)
            f.write("----------------------------------------- \n")

for i in range(num):
    n = input("Name : ")
    a = input("Age : ")
    m = input("Marks : ")

    s1 = Student(n, a, m)
    s1.file() 

关于命名的一些注意事项:名称类为单数而不是复数。避免使用变量名,例如'a','x'...等,应使用有意义的名称。