With the following snippet from a script:
Tile = SelectTile() int(Tile) TileY = Tile TileX = 0 #Temporary debug: print("type of tile is: ", type(Tile), "type of TileY is: ", type(TileY))
I expected the outcome to be:
type of tile is: <class 'int'> type of TileY is: <class 'int'>
but instead I get:
type of tile is: <class 'str'> type of TileY is: <class 'str'>
Does anyone know why this is happening and how I can fix it? In case you need it here is SelectTile
:
def SelectTile(): print("Select Tile to put "O" in:") print("") print(" 1 ॥ 2 ॥ 3 ") print("===॥===॥===") print(" 4 ॥ 5 ॥ 6 ") print("===॥===॥===") print(" 7 ॥ 8 ॥ 9 ") Tile = input() int(Tile) #if Tile != 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9: # print("Invalid Tile! Try again") # SelectTile() return Tile
Advertisement
Answer
You are not assigning the new int value to the original variable. Here’s a fix:
Tile = SelectTile() Tile = int(Tile) TileY = Tile TileX = 0 #Temporary debug: print("type of tile is: ", type(Tile), "type of TileY is: ", type(TileY))