[英]TypeError: 'int' object is not callable In Python
Bit of a python noob and I'm required to add a regular expression in my code but can not get it to work :/ i have searched the error message on google and tried to figure out whats wrong but no luck so i figured next best thing to do would be to ask directly. python noob的一点,我需要在我的代码中添加一个正则表达式,但无法使其正常工作:/我已经在Google上搜索了错误消息,并试图找出问题所在,但是没有运气,所以我想出了下一个最好的方法要做的就是直接问。 Here is the code so far:
这是到目前为止的代码:
# 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
The code I'm struggling with in questions 我在问题中苦苦挣扎的代码
num = re.match("r\\d[0-9]{2}$", num())
num
is simply an interger, so num()
is invalid. num
只是一个整数,因此num()
无效。
Should be something like match = re.match("r\\d[0-9]{2}$", str(num))
应该类似于
match = re.match("r\\d[0-9]{2}$", str(num))
1) it should be match
right? 1)应该
match
吗?
2) re
is working on str
, so the argument passed should be str(num)
2)
re
正在对str
,因此传递的参数应为str(num)
Then the code should be fine and fun as well. 然后,代码也应该很好玩。 :)
:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.