- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 8 meses atrás por IcaroFilho.
-
AutorPosts
-
-
20 de março de 2022 às 19:23 #89079Gabriel BorbaParticipante
Boa noite!
Por gentileza, uma dúvida: efetuei o exercício 74 de uma forma diferente de como fez o Guanabara…Embora tenha funcionado corretamente, não consegui utilizar os comandos de impressão que o Guanabara utilizou ao final do seu programa(me refiro em relação à logica de determinar qual o número maior e qual o número menor). Achei interessante, pois elimina várias linhas na lógica de programação em relação a esta determinação do maior e menor números…
Por gentileza, gostaria de saber por que o meu programa não funciona quando eu tento usar a mesma forma de impressão, utilizando os comandos “min” e “max”.
ERRO MOSTRADO QUANDO TENTO USAR OS COMANDOS “min” e “max” ao final do meu programa, sem alterar nada mais:
print(f’\nO maior valor é {max(numeros)}.’)
TypeError: ‘int’ object is not iterableSeria possível eliminar a lógica de “maior” e “menor” que eu utilizei, e, ao final, eu utilizar também os comandos “min” e “max” ?
MEU PROGRAMA:
from random import randint
print(‘O computador sorteou os valores: ‘, end=”)
for n in range(1, 6):
numeros = (randint(1,10))
print(numeros, end=’. ‘)
if n == 1:
maior = numeros
menor = numeros
else:
if numeros > maior:
maior = numeros
if numeros < menor:
menor = numeros
print(f’\nO maior valor é {maior}.’) # esta forma de comando funciona corretamente, mas com “{max(numeros)}” não.
print(f’O menor valor é {menor}.’) # esta forma de comando funciona corretamente, mas com “{min(numeros)}” não.PROGRAMA DO GUANABARA:
from random import randint
numeros = (randint(1, 10), randint(1, 10), randint(1, 10), randint(1, 10), randint(1, 10),)
print(‘O computador sorteou os valores:’,end=’ ‘)
for n in numeros:
print(f'{n}’, end=’. ‘)
print(f’\nO maior valor é {max(numeros)}.’)
print(f’O menor valor é {min(numeros)}.’) -
21 de março de 2022 às 08:52 #89090IcaroFilhoModerador
Bom dia Gabriel.
Os métodos max e min são utilizados em listas.
No seu código, está usando em números inteiros e ai da erro.
Caso queira utilizar os métodos max e min você pode fazer com que os numeros gerados randomicamente sejam adicionados a uma lista vazia ( por meio de um append, e exclua toda a logica de if ) e ao final poderá executar o min e max.Tente resolver e caso não consiga, só postar aqui novamente.
-
21 de março de 2022 às 10:07 #89123Gabriel BorbaParticipante
Bom dia, Ícaro!
Não lembro se já foi visto o que é um “append”. Não sei o que é. Mas quando usei o min e Max no meu código, eu apaguei os ifs. Mesmo assim não funcionou, e não entendi o porquê. Seria possível eu manter a minha estrutura/lógica de códigos (sem os ifs), e ainda assim fazer funcionar?
A questão é que quando desenvolvemos um código, com base naquilo que estamos aprendendo(fazendo sozinhos, em exercícios), nos focamos tanto, que fica um pouco difícil às vezes de entender qual a diferença fundamental entre o meu código e o código do professor. O que percebi, neste exercício, é que o Guanabara está trabalhando com a lógica da randomização fora do “for”, e eu usei a lógica da randomização dentro do laço “for”. Isto fez com que eu não precisasse copiar e colar 5 vezes o comando da randomização…
Mas, resumindo, não sei se esta é a diferença essencial que pode explicar o porquê meu código não roda com min e max, mesmo eu tendo removido as lógicas dos ifs.
Não sei se consegui me explicar…Aguardo teu retorno, se possível.
Obrigado -
21 de março de 2022 às 15:51 #89147IcaroFilhoModerador
Neste exercício ele simplesmente quis lhe mostrar 2 métodos utilizados em listas. o Min e o Max ,que facilitam o trabalho.
vc fez do modo que funciona por “de baixo dos panos”.
o max entra dentro da lista e checa, indice a indice os valores e retorna o maior deles. o mesmo acontece pro min, so q pro menor valor.
vc realizou este processo não mão ao checar elemento por elemento.o append é o método que adiciona um valor no final da lista. ex.:
minha_lista = [2,3] minha_lista.append(4) print(minhaLista) // [2,3,4]
o problema do seu código não é o IF. eu disse pra tirar pq se tornaria redundante / desnecessária a checagem.
Seu problema está no tipo de variável.
min e max só podem ser utilizados em variáveis do tipo lista e as suas variáveis são do tipo INT.-
21 de março de 2022 às 16:25 #89156IcaroFilhoModerador
from random import randint minha_lista= list() maior = menor = 0 print("O computador sorteou os valores: ", end='') for n in range(1, 6): numeros = (randint(1,10)) print(numeros, end=". ") minha_lista.append(numeros) print(f"\nO maior valor sorteado foi {max(minha_lista)}") print(f"O menor valor sorteado foi {min(minha_lista)}")
para usar seu laço for com o max / min seria assim …
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.