【发布时间】:2019-03-09 12:08:38
【问题描述】:
我正在尝试为 UNI 项目创建分级系统。 我们被告知有 3 个全局列表:
Emner = ["INFO100","INFO104","INFO110","INFO150","INFO125"]
FagKoder = [["Informasjonsvitenskap","INF"],["Kognitiv vitenskap","KVT"]
Karakterer=[["INFO100","C"],["INFO104","B"],["INFO110","E"]]
通过这些列表,我们应该创建一种查看科目 (Emner) 的方法,其中包含来自 Karakterer 的成绩,但我们也应该能够查看没有成绩的科目。它应该像这样显示:
我们还应该能够在 (Emner) 中添加新科目并在 (Karakterer) 中添加新成绩。所有这些都应该如上图所示。
我一直在尝试各种不同的方法来做到这一点,但我不断地回到两个问题之一。要么我无法打印没有评分的科目,要么如果我添加了一个新科目(Emne),并且想要添加一个评分(Karakter),我无法将它放置到正确的科目中,因为它只是保存在第一个没有成绩。
希望任何人都可以帮助我,在这里发疯!
到目前为止我的代码:
def emneliste():
global Emner
global Karakterer
emne,kar = zip(*Karakterer)
ans = [list(filter(None, i)) for i in itertools.zip_longest(Emner,kar)]
def LeggTilEmne():
global Karakterer
global Emner
nyttEmne = input("Skriv ny emnekode (4Bokstaver + 3 tall): ")
if nyttEmne not in Emner:
while re.match('^[A-Å]{3,4}[0-9]{3}$',nyttEmne):
Emner.append(nyttEmne)
print(nyttEmne + " Er lagt til!")
start()
print("Feil format")
LeggTilEmne()
else:
print("Dette Emnet er allerede i listen din")
start()
def SettKarakter():
global Karakterer
global Emner
VelgEmne = input("Hvilke emne? ")
Emne,Karakter = zip(*Karakterer)
if str(VelgEmne) not in str(Emner):
print("Dette faget er ikke i din liste")
feil = input("om du heller ønsket å opprette fag trykk 2, ellers trykk enter ")
if feil == str(2):
LeggTilEmne()
else:
start()
else:
if str(VelgEmne) in str(Karakterer):
index = Karakterer.index([VelgEmne,"C"])
Karakterer.pop(index)
SettKar = input("Karakter? ")
Emner.append([VelgEmne,SettKar])
print("Karakter " + SettKar + " Er Lagt til i " + VelgEmne)
start()
else:
SettKar = input("Karakter? ")
if str(VelgEmne) in str(Emner):
index = Emner.index(VelgEmne)
print(index)
Emner.pop(index)
Emner.insert(index,[VelgEmne,SettKar])
print("Karakter " + SettKar + " Er Lagt til i " + VelgEmne)
start()
else:
print("Virker Ikke")
start()
【问题讨论】:
-
显示您尝试过的代码尝试。