【发布时间】:2023-03-10 17:33:01
【问题描述】:
这里是python初学者。我之前的编程经验是八十年代的basic,和专有系统中的逻辑编程,这对学习python没有多大帮助。所以,对于我的问题:
我正在编写一个数学测验程序(仅用于学习),并且我通过定义一个功能块制作了一个“主菜单”;在其中,如果输入为a,则调用另一个函数addition(),如果输入为s,则调用函数subtraction(),并按预期工作。在这些功能块中,我将一个全局变量 quiztype 设置为该函数的名称。然后我从其中调用另一个函数again(),以查询用户是否想要另一个相同类型的问题,如果是,我尝试使用quiztype () 返回相关函数,但TypeError: 'str' object is not callable 失败。
我确实找到了一些看似相关的主题,但由于我是初学者,要么无法实施答案,要么甚至不明白他们在说什么。
我有哪些选项可以返回到之前执行的函数?
这是代码:(注意变量名不是上面的 - 不同的语言)
from random import randint
def Alku ():
kysy = True
while kysy:
lasku = input('Yhteen, Vähennys, Lopeta? ')
if lasku == 'y':
Yhteenlasku ()
kysy = False
elif lasku == 'l':
break
kysy = False
def Uudestaan ():
kysy = True
while kysy:
samauudestaan = input('uudestaan? (k/e)? ')
if samauudestaan == 'k':
Lasku()
kysy = False
elif samauudestaan == 'e':
Alku ()
kysy = False
def Yhteenlasku ():
global Lasku
Lasku='Yhteenlasku'
n1=(randint(1,10))
n2=(randint(1,10))
a1=n1+n2
print(n1, end="")
print(" + ", end="")
print (n2, end="")
print(" = ", end="")
a2=int(input())
print()
if a1==a2:
print('oikein!')
elif a1!=a2:
print('väärin!')
Uudestaan()
Alku ()
以及终端返回的内容:
Traceback (most recent call last):
File "laskut2.py", line 43, in <module>
Alku ()
File "laskut2.py", line 8, in Alku
Yhteenlasku ()
File "laskut2.py", line 41, in Yhteenlasku
Uudestaan()
File "laskut2.py", line 19, in Uudestaan
Lasku()
TypeError: 'str' object is not callable
【问题讨论】:
-
你能把你的完整代码显示到它中断的地方吗? (粘贴并格式化到问题中)
-
请编辑您的问题并粘贴代码的相关部分以及完整的错误消息。
-
嗯,这肯定比只问代码的问题要好,但我们仍然需要代码来帮助你。
标签: python variables definition