我试图创建一个统一的项目放坡系统。 我们被告知有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()
这是一个更新的GradeHandler类演示。我试图考虑更新成绩、删除科目等:
您可以将
Karakterer
改为dict,这样就可以遍历Emner
中的主题,并使用in
运算符有效地查找主题是否在Karakterer
:这将输出:
相关问题 更多 >
编程相关推荐