无法修复" TypeError:' str'对象不可调用#34;在Python中

时间:2015-01-08 13:35:33

标签: python random

我需要帮助修复错误。这是我的代码:

import random
def game():
        capitals={"England":"London","France":"Paris","Belgiom":"Brussels",\
                  "Canada":"Ottawa","China":"Beijing","Cyprus":"Nicosia",\
                  "Cuba":"Havana","Egypt":"Cairo","Greece":"Athens",\
                  "Ireland":"Dublin","Italy":"Rome","a":"A","B":"B"}

    wrong=[]
    right=[]

    incorrect_answers = False

    while len(capitals)>0:
        pick = random.choice(list(capitals.keys()))
        correct_answer = capitals.get(pick)
        print ("What is the capital city of" + pick + "?")
        answer = input("Your answer: ")
        if answer.lower() == correct_answer.lower():
            print ("That's Correct!\n")
            del capitals[pick]
            right.append(pick)
        else:
            print ("That's Incorrect.\n")
            print ("The correct answer is" + correct_answer + "\n")
            wrong.append(pick)
            incorrect_answers = True
            del capitals[pick]


    print ("You got  ",len(right), "/", len(wrong))
    top = len(right)
    bottom = len(wrong)
    perc = float((top / bottom) * 100)
    print(perc)    

    if incorrect_answers:
        print ("Here are the ones that you may want to brush up on:\n")
        for each in wrong:
            print (each)
    else:
        print ("Perfect!")

def help():
        print("do you neeeded efhdufghaf dfgjn")

while True:
    input = input("what do you want to do? help or play?")
    if input == "help":
        help()
        break
    if input == "play":
        print("you want to play")
        game()
        break

1 个答案:

答案 0 :(得分:7)

你不应该这样做

input = input("what do you want to do? help or play?")

您正在使用您的变量隐藏函数input。将变量的名称更改为其他名称。