对于家庭作业,我正在尝试制作一个在每个状态的首都询问用户的游戏,就像抽认卡游戏一样。我已经满足了该程序的所有要求,除了他们希望问题是随机顺序的。我该如何洗牌词典?我知道如何将列表删除,而不是词典,因为我认为它们已经应该是随机顺序的。但是我以相同顺序收到问题,我键入键/值(按状态按字母顺序排列)
flashcards = {'ALABAMA': 'MONTGOMERY',
'ALASKA': 'JENEAU',
'ARIZONA': 'PHOENIX',
'ARKANSAS': 'LITTLE ROCK',
'CALIFORNIA': 'SACRAMENTO',
'COLORADO': 'DENVER',
'CONNECTICUT': 'HARTFORD',
'DELAWARE': 'DOVER',
'FLORIDA': 'TALLAHASSEE',
'GEORGIA': 'ATLANTA',
'HAWAII': 'HONOLULU',
'IDAHO': 'BOISE',
'ILLINOIS': 'SPRINGFIELD',
'INDANA': 'INDIANAPOLIS',
'IOWA': 'DES MOINES',
'KANSAS': 'TOPEKA',
'KENTUCKY': 'FRANKFORT',
'LOUISIANA': 'BATON ROUGE',
'MAINE': 'AUGUSTA',
'MARYLAND': 'ANNAPOLIS',
'MASSACHUSETTS': 'BOSTON',
'MICHIGAN': 'LANSING',
'MINNESOTA': 'ST. PAUL',
'MISSISSIPPI': 'JACKSON',
'MISSOURI': 'JEFFERSON CITY',
'MONTANA': 'HELENA',
'NEBRASKA': 'LINCOLN',
'NAVADA': 'CARSON CITY',
'NEW HAMPSHIRE': 'CONCORD',
'NEW JERSEY': 'TRENTON',
'NEW MEXICO': 'SANTA FE',
'NEW YORK': 'ALBANY',
'NORTH CAROLINA': 'RALEIGH',
'NORTH DAKOTA': 'BISMARCK',
'OHIO': 'COLUMBUS',
'OKLAHOMA': 'OKLAHOMA CITY',
'OREGON': 'SALEM',
'PENNSYLVANIA': 'HARRISBURG',
'RHODE ISLAND': 'PROVIDENCE',
'SOUTH CAROLINA': 'COLUMBIA',
'SOUTH DAKOTA': 'PIERRE',
'TENNESSEE': 'NASHVILLE',
'TEXAS': 'AUSTIN',
'UTAH': 'SALT LAKE CITY',
'VERMONT': 'MONTPELIER',
'VIRGINIA': 'RICHMOND',
'WASHINTON': 'OLYMPIA',
'WEST VIRGINIA': 'CHARLESTON',
'WISCONSIN': 'MADISON',
'WYOMING': 'CHEYENNE'}
def main():
incorrect = 0
correct = 0
print('Let's play the State's game!!')
for b in flashcards.keys():
question = input('What is the capital of ' + b +'? : ')
if question.upper() == flashcards[b].upper():
correct += 1
print('correct!!')
print('Correct: ', correct)
print('Incorrect: ', incorrect)
else:
incorrect += 1
print('oops! that is incorrect')
print('Correct: ', correct)
print('Incorrect: ', incorrect)
main()
使用 random.shuffle
from random import shuffle
states = flashcards.keys()
shuffle(states)
for state in states:
print 'State: {}, Capital: {}'.format(state, flashcards[state])