给出此错误名称 'Translate_points' 是参数和全局的。计数器不工作。如何使函数工作的结果可供下一个函数读取?
import random
def V1_inputf1(Translate_points):
print(Translate_1,'рандомный глагол')
Infinitive_input=input("введите инфинитив ",)
if Infinitive_input==Infinitive[index_Translate]:
Translate_points += 1
return Translate_points
else:
Translate_points -= 1
return Translate_points
def V2_inputf1(Translate_points):
print(Translate_1,'рандомный глагол')
Past_Simple_input=input("Введите вторую форму ",)
global Translate_points
if Past_Simple_input==Past_Simple[index_Translate]:
Translate_points += 1
return Translate_points
else:
Translate_points -= 1
return Translate_points
def THE_END():
print("______________________________________________________________________________")
print("______________________________________________________________________________")
while Translate_points<15:
Translate = ['гнуть', 'строить', 'золотить', 'одалживать', 'отправлять', 'тратить', 'разгибаться']
Infinitive = ["bend", "build", "gild", "lend", "send", "spend", "unbend"] # Инфинитив
Past_Simple = ["bent", "built", "gilt", "lent", "sent", "spent", "unbent"] # Вторая форма
Participle_2 = ["bent", "built", "gilt", "lent", "sent", "spent", "unbent"] # Третья форма
Translate_1=random.choice(Translate)
print(Translate_1,'рандомный глагол')
index_Translate=Translate.index(Translate_1)
print(Infinitive[index_Translate],'-',Past_Simple[index_Translate],'-',Participle_2[index_Translate])
print(V1_inputf1(Translate_points))
print(V2_inputf1(Translate_points))
THE_END()
print(V2_inputf1(Translate_points))
print(V1_inputf1(Translate_points))
THE_END()
将所有函数定义
def移出代码。它们必须紧跟在import-s 之后,在执行代码之前。如果在代码中直接描述函数,则无法读取此类代码。更远。
Translate_points如果Translate_points在调用时已经将全局变量显式传递给函数,为什么还需要全局变量?删除它global Translate_points,你不需要它。唯一要做的就是获取函数返回的变量的修改值并将其放回该变量中。或多或少是这样的:
对于所有改变和返回的函数也是如此。