类型错误:';int';对象在Python中不可调用
有点像python noob,我需要在我的代码中添加一个正则表达式,但无法使其正常工作:/我在google上搜索了错误消息,试图找出错误,但运气不佳,所以我认为下一个最好的办法是直接询问。 以下是迄今为止的代码:类型错误:';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 = {
# 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?