抱歉,标题太长了。
基本上,我的问题是,我得到了这个非常小的项目来创建一个地理测验,该测验询问用户某个国家的首都是什么。该项目本身非常简单,我可以很快完成,因为它建议您从国家列表中随机选择一个问题,然后检查用户的答案是否等于答案列表中的同一位置。 (抱歉,如果您不明白我的意思)
但是,我想更进一步,我有一个数据 CSV 文件,其中包含 150 多个国家和首都的格式
乡村资本 所以, 法国巴黎
我希望我的程序做的是询问用户一个国家的首都是什么,并且该国家/地区将从 CSV 文件中的第 [0] 行中随机排列。然后当用户去回答时,如果问题是澳大利亚的首都是哪里?如果他们进入悉尼,我希望它检查 CSV 文件,看看澳大利亚是否与悉尼在同一行,格式为 AustraliaSydney ,但因为悉尼不会在同一行,所以告诉他们这是一个错误的答案。那么下一个问题,如果它说法国的首都是哪里,然后他们进入巴黎,它会检查巴黎和法国是否在一起,然后它会给出正确的答案。
这就是我到目前为止所拥有的,实际上什么都不是,因为我对 CSV 操作有点陌生,任何帮助都是值得赞赏的。
import csv
import random
words = dict(csv.reader(open('Data.csv')))
randomWord = random.choice(words.keys())
correctAnswer = words[randomWord]
这很可能是错误的,因为当我在互联网上搜索寻找正确方向的指针时,这就是我所得到的一切,
谢谢。
最佳答案
import csv
import random
countries_capials = dict(csv.reader(open('Data.csv')))
# assuming Data.csv is a comma separated file as so:
# France,Paris
# Australia,Sydney
while True:
random_country = random.choice(countries_capials.keys())
answer = countries_capials[random_country]
print "What's the capial of %s" % random_country
user_answer = raw_input(">>")
if user_answer == answer:
print "That's right!"
else:
print "That's wrong!"
输出:
What's the capial of France
>>Paris
That's right!
What's the capial of Australia
>>New York
That's wrong!
您在示例中获得了所需的一切,只是缺少 raw_input()
和 if/else
位。
编辑
使用this作为数据的国家/首都列表:
csv_file = csv.reader(open('country-list.csv'))
countries_capials = {country:capital for (country,capital,capital_type) in csv_file}
我们使用 dict-comprehension 创建字典.
关于Python - CSV 文件,确保答案与询问的内容在同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876599/