下面更新
我正在介绍Zybooks编程课程。我正在本章的最后一个项目中,由于间距或返回问题,输出始终失败。我一直在调整它并尝试进行更改,但是它总是以失败告终。有人愿意看这个问题并给我提示我失败的地方吗?我真的很感激,谢谢!
以下是解决问题的步骤:
提示用户输入五对数字:球员的球衣号码(0-99)和球员的等级(1-9)。存放球衣 字典中的数字和等级。输出字典的 球衣号码按升序排列的元素(即输出 球衣号码从最小到最大)。提示:字典键 可以存储在排序列表中。 (3分)
实施选项菜单,以供用户修改花名册。每个选项均由单个字符表示。该程序最初 输出菜单,并在用户选择一个选项后输出菜单。 当用户选择退出选项时,程序结束。为了这 步骤,其他选项则无济于事。 (2分)
实施“输出名册”菜单选项。 (1分)
实施“添加播放器”菜单选项。提示用户输入新球员的球衣号码和等级。将值附加到两个 向量。 (1分)
实施“删除播放器”菜单选项。提示用户输入球员的球衣号码。从名单中删除播放器(删除 球衣号码和评分)。 (1分)
实施“更新播放器等级”菜单选项。提示用户输入球员的球衣号码。再次提示您为 玩家,然后更改该玩家的等级。 (1分)
实施“高于评分的输出播放器”菜单选项。提示用户进行评分。打印所有的球衣号码和等级 评分高于输入值的玩家。 (2分)
我的代码:
d={}
for i in range(5):
jersey=int(input("Enter player %s's jersey number:\n" % str(i+1)))
rating=int(input("Enter player %s's rating:\n" % str(i+1)))
if jersey not in d:
d[jersey]=rating
print()
print("ROSTER")
for k,v in sorted(d.items()):
print("Jersey number: %d, Rating: %d" % (k,v))
while True:
print('\nMENU')
print('a - Add player')
print('d - Remove player')
print('u - Update player rating')
print('r - Output players above a rating')
print('o - Output roster')
print('q - Quit\n')
choice=input('Choose an option:\n')
choice=choice.lower()
if choice=='o':
print("ROSTER")
for k,v in sorted(d.items()):
print("Jersey number:%d,Rating:%d" % (k,v))
elif choice=='a':
jersey=int(input("Enter a new player jersey number:\n"))
rating=int(input("Enter player's rating:\n"))
if jersey not in d:
d[jersey]=rating
else:
print("\nThe Player already in the list")
elif choice== 'd':
jersey=int(input("\nEnter a jersey number:\n"))
if jersey in d:
del d[jersey]
else:
print("\nThe Player is not in the list")
elif choice== 'u':
jersey=int(input("\nEnter a jersey number:\n"))
if jersey in d:
rating=int(input("\nEnter a new rating for the player:\n"))
d[jersey]=rating
else:
print("\nThe Player is not in the list")
elif choice== 'r':
rating=int(input("\nEnter a rating:\n"))
for k,v in sorted(d.items()):
if v > rating:
print("Jersey number:%d,Rating:%d" % (k,v))
elif choice=='q':
break
这是我得到的结果。
这是他们想要的结果:
更新:
我最终更改了代码的整个下部。这解决了我遇到的退货问题,但是现在我遇到了其他问题。菜单的两个功能是添加和删除字典条目。我回去上了课,我认为它们的编码正确,但是无法正常工作。有人可以指出我要去哪里了吗?谢谢!
这是代码(下半部分是相同的,上半部分是相同的):
def print_menu():
menuOp = """MENU
a - Add player
d - Remove player
u - Update player rating
r - Output players above a rating
o - Output roster
q - Quit
Choose an option:"""
return menuOp
def main():
while(True):
c = input()
if(c=='a'):
jersey=int(input("Enter a new player jersey number:\n"))
rating=int(input("Enter player''s rating:\n"))
if jersey not in d:
d[jersey]=rating
else:
print("\nThe Player already in the list")
elif(c=='o'):
print("ROSTER")
for k,v in sorted(d.items()):
print("Jersey number:%d,Rating:%d" % (k,v))
elif(c=='d'):
jersey=int(input("\nEnter a jersey number:\n"))
if jersey in d:
del d[jersey]
else:
print("\nThe Player is not in the list")
elif(c=='u'):
jersey=int(input("\nEnter a jersey number:\n"))
if jersey in d:
rating=int(input("\nEnter a new rating for the player:\n"))
d[jersey]=rating
else:
print("\nThe Player is not in the list")
elif(c=='r'):
rating=int(input("\nEnter a rating:\n"))
for k,v in sorted(d.items()):
if v > rating:
print("Jersey number:%d,Rating:%d" % (k,v))
elif(c=='q'):
print()
break
print()
print(print_menu())
对不起,不知道为什么粘贴格式变得怪异。