python - 将变量分配给字符串 - 在维护值的同时打印字符串

标签 python string variables

这感觉像是一个愚蠢的问题,但我对将字符串转换为 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/

相关文章:

powershell - 在Powershell中使用子脚本修改父脚本中的变量

java - 在 OO 语言中初始化对象属性的最佳实践

python - 有没有办法在 Python 的 Matplotlib 中以点坐标绘制 Line2D?

python - 在 python : slicing vs iterating - impact on complexity 中合并排序

C - 有没有办法在 if 语句中将变量放在单引号或双引号内?

c - 如何修复从 C 中的函数传递指针的段错误?

Javascript "this"变量从特定对象切换到 DOMWindow

python - 对脚本文件执行分析

python - TypeError : exceptions must be old-style classes or derived from BaseException, 不是 str

Java 比较字符串