python - 让代码在列表的所有元素上运行
问题描述
下面是一些代码。代码本身做了我需要它做的事情,但只在“手”列表的第一个元素上做。我需要它对第二个元素执行相同的操作并将其添加到总数中。我相信我的运行总代码有效,我似乎无法让它在第二张卡上运行代码。(这些元素代表扑克牌。)
hand = ['JS','3C']
total = 0
for cards in (hand):
card1 = hand[0].split(sep =',') ### Card 1 in hand list is split.
card1_str = ' '.join(card1) ### Card 1 is converted to string.
card1_value = card1_str[0].split() ### Card value is stripped
card1_suit = card1_str[1].split() ### Card suit is stripped
card1_value = ''.join(card1_value)
card1_suit = ''.join(card1_suit)
if card1_value == 'K' or card1_value == 'Q' or card1_value == 'J' or card1_value == 'T':
total = 10
elif card1_value == 'A':
total = 11
else:
card1_value = int(card1_value)
total = card1_value
解决方案
您必须使用您在for
循环主体内的语句中引入的变量,以使其按预期工作。此外,许多格式化代码都是多余的,因为卡片已经是字符串:
hand = ['JS', '3C']
total = 0
for card in hand:
card_value = card[0]
card_suit = card[1]
if card_value in 'KQJT':
total += 10
elif card_value == 'A':
total += 11
else:
total += int(card_value)
print(total)
输出:
13
推荐阅读
- python - 一个热编码整个数据帧
- c++ - 如果我的类是模板化的,为什么这个 typedef 不起作用?
- spring - JSTL - 获取表格行值以及新输入
- c - 钟在 C '\a' 中写了两次为什么只响一次?
- unix - 使用 bsub 命令运行相关 LSF 作业时出现错误消息
- mysql - WITH ROLLUP 不显示总和
- sql-server - 需要在 Visual Studio 2019 中调试 SQL Server 存储过程的详细说明
- linux - AutoKey 中的 getkey
- cloudflare - 网站拒绝某些爬虫/浏览器访问,但不拒绝其他
- wildfly - Quarkus 扩展和长期运行