我想让这段代码重复一遍,所以我的程序永远不会关闭。
import os
print "Unesite navedene informacije za ucenika"
class Ucenik1(object):
"""docstring for Ucenik1"""
def __init__(self, ime, prezime, razred, godiste, struka, dodatne_info):
self.ime = ime
self.prezime = prezime
self.razred = razred
self.godiste = godiste
self.struka = struka,
self.dodatne_info = dodatne_info
def informacije_ucenika(self):
my_list = [self.ime ,
self.prezime,
self.razred,
self.godiste,
self.struka,
self.dodatne_info
]
list = open("text.txt", "w")
for item in my_list:
list.write(str(item) + "\n")
list.close()
os.rename("text.txt", self.ime)
ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")), raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))
ucenici1.informacije_ucenika()
它基本上是一个程序,可以获取有关学生的信息并将其存储到文件中。 它工作正常,但我想让它重复它自己,所以你不必每次你想制作一个文件时运行.exe。 在线我发现我可以使用while循环,但我不能让它在课堂上工作。 注意:这里有一些缩进错误,但在我的编辑器中一切都很好
答案 0 :(得分:1)
这取决于您想要重复的代码部分。 如果你想添加一个学生并将其无限保存到文件中,你应该把
while True:
ucenici1 = Ucenik1(...)
ucenici1.informacije_ucenika()
关于缩进 - while循环下语句的间距(像PyCharm这样的编辑器如果你把它写出来就应该为你做;通常它是四个空格或改为使用TAB)。所以最后两个陈述将重演。
答案 1 :(得分:0)
您的问题的简单答案,以包装在while循环中运行的代码行(您怀疑是解决方案)。
while True:
ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")), raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))
ucenici1.informacije_ucenika()
还有许多其他改进也可以建议,比如不必使用str将字符串强制转换为字符串,使用您想要的名称打开文件,而不是重命名,而不是使用list作为变量名称,因为列表是一个python关键字。
答案 2 :(得分:0)
这是您的代码,但使用while True
循环:
import os
print "Unesite navedene informacije za ucenika"
class Ucenik1(object):
"""docstring for Ucenik1"""
def __init__(self, ime, prezime, razred, godiste, struka, dodatne_info):
self.ime = ime
self.prezime = prezime
self.razred = razred
self.godiste = godiste
self.struka = struka,
self.dodatne_info = dodatne_info
def informacije_ucenika(self):
my_list = [self.ime ,
self.prezime,
self.razred,
self.godiste,
self.struka,
self.dodatne_info
]
list = open("text.txt", "w")
for item in my_list:
list.write(str(item) + "\n")
list.close()
os.rename("text.txt", self.ime)
while True:
ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")), raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))
ucenici1.informacije_ucenika()
答案 3 :(得分:0)
while True:
ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")), raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))
ucenici1.informacije_ucenika()
原因
ucenici1.informacije_ucenika() ^ IndentationError:unindent与任何外部缩进级别都不匹配