Bottom Page

• 0 Vote(s) - 0 Average
• 1
• 2
• 3
• 4
• 5
 Type Error: bad operand type for unary +: 'str' Psypher1 Programmer named Tim Posts: 8 Threads: 3 Joined: Apr 2019 Reputation: 0 Likes received: 0 #1 Aug-12-2019, 04:00 AM Hello everyone, I'm making a dynamic Tic Tac Toe game, I need to get in the practice. I'm getting this type error and I am not sure how to resolve it. It came up when i modified the code to add a bit of color from lines 62 to 70. I'm assuming that's where the issue is import itertools from colorama import init, Fore, Back, Style init() def win(current_game): def all_same(l): if l.count(l[0]) == len(l) and l[0] != 0: return True else: return False # Horizontal for row in game: print(row) if all_same(row): print(f"Player {row[0]} is the winner horizontally!") return True # Diagonal diags = [] for col, row in enumerate(reversed(range(len(game)))): diags.append(game[row][col]) if all_same(diags): print(f"Player {diags[0]} is the winner diagonally (/)") return True diags = [] for ix in range(len(game)): diags.append(game[ix][ix]) if all_same(diags): print(f"Player {diags[0]} is the winner diagonally (\\)") return True # Vertical for col in range(len(game)): check = [] for row in game: check.append(row[col]) if all_same(check): print(f"Player {check[0]} is the winner vertically!") return True return False def game_board(game_map, player=0, row=0, column=0, just_display=False): try: if game_map[row][column] != 0: print("Position taken") return game_map, False print(" " + " ".join([str(i) for i in range(len(game_map))])) if not just_display: game_map[row][column] = player for count, row in enumerate(game_map): colored_row = "" for item in row: if item == 0: colored_row += " " elif item == 1: colored_row += Fore.GREEN + ' X ' + + Style.RESET_ALL elif item == 2: colored_row += Fore.MAGENTA + ' O ' + + Style.RESET_ALL print(count, colored_row) return game_map, True except IndexError as e: print("Error: Make sure you input row/column as 0 1 or 2?", e) return game_map, False except Exception as e: print("Big Whoopsie!", e) return game_map, False play = True players = [1, 2] while play: game_size = int(input("What size game do you want to play? ")) game = [[0 for i in range(game_size)] for i in range(game_size)] game_won = False game, _ = game_board(game, just_display=True) player_choice = itertools.cycle([1, 2]) while not game_won: current_player = next(player_choice) print(f"Current Player: {current_player}") played = False while not played: column_choice = int(input("What column do you want to play? (0, 1, 2) ")) row_choice = int(input("What row do you want to play? (0, 1, 2) ")) game, played = game_board(game, current_player, row_choice, column_choice) if win(game): game_won = True again = input("Thegame is over Do you want to play again? (y/n) ") if again.lower() == "y": print("restarting... ") elif again.lower() == "n": print("Au revoir!") play = False else: print("Not valid!") play = False Thank you ThomasL Minister of Silly Walks Posts: 361 Threads: 5 Joined: Jun 2019 Reputation: 64 Likes received: 84 #2 Aug-12-2019, 05:07 AM (Aug-12-2019, 04:00 AM)Psypher1 Wrote: I'm assuming that's where the issue is The error message gives you detailed information where and what is wrong. So when asking for help providing this error message is a vital thing to do. Without we can only guess that likely here elif item == 1: colored_row += Fore.GREEN + ' X ' + + Style.RESET_ALL elif item == 2: colored_row += Fore.MAGENTA + ' O ' + + Style.RESET_ALLyou need to convert the constants Fore. and Style.RESET_ALL into strings OR if these are strings than the error is due to the double + + in these lines. elif item == 1: colored_row += str(Fore.GREEN) + ' X ' + str(Style.RESET_ALL) elif item == 2: colored_row += str(Fore.MAGENTA) + ' O ' + str(Style.RESET_ALL) Psypher1 Programmer named Tim Posts: 8 Threads: 3 Joined: Apr 2019 Reputation: 0 Likes received: 0 #3 Aug-12-2019, 02:30 PM Okay, I'll remember to include the message next time. Thank you for the help « Next Oldest | Next Newest »

Top Page

 Possibly Related Threads... Thread Author Replies Views Last Post TypeError: 'type' object is not subscriptable Stef 1 212 Aug-28-2020, 03:01 PM Last Post: Gribouillis tmdbsimple content type? How to work with it? pythonnewbie138 1 197 Aug-01-2020, 08:18 PM Last Post: bowlofred Type coercion with Numpy arrays Mark17 2 213 Jul-24-2020, 02:04 AM Last Post: scidam isinstance() always return true for object type check Yoki91 2 268 Jul-22-2020, 06:52 PM Last Post: Yoki91 Type Error or Value Error? spalisetty06 3 225 Jul-21-2020, 04:56 AM Last Post: deanhystad ctypes and custom data type (structures, pointer to structures) python_user_n 0 261 Jul-08-2020, 05:52 PM Last Post: python_user_n SQLAlchemy with type hints gontajones 1 386 Jun-17-2020, 06:52 PM Last Post: gontajones check pandas variable type cools0607 3 304 Jun-12-2020, 09:28 AM Last Post: buran TypeError: unhashable type: 'set' Stager 1 327 Jun-08-2020, 04:11 PM Last Post: bowlofred TypeError: __repr__ returned non-string (type dict) shockwave 0 381 May-17-2020, 05:56 PM Last Post: shockwave

Forum Jump:

Users browsing this thread: 1 Guest(s)