我的目标是在运行文件时在“ zerty.txt”文件中写入列表中带有多个参数的条目,因此我尝试了许多不成功的方法
我已经阅读了关于此错误消息的许多答案,它们都没有帮助我掌握我所缺少的内容。
imgur.com/Gq1HtXb note_code.py:
import etudiant as MP
liste = []
n = int(input("Nb de d'etudiant : "))
for i in range(0,n):
a = MP.etudiant()
a.saisie()
liste.append(a)
print("les étudiants :")
for p in liste:
print("-------")
p.affichage()
p.save()
http://imgur.com/VNHEX0I etudiant.py:
class etudiant:
def __init__(self):
self.nom = "vide"
self.age = 0
def saisie(self):
self.nom = input("Nom : ")
self.note = int(input("note : "))
def affichage(self):
print("Son nom est ", self.nom)
print("sa note : ", self.note)
def save(liste):
with open('zerty.txt', mode='wt', encoding='utf-8') as myfile:
myfile.write('\n'.join(liste))
myfile.write('\n')
就像cricket_007所说的那样,您正在note_code.py中进行迭代liste
,但是p
在每个循环中得到的都是etudiant
对象而不是列表。
我认为您想做的是:
学习者
class etudiant:
def __init__(self):
self.nom = "vide"
self.age = 0
def saisie(self):
self.nom = input("Nom : ")
self.note = int(input("note : "))
def affichage(self):
print("Son nom est ", self.nom)
print("sa note : ", self.note)
def save(self):
with open('zerty.txt', mode='at', encoding='utf-8') as myfile:
myfile.write('\n'.join([self.nom, self.note]))
myfile.write('\n')
但是更好的是:
note_code.py:
import etudiant as MP
liste = []
n = int(input("Nombre d'étudiants : "))
liste = [MP.etudiant().saisie() for i in range(n)]
print("les étudiants :")
with open('zerty.txt', mode='wt', encoding='utf-8') as myfile:
for p in liste:
print("-------")
p.affichage()
p.save(myfile)
etudiant.py:
class etudiant:
def __init__(self):
self.nom = "vide"
self.age = 0
def saisie(self):
self.nom = input("Nom : ")
self.note = int(input("note : "))
def affichage(self):
print("Son nom est ", self.nom)
print("sa note : ", self.note)
def save(self, file_to_save):
file_to_save.write('{}\n{}\n'.format(self.nom, self.note))
希望这对您有所帮助;-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句