gpt4 book ai didi

python - 在交互式 shell 中运行 python 脚本与在 Linux(ubuntu 13) 的终端中运行 python 脚本有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:00 26 4
gpt4 key购买 nike

class Player():
def __init__(self, char):
self.char = char
self.position = 'f'

def setMove(self):
while True:
print(self.char + ' make a move')
self.position = input()
if self.position.isdigit():
break
def getMove(self):
return int(self.position)

def makeMove(self):
self.setMove()
board[self.getMove()].fillCell(self)



class Cell():
def __init__(self):
self.filled = False
self.image = '_'

def __str__(self):
return self.image

def fillCell(self, player):
if not self.filled:
self.image = player.char
self.filled = True
else:
player.makeMove()


class Board(list):
def __init__(self,cells):
super(list,self).__init__(cells)

def __str__(self):
return '\n'.join([chunk for chunk in self._chunks()])

def _chunks(self):
chunk_len = 3

for i in range(0,len(self),chunk_len):
yield ' '.join([cell.image for cell in self[i:i+3]])


def checkRow(self,player):
chunk_len = 3
test_list = [player.char for i in range(chunk_len)]

for idx in range(0,len(self)-1,chunk_len):
return ([cell.image for cell in self[idx:idx +chunk_len]] == test_list)






board = Board([Cell() for i in range(9)])

if __name__ == '__main__':



pl1 = Player('x')
pl2 = Player('o')



while True:
print(board)

pl1.makeMove()


print(board)

pl2.makeMove()

这是我的脚本。当我在 python shell 中运行它时,它完全可以解决。但是,当我尝试在终端中执行相同的操作时,我收到了一个错误

Traceback (most recent call last):
File "tictactoe.py", line 63, in <module>
board = Board([Cell() for i in range(9)])
File "tictactoe.py", line 39, in __init__
super().__init__(cells)
TypeError: super() takes at least 1 argument (0 given)

然后我用谷歌搜索它,我添加了参数。我再次运行这个脚本,它显示了一个不同的错误。

x make a move

Traceback (most recent call last):
File "tictactoe.py", line 77, in <module>
pl1.makeMove()
File "tictactoe.py", line 16, in makeMove
self.setMove()
File "tictactoe.py", line 10, in setMove
if self.position.isdigit():
AttributeError: 'int' object has no attribute 'isdigit'

发生错误时我并不感到惊讶,真正让我惊讶的是“板”没有出现。因此,如果可以提供帮助,那将对我有很大帮助。

最佳答案

在交互式 shell 和 Linux 终端中运行 python 脚本的区别在于,您可以安装多个版本的 Python。如果运行错误,您需要弄清楚发生了什么。

如果您在交互式 shell 中运行 Python 脚本,它还会使用与其运行的 Python 二进制文件相对应的库。

关于python - 在交互式 shell 中运行 python 脚本与在 Linux(ubuntu 13) 的终端中运行 python 脚本有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22347621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com