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: 350 Threads: 4 Joined: Jun 2019 Reputation: 62 Likes received: 83 #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_ALL```you 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 Type hints and style MaxPowers 1 101 Feb-19-2020, 06:56 PM Last Post: micseydel AttributeError: type object 'FunctionNode' has no attribute '_TestValidateFuncLabel__ binhduonggttn 0 57 Feb-19-2020, 11:29 AM Last Post: binhduonggttn Python Type error! SamAnw 4 108 Feb-14-2020, 03:46 PM Last Post: buran TypeError: size; expecting a recognized type filling string dict a11_m11 0 112 Feb-10-2020, 08:26 AM Last Post: a11_m11 type of result of iter() Skaperen 12 562 Feb-07-2020, 07:23 PM Last Post: Skaperen TypeError: type str doesn't define __round__ method emmapaw24 7 270 Feb-03-2020, 08:38 PM Last Post: snippsat TypeError: can't multiply sequence by non-int of type 'str' emmapaw24 2 109 Feb-03-2020, 05:50 PM Last Post: michael1789 List items verification for Integer type vintysaw 4 178 Jan-17-2020, 01:56 PM Last Post: perfringo Type hinting - return type based on parameter micseydel 2 119 Jan-14-2020, 01:20 AM Last Post: micseydel how can i handle "expected a character " type error , when I input no character vivekagrey 2 153 Jan-05-2020, 11:50 AM Last Post: vivekagrey

Forum Jump:

Users browsing this thread: 1 Guest(s)