Skip to main content
 首页 » 编程设计

Python 3 : How do I make a game using user input and retrieving answer from a list of dictionaries, 然后用点系统

2025年05月04日12myhome

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

一共猜10个国家,猜对得1分,共10分。

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

[{'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))