按值打印字典键和值 python
Printing dictionary keys and values by value python
对于 python class 我要创建一个简单的菜单来做一些事情,其中之一是根据评分打印出所有球员的球衣号码和评分。当用户从菜单中选择 'r' 时,用户应该能够输入评分,然后程序将打印出所有等于或大于用户输入评分的球衣号码和评分。我以为我已经弄明白了,但我似乎无法让它发挥作用。关于我在这里出错的任何想法?
roster = {}
for i in range(5):
x = int(input("Enter player number (0-99): "))
y = int(input("Enter player rating: "))
roster[x] = y
for i in sorted(roster):
print('Jersey number:', i, 'Player rating:', roster[i])
sel = 'z'
while sel != 'q':
sel = input("MENU: \na - Add Player\nd - Remove Player\nu - Update
Player Rating\n"
"r - Output Players Above A Rating\no - Output Roster\nq -
Quit\n")
if sel == 'a':
x = int(input("Enter player number (0-99): "))
y = int(input("Enter player rating: "))
roster[x] = y
elif sel == 'o':
for i in sorted(roster):
print('Jersey number:', i, 'Player rating:', roster[i])
elif sel == 'd':
delete = int(input("Enter jersey number to be deleted: "))
del roster[delete]
elif sel == 'u':
update = int(input("Enter jersey number to be updated: "))
change = int(input("Enter new player rating: "))
roster[update] = change
elif sel == 'r':
above = int(input("Enter a rating: "))
for key, value in roster.items():
if above >= value:
print(key)
elif sel == 'q':
print("Thanks for using the program")
else:
continue
用户输入的值,我们打印出高于该值的评分。在您的代码中,此值称为 above
.
因此,如果您的代码应该是
if value >= above:
而不是 if above >= value:
此外,请注意缩进,在我看来,您希望 if 块位于 while 循环内。
你的问题并没有真正详细说明你面临的困难是什么,或者程序是如何崩溃的,如果它崩溃的话。但我注意到的一件事是,您打印的评级小于或等于提供的评级...不高于或等于评级。
所以这个
if above >= value:
应替换为
if above <= value:
如果问题与此不同,请回复并详细解释您所面临的问题,我很乐意提供帮助
elif sel == 'r':
above = int(input("Enter a rating: "))
for key, value in roster.items():
if above <= value:
print('Jersey number: ', key, 'Player rating: ', value)
这修正了代码。谢谢@Doodle Dee
对于 python class 我要创建一个简单的菜单来做一些事情,其中之一是根据评分打印出所有球员的球衣号码和评分。当用户从菜单中选择 'r' 时,用户应该能够输入评分,然后程序将打印出所有等于或大于用户输入评分的球衣号码和评分。我以为我已经弄明白了,但我似乎无法让它发挥作用。关于我在这里出错的任何想法?
roster = {}
for i in range(5):
x = int(input("Enter player number (0-99): "))
y = int(input("Enter player rating: "))
roster[x] = y
for i in sorted(roster):
print('Jersey number:', i, 'Player rating:', roster[i])
sel = 'z'
while sel != 'q':
sel = input("MENU: \na - Add Player\nd - Remove Player\nu - Update
Player Rating\n"
"r - Output Players Above A Rating\no - Output Roster\nq -
Quit\n")
if sel == 'a':
x = int(input("Enter player number (0-99): "))
y = int(input("Enter player rating: "))
roster[x] = y
elif sel == 'o':
for i in sorted(roster):
print('Jersey number:', i, 'Player rating:', roster[i])
elif sel == 'd':
delete = int(input("Enter jersey number to be deleted: "))
del roster[delete]
elif sel == 'u':
update = int(input("Enter jersey number to be updated: "))
change = int(input("Enter new player rating: "))
roster[update] = change
elif sel == 'r':
above = int(input("Enter a rating: "))
for key, value in roster.items():
if above >= value:
print(key)
elif sel == 'q':
print("Thanks for using the program")
else:
continue
用户输入的值,我们打印出高于该值的评分。在您的代码中,此值称为 above
.
因此,如果您的代码应该是
if value >= above:
而不是 if above >= value:
此外,请注意缩进,在我看来,您希望 if 块位于 while 循环内。
你的问题并没有真正详细说明你面临的困难是什么,或者程序是如何崩溃的,如果它崩溃的话。但我注意到的一件事是,您打印的评级小于或等于提供的评级...不高于或等于评级。
所以这个
if above >= value:
应替换为
if above <= value:
如果问题与此不同,请回复并详细解释您所面临的问题,我很乐意提供帮助
elif sel == 'r':
above = int(input("Enter a rating: "))
for key, value in roster.items():
if above <= value:
print('Jersey number: ', key, 'Player rating: ', value)
这修正了代码。谢谢@Doodle Dee