int对象在循环中不可订阅

时间:2018-06-06 08:55:08

标签: python

我正在创建一个简单的循环,我检查int的字符串的长度然后创建2个条件,但是出现以下错误:

if len(str(valueOfCardPlayer[count])) == 1:
TypeError: 'int' object is not subscriptable

这是我的代码:

global valueOfCardPlayer
global suitOfCardPlayer
if not showAllCards:
    count = 0
    for eachCard in playerCards:
        valueOfCardPlayer = values[eachCard.split()[count]]
        suitOfCardPlayer = suitsSymbol[eachCard.split()[count + 2]]
        print(valueOfCardPlayer)


        if len(str(valueOfCardPlayer[count])) == 1:
            print(f"Player:\n\n"
                  f"------------\n"
                  f"| {valueOfCardPlayer[count]} {suitOfCardPlayer[count]}      |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|      {valueOfCardPlayer[count]} {suitOfCardPlayer[count]} |\n"
                  f"----------\n")
        else:
            print(f"Player:\n\n"
                  f"------------\n"
                  f"| {valueOfCardPlayer[count]} {suitOfCardPlayer[count]}     |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|          |\n"
                  f"|     {valueOfCardPlayer[count]} {suitOfCardPlayer[count]} |\n"
                  f"----------\n")
        count += 1

P.S。:全局变量是列表

1 个答案:

答案 0 :(得分:1)

您首先使用键eachCard.split()[count]从字典中提取值:

valueOfCardPlayer = values[eachCard.split()[count]]

然后尝试索引生成的整数:

valueOfCardPlayer[count]

您无法索引整数,因此需要输入错误。当你说所有全局变量都是字符串列表时,你就错了。事实并非如此:valueOfCardPlayer被赋予一个整数值。