前提・実現したいこと
higherlower gameをpython3.Xで作ろうとしているのですが、以下のエラーコードが出てきます。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "main.py", line 42, in <module> play_game() File "main.py", line 38, in play_game compare(person1, person2, answer) TypeError: 'str' object is not callable
該当のソースコード
Python
1from game_data import data 2import art 3import random 4from replit import clear 5 6SCORE = 0 7IS_GAME_OVER = False 8 9def random_person(compare_against): 10 random_user = random.choice(data) 11 user_name = random_user["name"] 12 user_followers = random_user["follower_count"] 13 user_description = random_user["description"] 14 user_country = random_user["country"] 15 print(f"{compare_against}: {user_name}, {user_description}, from {user_country}.") 16 return user_followers 17 18def compare(person1_compare, person2_compare, answer_compare): 19 global SCORE, IS_GAME_OVER 20 if person1_compare > person2_compare and answer_compare == "B": 21 IS_GAME_OVER = True 22 elif person1_compare < person2_compare and answer_compare == "A": 23 IS_GAME_OVER = True 24 else: 25 return SCORE + 1 26 27 28def play_game(): 29 global SCORE, IS_GAME_OVER 30 while not IS_GAME_OVER: 31 print(art.logo) 32 compare = "Compare A" 33 person1 = random_person(compare) 34 print(art.vs) 35 against = "Against B" 36 person2 = random_person(against) 37 answer = input("Who has more followers? Type 'A' or 'B': ") 38 compare(person1, person2, answer) 39 clear() 40 print(f"Sorry, That's wrong. Final score: {SCORE}") 41 42play_game()
試したこと
このエラーに関して
・strを変数として使用している
・関数名と変数名を同じにして使用している
ということをgoogleで見つけたため確認をしました
また、関数のパラメータを他の関数内で変数として使用していたため、両者を違う名にしました
補足情報(FW/ツールのバージョンなど)
atomでコーディングを行い、repl.itでテストを行っています
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。