Как повторить заданную мной функцию несколько раз?
import random
def repit_num():
num1=[1,2,3,4,5,6,7,8,9]
num2=[1,2,3,4,5,6,7,8,9]
a=random.choice(num1)
b=random.choice(num2)
print(a,'',b)
for repit_num() in range(11):
repit_num()
Ответы (5 шт):
Автор решения: Zhihar
→ Ссылка
два одинаковых способа (просто в 2 и 1 строку)
import random
def repit_num():
num1=[1,2,3,4,5,6,7,8,9]
num2=[1,2,3,4,5,6,7,8,9]
a=random.choice(num1)
b=random.choice(num2)
print(a,'',b)
# способ 1
for i in range(11):
repit_num()
# способ 2
[repit_num() for i in range(11)]
А если определить функцию как def repit_num(x), то можно и 3 способ использовать
import random
def repit_num(tmp):
num1=[1,2,3,4,5,6,7,8,9]
num2=[1,2,3,4,5,6,7,8,9]
a=random.choice(num1)
b=random.choice(num2)
print(a,'',b)
[*map(repit_num, range(11))]
но это изврат уже
Автор решения: MarianD
→ Ссылка
for __ in range(11):
repit_num()
Тем вызов функции повторяется 11 раз — для чисел 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 из range(11).
Так как эти числа самые не используются, принято не употреблять в цикле for обычное имя переменной, как например i или element, а специальное — один или 2 знака подчёркивания (_).
Автор решения: Владислав Харламов
→ Ссылка
Можно с помощью декораторов :)
from functools import update_wrapper
import random
def repeat_function(n):
def repeat_function_inner(f):
update_wrapper(repeat_function_inner, f)
def inner(*args, **kwargs):
for i in range(n):
f(*args, **kwargs)
return inner
return repeat_function_inner
@repeat_function(15)
def repit_num():
num1=[1,2,3,4,5,6,7,8,9]
num2=[1,2,3,4,5,6,7,8,9]
a=random.choice(num1)
b=random.choice(num2)
print(a,'',b)
repit_num()
Автор решения: Vlad
→ Ссылка
import random
def repit_num():
num1=[1,2,3,4,5,6,7,8,9]
num2=[1,2,3,4,5,6,7,8,9]
a=random.choice(num1)
b=random.choice(num2)
print(a,'',b)
exec("repit_num()\n" * 11)