01.
def
euro():
02.
# Gera 5 numeros
03.
num_sol
=
[]
04.
for
i
in
range(
5
):
05.
num
=
randint(
1
,
50
)
06.
while
num
in
num_sol:
07.
num
=
randint(
1
,
50
)
08.
num_sol.append(num)
09.
num_sol.sort()
10.
# Gera 2 estrelas
11.
est_sol
=
[]
12.
for
i
in
range(
2
):
13.
num
=
randint(
1
,
9
)
14.
while
num
in
est_sol:
15.
num
=
randint(
1
,
9
)
16.
est_sol.append(num)
17.
est_sol.sort()
18.
return
[num_sol, est_sol]
Se notarmos, a geração dos números e das estrelas obedece ao mesmo padrão. Daí a ideia que escrever um sub-programa de geração de números.
01.
def
ger_numeros(quantidade, inf, sup):
02.
num_sol
=
[]
03.
for
i
in
range(quantidade):
04.
num
=
randint(inf,sup)
05.
while
num
in
num_sol:
06.
num
=
randint(inf,sup)
07.
num_sol.append(num)
08.
num_sol.sort()
09.
return
num_sol
Feito isto podemos re-escrever o código.
1.
def
euromilhoes():
2.
# Gera 5 numeros
3.
num_sol
=
gera_numeros(
5
,
1
,
50
)
4.
# Gera 2 estrelas
5.
est_sol
=
gera_numeros(
2
,
1
,
9
)
6.
return
[num_sol, est_sol]
Note-se que a definição gera_numeros não está agarrada ao problema do euro milhões podendo ser usada em situações em que nos peçam uma lista de números inteiros, todos diferentes, entre certos limites.
Sem comentários:
Enviar um comentário