我正在尝试使用python创建一个与扑克相关的程序。
当有人输入"9H"
时,有没有办法将9
与H
分开?
答案 0 :(得分:6)
答案 1 :(得分:3)
您可以使用索引访问字符串中的每个字符,无需将输入转换为列表。如果它只有两个字符,您可以随时执行此操作:
card = '9H'
number, suit = card[0], card[1]
甚至更简单,我们可以解压缩字符串中的元素:
number, suit = card
现在number
将包含字符串值'9'
,suit
将等于'H'
。但请注意边缘情况 - 我们如何处理'10S'
等卡片?有点笨拙,但我们可以使用正则表达式,这将适用于卡的所有有效输入:
import re
card = '10S'
number, suit = re.findall(r'(\d+)(\D)', card)[0]
答案 2 :(得分:1)
将其转换为列表:
$ python
Python 2.7.8 (default, Oct 30 2014, 18:30:15)
>>> "example"[0]
'e'
>>> "example"[1]
'x'
>>> list("example")
['e', 'x', 'a', 'm', 'p', 'l', 'e']
答案 3 :(得分:0)
请注意,如果您期望输入10H
而非TH
,则所有这些答案都很可怕。在这种情况下,我会考虑从其余部分剥离最后一个标记(应该始终是代表套装的单个字符),而不是这样做。
your_input = "10H"
rank, suit = your_input[:-1], your_input[-1]
这也适用于更多“正常”输入:
rank, suit = "9H"[:-1], "9H"[-1]