无法在python中将字符串分配给我的数组/列表

无法在python中将字符串分配给我的数组/列表,python,string,list,object,Python,String,List,Object,我发现以下错误: Traceback (most recent call last): File "battleships.py", line 120, in <module> lines[num - 1][let - 1] = symbol2 TypeError: 'str' object does not support item assignment 回溯(最近一次呼叫最后一次): 文件“battleships.py”,第120行,在 行[num-1][let-1

我发现以下错误:

Traceback (most recent call last):
  File "battleships.py", line 120, in <module>
    lines[num - 1][let - 1] = symbol2
TypeError: 'str' object does not support item assignment
回溯(最近一次呼叫最后一次):
文件“battleships.py”,第120行,在
行[num-1][let-1]=symbol2
TypeError:“str”对象不支持项分配
我对python仍然相当在行,我想我应该尝试一下战舰,这只是我学习过程的一部分。我知道我很难将字符串对象分配给我的列表,但我有一个早期版本的代码,其中相同的代码概念可以顺利工作,所以我不知所措。我尝试过不同的方法将变量转换成字符串,但我的项目已经超出了我的能力范围,我需要帮助找到问题所在

这是我的密码:

1 import random
  2
  3
  4
  5 def crtboard(size,symbol):
  6         x, y = size, size
  7         board = [[symbol for i in range(x)] for ii in range(y)]
  8         return board
  9
 10 def crtships(board,boardsize):
 11
 12         shipcount2 = 0
 13         shipcount3 = 0
 14         shipcount4 = 0
 15         shipcount5 = 0
 16         symbol1 = '*'
 17
 18         while shipcount2 < ship2:
 19                                 randint = random.randint(0,1)
 20                                 randlet = random.randint(0,boardsize - 1)
 21                                 randnum = random.randint(0,boardsize - 1)
 22                                 if randint == 0 and randnum < (boardsize - 1) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet][randnum + 1] != symbol1:
 23                                         board[randlet][randnum] = symbol1
 24                                         board[randlet][randnum + 1] = symbol1
 25                                         shipcount2 += 1
 26                                 if randint == 1 and randlet < (boardsize - 1) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet + 1][randnum] != symbol1:
 27                                         board[randlet][randnum] = symbol1
 28                                         board[randlet + 1][randnum] = symbol1
 29                                         shipcount2 += 1
 30
 31         while shipcount3 < ship3:
 32                                 randint = random.randint(0,1)
 33                                 randlet = random.randint(0,boardsize - 1)
 34                                 randnum = random.randint(0,boardsize - 1)
 35                                 if randint == 0 and randnum < (boardsize - 2) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet][randnum + 1] != symbol1 and board[randlet][randnum + 2] !=     symbol1:
 36                                         board[randlet][randnum] = symbol1
 37                                         board[randlet][randnum + 1] = symbol1
 38                                         board[randlet][randnum + 2] = symbol1
 39                                         shipcount3 += 1
 40                                 if randint == 1 and randlet < (boardsize - 2) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet + 1][randnum] != symbol1 and board[randlet + 2][randnum] !=     symbol1:
 41                                         board[randlet][randnum] = symbol1
 42                                         board[randlet + 1][randnum] = symbol1
 43                                         board[randlet + 2][randnum] = symbol1
 44                                         shipcount3 += 1
 45
 46         while shipcount4 < ship4:
 47                                 randint = random.randint(0,1)
 48                                 randlet = random.randint(0,boardsize - 1)
 49                                 randnum = random.randint(0,boardsize - 1)
 50                                 if randint == 0 and randnum < (boardsize - 3) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet][randnum + 1] != symbol1 and board[randlet][randnum + 2] !=     symbol1 and board[randlet][randnum + 3] != symbol1:
 51                                         board[randlet][randnum] = symbol1
 52                                         board[randlet][randnum + 1] = symbol1
 53                                         board[randlet][randnum + 2] = symbol1
 54                                         board[randlet][randnum + 3] = symbol1
 55                                         shipcount4 += 1
 56                                 if randint == 1 and randlet < (boardsize - 3) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet + 1][randnum] != symbol1 and board[randlet + 2][randnum] !=     symbol1 and board[randlet + 3][randnum] != symbol1:
 57                                         board[randlet][randnum] = symbol1
 58                                         board[randlet + 1][randnum] = symbol1
 59                                         board[randlet + 2][randnum] = symbol1
 60                                         board[randlet + 3][randnum] = symbol1
 61                                         shipcount4 += 1
 62
 63         while shipcount5 < ship5:
 64                                 randint = random.randint(0,1)
 65                                 randlet = random.randint(0,boardsize - 1)
 66                                 randnum = random.randint(0,boardsize - 1)
 67                                 if randint == 0 and randnum < (boardsize - 4) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet][randnum + 1] != symbol1 and board[randlet][randnum + 2] !=         symbol1 and board[randlet][randnum + 3] != symbol1 and board[randlet][randnum + 4] != symbol1:
 68                                         board[randlet][randnum] = symbol1
 69                                         board[randlet][randnum + 1] = symbol1
 70                                         board[randlet][randnum + 2] = symbol1
 71                                         board[randlet][randnum + 3] = symbol1
 72                                         board[randlet][randnum + 4] = symbol1
 73                                         shipcount5 += 1
 74                                 if randint == 1 and randlet < (boardsize - 4) and board[randlet][randnum] != symbol1 and board[randlet][randnum] != symbol1 and board[randlet + 1][randnum] != symbol1 and board[randlet + 2][randnum] !=         symbol1 and board[randlet + 3][randnum] != symbol1 and board[randlet + 4][randnum] != symbol1:
 75                                         board[randlet][randnum] = symbol1
 76                                         board[randlet + 1][randnum] = symbol1
 77                                         board[randlet + 2][randnum] = symbol1
 78                                         board[randlet + 3][randnum] = symbol1
 79                                         board[randlet + 4][randnum] = symbol1
 80                                         shipcount5 += 1
 81
 82
 83 #####################################################    MAIN    ######################################################
 84
 85 boardsize2 = 9
 86 symbol4 = 'W'
 87 seeboardpc = crtboard(boardsize2,symbol4)
 88 seeboardu = crtboard(boardsize2,symbol4)
 89 noseeboardpc = crtboard(boardsize2,symbol4)
 90 noseeboardu = crtboard(boardsize2,symbol4)
 91 symbol1 = '*'
 92 symbol2 = 'S'
 93 symbol3 = 'H'
 94
 95 ship2 = input("How many 2x1 ships do want?:")
 96 ship3 = input("How many 3x1 ships do want?:")
 97 ship4 = input("How many 4x1 ships do want?:")
 98 ship5 = input("How many 5x1 ships do want?:")
 99 tal = 1
100 letterB = 'A'
101 listA = []
102 zz = 0
103 while zz < boardsize2:
104         listA.append(letterB)
105         letterB = (chr(ord(letterB)+1))
106         zz += 1
107
108 crtships(noseeboardu,boardsize2)
109 crtships(noseeboardpc,boardsize2)
110
111
112 for line in noseeboardu:
113         print('%d' % tal +'%s\n' % str(line))
114         tal += 1
115
116 for lines in noseeboardu:
117         while '*' in lines:
118                 let = input("Shoot column example A: ")
119                 num = input("Shoot row example 2: ")
120                 lines[num - 1][let - 1] = symbol2
121                 print('0' + str(listA))
122                 tal = 1
123                 for lines in noseeboardu:
124                         print('%d' % tal +'%s\n' % str(line))
125                         tal += 1
126
127 print('game over')
1随机导入
2.
3.
4.
5 def crtboard(尺寸、符号):
6 x,y=尺寸,尺寸
7电路板=[[范围(x)中i的符号]范围(y)中ii的符号]
8返回板
9
10 def CRT芯片(板、板尺寸):
11
12 shipcount2=0
13 shipcount3=0
14 shipcount4=0
15 shipcount5=0
16 symbol1='*'
17
18当shipcount2my_string =  "foo"
my_string[0] = "a"