我正在尝试制作一个游戏,要求用户根据其首都来猜测一个国家,该国家是从词典列表中随机选择的(类似于底部的链接)。

总共猜测10个国家/地区,如果他们猜对了,则得到1分,共10分。

我导入了一个变量“国家”,其中包含字典列表,如下所示:

[{'capital': 'Andorra la Vella',
  'code': 'AD',
  'continent': 'Europe',
  'name': 'Andorra',
  'timezones': ['Europe/Andorra']},
 {'capital': 'Kabul',
  'code': 'AF',
  'continent': 'Asia',
  'name': 'Afghanistan',
  'timezones': ['Asia/Kabul']},


那么,如何从特定的键名中打印随机选择呢?在这种情况下,来自任何词典的任何“资本”。

Python-Dictionary states and capital game

最佳答案

random.choice非常适合此用例:)

import random


country_dlist = [{'capital': 'Andorra la Vella',
  'code': 'AD',
  'continent': 'Europe',
  'name': 'Andorra',
  'timezones': ['Europe/Andorra']},
 {'capital': 'Kabul',
  'code': 'AF',
  'continent': 'Asia',
  'name': 'Afghanistan',
  'timezones': ['Asia/Kabul']}
 ]

def run():
    tot_points = 0
    num_of_ques = len(country_dlist)
    for i in range(num_of_ques):
        choice = random.choice(country_dlist)
        que = country_dlist.remove(choice)
        capital = raw_input("Please enter the captial for country {}: ".format(choice['name']))
        if capital.lower() == choice['capital'].lower(): # case insensitive match :)
            tot_points += 1
    return tot_points

points = run()
print("You scored {} points".format(points))

09-12 21:27