类型错误:';int';对象在Python中不可调用

类型错误:';int';对象在Python中不可调用,python,regex,Python,Regex,有点像python noob,我需要在我的代码中添加一个正则表达式,但无法使其正常工作:/我在google上搜索了错误消息,试图找出错误,但运气不佳,所以我认为下一个最好的办法是直接询问。 以下是迄今为止的代码: # allows us to access a random 'key' in the dictionary import random import re # Contains the question and it's correct answer my_dict = {

有点像python noob,我需要在我的代码中添加一个正则表达式,但无法使其正常工作:/我在google上搜索了错误消息,试图找出错误,但运气不佳,所以我认为下一个最好的办法是直接询问。 以下是迄今为止的代码:

# allows us to access a random 'key' in the dictionary
import random
import re

# Contains the question and it's correct answer
my_dict =   {
            "A form of Protectionism that imposes a tax on imports" : "tariff",
            "....is quantity of a good or service that consumers are willing and able to     buy at a given price in a given time period" : "Demand", 
            "....is the quantity of a good or service that a producer is willing and able   to supply onto the market at a given price in a given time period" : "Supply",
            "By using ..... businesses can bring down their average costs by producing on a larger scale" : "Economies of scale",
            "The cost of the next best alternative" : "Opportunity Cost",
            ".... is the transfer of assets from the public (government) sector to the private sector." : "Privatisation"
        }


# welcome message
print("Economics Revision App")
print("=======================")



# the quiz will end when this variable becomes 'False'
playing = True


# While the game is running
while playing == True:

    # set the score to 0
    score = 0

    # gets the number of questions the player wants to answer
    num = int(input("\nHow many questions would you like: "))
    num = re.match("r\d[0-9]{2}$", num())
    if match:
        print ('foo')

    # loop the correct number of times
    for i in range(num):

        # the question is one of the dictionary keys, picked at random
        question = (random.choice( list(my_dict.keys())))
        # the answer is the string mapped to the question key
        answer = my_dict[question]

        # print the question, along with the question number
        print("\nQuestion " + str(i+1) )
        print(question  + "?")

        # get the user's answer attempt
        guess = input("> ")

        # if their guess is the same as the answer
        if guess.lower() == answer.lower():
            # add 1 to the score and print a message
            print("Correct!")
            score += 1
        else:
            print("Incorrect guess again!")

    # after the quiz, print their final score  
    print("\nYour final score was " + str(score))

    # store the user's input...
    again = input("Enter any key to play again, or 'q' to quit.")

    #... and quit if they types 'q'
    if again.lower() == 'q':
        playing = False
我在问题中挣扎的代码

num=re.match(“r\d[0-9]{2}$”,num())

num
只是一个整数,因此
num()
无效

应该类似于
match=re.match(“r\d[0-9]{2}$”,str(num))

1) 应该是
匹配
对吗

2)
re
正在处理
str
,因此传递的参数应该是
str(num)


那么代码应该很好,也很有趣。:)

下一个最好的方法是查看stacktrace中的异常,以查看错误发生在哪一行。你认为
num()
num=re.match(“r\d[0-9]{2}$”,num())
行中的意思是什么?谢谢它接受整数,但现在它不会运行程序的循环?@user3080288它实际上在我的计算机上运行得很好。您是否遵循正确的缩进?考虑粘贴你的问题中的编辑代码并在修复bug之后运行它。现在IM获取,ValueError:用“10”:“G”的In()的无效文本,有什么想法?@ USER 308028?