这感觉像是一个愚蠢的问题,但我对将字符串转换为 int 值的方法空白,然后在保留先前分配的值的同时打印实际字符串。
我写了一个简单的例子来尝试解释我在做什么;假设没有相等的值。
unshuffled_list = [2,3,4,5,6,7,8,9,10,'J','Q','K','A']
random.shuffle(unshuffled_list)
aDeck = []
bDeck = []
aDeck = unshuffled_list[0:26]
bDeck = unshuffled_list[26:53]
i = 0
while i <= len(aDeck):
print("Player A: {}\nPlayer B: {}".format(aDeck[i],bDeck[i]))
if aDeck[i] > bDeck[i]:
print("Player A wins!\n")
if aDeck[i] < bDeck[i]:
print("Player B wins!\n")
i += 1
这段代码中断了,不是开玩笑,因为它无法将字符串与 int 进行比较,但是是否可以打印出这样的结果:
Player A: 9
Player B: Q
Player B Wins!
基本上,它会打印出列表中包含的实际字符串,但保留分配给它的 int 变量。
我已经通过使用 int 值列表来获取这段代码,但为了学习,我想知道是否可以这样做。
我也尝试过使用 str() 和 int(),但没有任何运气。
最佳答案
使用字典将命名卡映射到它们的值。
cardValue = { 'J': 11, 'Q': '12', 'K': 13, 'A': 14}
def getCardValue(c)
return cardValue[c] if c in cardValue else c
while i <= len(aDeck):
print("Player A: {}\nPlayer B: {}".format(aDeck[i],bDeck[i]))
cardA = getCardValue(aDeck[i])
cardB = getCardValue(bDeck[i])
if cardA > cardB:
print("Player A wins!\n")
elif cardA < cardB:
print("Player B wins!\n")
else:
print("It's a tie!\n")
i += 1
关于python - 将变量分配给字符串 - 在维护值的同时打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780850/