python 我无法找出这段代码中的错误[duplicate]

b5buobof  于 2023-03-16  发布在  Python
关注(0)|答案(2)|浏览(115)

此问题在此处已有答案

How can I read inputs as numbers?(10个答案)
11小时前关门了。
我现在正在学习Python,并尝试自己做井字游戏。我已经写了这些代码,但我不知道我的逻辑有什么问题。

def player_choice(board):  #this function asks for the players next position
    i= 0
    if full_board_check(board):
        print ("All the positions have been filled, the game is over")
        
    while i not in [1,2,3,4,5,6,7,8,9] or board[i]=='X' or board[i]=='Y':  
         i=input('Please choose a number')
    return i

与此相反,这被认为是正确的:

def player_choice(board):    
    position = 0    
    while poistion not in [1,2,3,4,5,6,7,8,9] or not space_check(board,position):
        position=int(input("Please choose a valid position"))
    return position
jjjwad0x

jjjwad0x1#

input返回一个字符串。2在第二段代码中你要转换成整数,所以没问题。

d8tt03nd

d8tt03nd2#

代码的一部分可能只接受整数作为输入,否则会抛出错误。在第二种情况下,您将字符串输入转换为整数,从而避免了这个问题。您可以通过将两个值都转换为与您正在使用的函数兼容的类型来解决这个问题。

相关问题