gpt4 book ai didi

python - 这个功能有问题吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:29 25 4
gpt4 key购买 nike

我是 python 的新手。开始制作井字游戏。

我已经打印了一 block 电路板,所以这不是问题。我的函数 play_sequence 发生了一些奇怪的事情。

from IPython.display import clear_output

def display_board(board):
print(board[7]+ '|'+board[8]+ '|' +board[9])
print('----')
print(board[4]+ '|'+board[5]+ '|' +board[6])
print('----')
print(board[1]+ '|'+board[2]+ '|' +board[3])

def play_sequence():
move1 = ''

while move1 != range(0,10,1):
move1 = input("Player 1, choose a number:")
break

while move1 == input(move1):
print("You chose 1")

我想让玩家选择一个数字,它应该返回你选择的 1,然后是棋盘上有 1 on board[1] 的棋盘。相反,我输入了 1,然后在一个框前面出现了一个带有 1 的新行以输入另一个输入。有任何想法吗?然后我输入另一个 1,然后它显示“11”。这很有趣,但我需要帮助。有什么想法吗?

最佳答案

我不太确定您为什么要使用 while 循环。我相信你想问 if move1 in range(1, 10) (顺便说一下,不需要写 range(0, 10, 1) 因为步长默认为 1,还有你的 tic tac脚趾板从 1 到 9 而不是从 0 因此范围 (1, 10))。这就像说“如果 move1 不是 1 到 9 之间的数字,则请求输入”。我想你的意思也是 if move1 == ''。这还有一个小问题,那就是输入是字符串……所以它们不能真正与范围内的数字进行比较。即 '3' != 3。

要轻松更改它,您只需执行 int(input(".. whatever you ask for ..")) 即可将字符串转换为整数。

只是一个旁注,但是当你写 move1 = '' 时,我知道你使用的是空字符串,因为你没有任何东西,但你也可以使用 move1 = None 。然后你也可以说 if not move1: 而不是(“None”是 False,所以这就像说 if not False,即 if True)。

到目前为止,你有:

def play_sequence():
move1 = None

if not move1:
move1 = int(input("Player 1, choose a number:"))

另外,你可以简单地说

    def play_sequence():
move1 = int(input("Player 1, choose a number:"))

因为当您无论如何要更改 move1 时,执行 move1 没有多大意义。除非我不太明白你为什么要使用 while 循环...我猜你想检查输入是否是 1-9 之间的数字?

无论如何,你发现的奇怪的“1 1 1”问题源于此:

当移动 1 == 输入(移动 1)时: print("你选择了1")

在这里,你使用 input(),只要你有 input(),你实际上是在请求输入。这就是为什么你一次又一次地输入 1 的原因。例如,如果您写入 2 或其他一些数字,则 while 循环将停止。我其实不太确定你在这里做什么,但我认为你想说的是:

print("You chose", move1)

这将打印在函数的第一部分中选择的数字。

因此:

def play_sequence():
move1 = None

if not move1:
move1 = int(input("Player 1, choose a number:"))

print("You chose", move1)

我希望我能帮到你,而且我没有让你感到困惑......:) 祝你学习 Python 愉快!

关于python - 这个功能有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54058015/

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