实验室作业出现问题(使用列表和整数)

时间:2015-11-11 03:45:15

标签: python list python-3.x

本周我们的实验室任务是制作一个在Python 3中运行的简单版本的二十一点。我已经完成了大部分任务,但我遇到了需要确定每张卡点数的部分。这是我所关注的细分代码的模型。

date

Playerhand是一个列表,包含1-10或A,J,Q或K之间的2或3个随机字符串(这些是aces和face卡)。就目前而言,我想不出一种简单的方法可以将playerhand的值转换为整数,而无需使用一堆elif语句将每个字符串转换为整数对应的字符串。我不能使用playerhand [x],因为for循环无论如何都要遍历playerhand中的每个值。我已经有一段时间了,如果有人能提供一些帮助,我真的很感激。

2 个答案:

答案 0 :(得分:1)

首先,你在循环中滥用playerhand。给定循环表达式for i in playerhandi表示列表的单个元素。因此,在循环内部,您应该使用i而不是playerhand来引用当前元素。 playerhand仍然引用整个列表。

通过此更改,您调用int()的解决方案可能正常。一个更好的整体解决方案是使用评论中已经建议的字典,但鉴于这是一个实验室分配,它可能仅供您使用某些数据结构。

另一个解决方案是拥有一个包含所有可能字符串的列表,以及包含相应分数的相同长度的第二个列表。在第一个列表中找到一个给定的字符串,然后在同一个位置找到第二个列表的元素,这就是得分。

答案 1 :(得分:0)

我立即看到的给定代码文本中的问题是使用playerhand而不是i; for i表示从列表开头按顺序排列的playerhand的每个值。

其他一切看起来好像工作得很好,但是使用字典可能也是一个好方法。虽然您将此作为实验室作业,但这可能比您的老师正在寻找的更多。