Вывод несколько раз рандомной внутренней функции, пока цикл не завершится
Нужно вывести несколько раз, случайную внутренную функцию из трех. Проблема заключается в том что выводит сперва все три, а потом рандомную. Внутри каждой имеется счетчик, для цикла, который обнуляется.
f1_1 = random.randint(-5100, -3100)
f1_2 = random.randint(-20, 100)
f1_3 = random.randint(0, 110)
count=0
def func_1(f1,f2,f3,count):
def func_1_1(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_1', f1_1)
count += 1
# print(count, 'счетчик')
return count
count = func_1_1(f1_1,f1_2,f1_3,count)
# print(count, 'после первой')
def func_1_2(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_2', f1_2)
count += 1
# print(count, 'счетчик')
return count
count = func_1_2(f1_1,f1_2,f1_3,count)
# print(count, 'после второй')
def func_1_3(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_3', f1_3)
count += 1
# print(count, 'счетчик')
return count
count = func_1_3(f1_1,f1_2,f1_3,count)
# print(count,'после третьей')
r = [func_1_1, func_1_2, func_1_3]
d=random.choice(r)(f1_1,f1_2,f1_3,count)
# print(count, 'счетчик')
return count
return d
print(d)
count=0
while count<6:
func_1(f1,f2,f3,count)
вот что получается на выходе если вызывать функцию без цикла
Внутренняя функция 1_1 -3230
Внутренняя функция 1_2 1
Внутренняя функция 1_3 90
Внутренняя функция 1_2 1
как выводить только случайную функцию, т.е 4 строчку? с циклом получается бесконечный вывод, т.к счетчик обнуляется
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
бррр
у вас внутри каждой функции print
и после описания каждой функции вы ее вызываете
count = func_1_1(f1_1,f1_2,f1_3,count)
конечно сначала у вас выводится результат работы 3х функций :)
def func_1(f1,f2,f3,count):
def func_1_1(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_1', f1_1)
count += 1
# print(count, 'счетчик')
return count
def func_1_2(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_2', f1_2)
count += 1
# print(count, 'счетчик')
return count
def func_1_3(f1_1,f1_2,f1_3,count):
print('Внутренняя функция 1_3', f1_3)
count += 1
# print(count, 'счетчик')
return count
r = [func_1_1, func_1_2, func_1_3]
d=random.choice(r)(f1_1,f1_2,f1_3,count)
return d