如何正确导入 52 张扑克牌的 csv 文件?

问题描述 投票:0回答:1

我正在开发一个用Python创建战争纸牌游戏的项目。作业要求使用 csv 文件创建 52 张扑克牌,但我遇到了麻烦。我通过 Excel 创建了 csv 文件并尝试导入它,但它不起作用。我是初学者。

这是 excel csv 文件: ![2]:https://gyazo.com/60b87342bbe22b8feffb1b2d8a5653ae

我试图效仿教授的例子,但它对这项作业来说并不适用。

   import csv
    with open('PlayingCards.csv')as csvfile:
    PlayingCards = csv.reader(csvfile,delimiter = ',')
    print('Card Names','\t', 'Card Values','\t', 'Suits')

    for row in PlayingCards:
    print('%-7s %-10s% 3.2f% 3.2f'%
        (row[0],row[1]))

我希望它打印出来像这样或类似的东西:![1]:https://gyazo.com/d2fc57640c3b64640c1ebde652b4d808 但我收到错误。

python python-3.x csv
1个回答
0
投票

要完成这项特定的工作,您需要了解您正在处理的数据类型。 这些套装就像主牌组一样,与每张牌的价值相匹配。

所以第一阶段将是这样的。

import csv
card_name_to_value_dict = {}
suit_list = []
with open('PlayingCards.csv')as csvfile:
     PlayingCards = csv.reader(csvfile, delimiter = ',')
     for row in PlayingCards
         new_cardname, new_cardvalue, new_suitvalue = row
         if new_cardname:
            card_name_to_value_dict[new_cardname] = new_cardvalue
         if new_suitvalue.strip():
            suit_list.append(new_suitvalue.replace("\n",""))
string_result = "\n".join(["\t".join([name, suit, value]) for each_suit in suit_list for name,value in card_name_to_value_dict.items()])      
print string_result
# The string result can be saved into a file for submission

我尽可能重复使用了大部分变量,以便您可以更轻松地理解它,如果您需要任何说明,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.