Informática, perguntado por chacha01, 6 meses atrás

)Escrever o código Python necessário para criar uma lista 1 com N valores randômicos no intervalo de 1 a 20, cujo valor de N esteja entre 10 a 15. Usando o método str(), criar uma lista 2, de strings, com os elementos da lista 1 que forem pares e maiores que 5. Criar uma tupla com os elementos da lista 2. Imprimir as duas listas e a tupla criada.
2)Escrever o código Python necessário para criar 2 tuplas, cada tupla com N elementos, com valores randômicos no intervalo de 10 a 30. Criar uma lista de tuplas, cada tuplacom 2 valores, um valor da tupla 1 e outro da tupla 2. Imprimir as tuplas e a lista de tuplas.

Soluções para a tarefa

Respondido por GeBEfte
1

Como os exercícios propõem um número N limitado a um intervalo de valores, as resoluções mostradas a seguir utilizarão uma função "entrada_valida()" para garantir que o valor N esteja compreendido na faixa de valores definida.

Para a obtenção de inteiros randômicos dentro das faixas de valores dadas, vamos utilizar a função randint() da biblioteca random.

Como ficaria muito extenso explicar linha a linha o que foi feito nos códigos, deixo aberto o espaço dos comentários para esclarecer qualquer ponto que tenha ficado confuso.

[Python 3.8]

1)

\sf from ~random ~import ~randint

\sf de f~ entrada\underline{~}valida():\\~~~~	while~ True:\\~~~~~~~~		try:\\~~~~~~~~~~~~			n~ =~ int(inpu t('Digite~ o~ valor~ de~ N:~ '))\\~~~~~~~~~~~~			if~ 10 ~< ~n ~<~ 15:\\~~~~~~~~~~~~~~~~				break\\~~~~~~~~~~~~			else:\\~~~~~~~~~~~~~~~~				print('Por~ favor,~ digite~ um~ valor~ inteiro~ entre~ 10~ e~ 15.\backslash n')\\~~~~~~~~		except:\\~~~~~~~~~~~~			print('Por~ favor,~ digite~ um~ valor~ inteiro~ entre~ 10~ e~ 15.\backslash n')\\~~~~	return~ n

\sf n~ =~ entrada\underline{~}valida()\\lista\underline{~}1~ =~ [randint(1,~20)~ for~ i~ in~ range(n)]\\lista\underline{~}2~ =~ [str(i)~ for~ i~ in~ lista\underline{~}1~ if~ i\%2==0~ and ~i>5]\\tupla\underline{~}1~ =~ tuple(lista\underline{~}2)\\print(lista\underline{~}1)\\print(lista\underline{~}2)\\print(tupla\underline{~}1)

2)

Obs.: Nesta, não fica claro se cada elemento da tupla que compõe a lista será tomado aleatoriamente ou se será seguida a ordem de inserção destes elementos nas tuplas criadas previamente. Considerarei que será respeitada a ordem, ou seja, a primeira tupla é formada pelo primeiro elemento da tupla_1 e pelo 1º elemento da tupla_2 e assim por diante.

\sf from ~random ~import ~randint

\sf de f~ entrada\underline{~}valida():\\~~~~	while~ True:\\~~~~~~~~		try:\\~~~~~~~~~~~~			n~ =~ int(inpu t('Digite~ o~ valor~ de~ N:~ '))\\~~~~~~~~~~~~			if~ 10 ~< ~n ~<~ 15:\\~~~~~~~~~~~~~~~~				break\\~~~~~~~~~~~~			else:\\~~~~~~~~~~~~~~~~				print('Por~ favor,~ digite~ um~ valor~ inteiro~ entre~ 10~ e~ 15.\backslash n')\\~~~~~~~~		except:\\~~~~~~~~~~~~			print('Por~ favor,~ digite~ um~ valor~ inteiro~ entre~ 10~ e~ 15.\backslash n')\\~~~~	return~ n

\sf n~ =~ entrada\underline{~}valida()\\lst\underline{~}aux~ =~ [randint(10,~30)~ for~ i~ in~ range(n)]\\tupla\underline{~}1~ =~ tuple(lst\underline{~}aux)\\lst\underline{~}aux~ =~ [randint(10,~30)~ for~ i~ in~ range(n)]\\tupla\underline{~}2~ =~ tuple(lst\underline{~}aux)\\lista~ =~ list()\\for~ i~ in~ range(n):\\~~~~	tupla~ =~ (tupla\underline{~}1[i],~ tupla\underline{~}2[i])\\~~~~	lista.append(tupla)\\print(tupla\underline{~}1)\\print(tupla\underline{~}2)\\print(lista)

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Perguntas interessantes