整数不转换为字符串不转换为字符串(python)

2024-10-02 10:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码似乎没有将列表中的整数转换为字符串。以下是我的问题代码:

def aidrawboard(aiboard):
    for i in aiboard:
        inttostr = aiboard[i]
        str(inttostr)
        aiboard[i] = inttostr
        for i in aiboard:
            if aiboard[i] == '3':
                aiboard[i] = '0'
            break
    print(aiboard)
    print("THIS IS THE AI BOARD")
    print('   |   |')
    print(' ' + aiboard[7] + ' | ' + aiboard[8] + ' | ' + aiboard[9])
    print('   |   |')
    print('-----------')
    print('   |   |')
    print(' ' + aiboard[4] + ' | ' + aiboard[5] + ' | ' + aiboard[6])
    print('   |   |')
    print('-----------')
    print('   |   |')
    print(' ' + aiboard[1] + ' | ' + aiboard[2] + ' | ' + aiboard[3])
    print('   |   |')

这是战舰游戏的代码。列表aiboard的示例是[0,0,2,0,0,0,0,0,0]

我得到错误“TypeError:cannotconvert'int'object to str implicitly”,错误指向

print(' ' + aiboard[7] + ' | ' + aiboard[8] + ' | ' + aiboard[9])

抱歉,如果这个错误是非常新的。这是我第一年写代码。你知道吗


Tags: 字符串代码in列表forifdef错误
3条回答

或者您可以定义一个函数来打印电路板:

def print_board(aiboard):
  str_state = map(str, aiboard)
  print('   |   |')
  print(' ' + str_state[7] + ' | ' + str_state[8] + ' | ' + str_state[9])
  print('   |   |')
  print('-----------')
  print('   |   |')
  print(' ' + str_state[4] + ' | ' + str_state[5] + ' | ' + str_state[6])
  print('   |   |')
  print('-----------')
  print('   |   |')
  print(' ' + str_state[1] + ' | ' + str_state[2] + ' | ' + str_state[3])
  print('   |   |')

这样,便于阅读和维护。你知道吗

问题是您从未将变量inttostr设置为您创建的字符串。在你的代码里

for i in aiboard:
        inttostr = aiboard[i]
        str(inttostr)
        aiboard[i] = inttostr

inttostr仍然是一个int。有几种方法可以解决这个问题。你知道吗

for i in aiboard:
        inttostr = aiboard[i]
        inttostr= str(inttostr)
        aiboard[i] = inttostr

或者更好:

for i in aiboard:
        aiboard[i]= str(aiboard[i])

由于存储在abiword列表中的项是整数,因此在打印时需要将元素(要打印的)的数据类型转换为字符串。你知道吗

print(' ' + str(aiboard[7]) + ' | ' + str(aiboard[8]) + ' | ' + str(aiboard[9]))

相关问题 更多 >

    热门问题