Obrigado por mais um vídeo, professor! É uma função simples, mas você adicionou vários detalhes legais na imlpementação... Até que eu que to "velho de guerra" aprendi com o vídeo hehehe
Dica aos alunos: Vocês podem colocar a variável maior = max(), que como já foi mostrado avalia todos os valores e mostra o maior entre eles, assim não precisa de usar ifs. Espero ter ajudado. Bom estudo a todos!!!
@@fabiorodrigues2644 Entendo cara. Terminei o curso ano passado e aprendi muito com ele. Mas quero dizer que nesse caso pra aprendizado é bom fazer com os ifs, mas na realidade quanto mais tempo e linha polpar melhor, mas a escolha é sua, apenas quis tentar ajudar. Bons estudos e foco, não desista real, pensei muitas vezes em desisti, mas perceverei e aqui estou apenas ampliando meus conhecimentos. Então Boa sorte e nunca pense que sabe tudo... sempre estamos em evolução...
@@fabiorodrigues2644 cara, quando vc ta escrevendo um cod grande, tu n vai ficar fazendo toda hora os ifs, o mais simples e que polpa bastante linha e o max()
Fiz de outra forma: def maior(*num): # Escrever vários parametros. mai = cont = 0 print(f'Entre os parametros {num}') # Esses parametros estão numa túplas. while cont < len(num): if num[cont] > mai: mai = num[cont] cont += 1 print(f'O maior é {mai}') maior(10, 3, 4, 1) maior(2000, 4, 5, 33, 535)
Consegui!!! 😁😁😁 04/03/23 EXERCICIO#99: def maior(*num): print('-=-' * 15) print('Analisando os valores passados...') cont = 0 for c in num: cont += 1 if cont > 0: m = max(num) else: m = 0 print(f'{num} Foram informados {cont} valores ao todo.') print(f'O maior valor informado foi {m}.') maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior()
Obrigado pelo curso é o melhor curso de Python disponível. Fiz o exercício um pouco diferente e obtive o mesmo resultado. Não criei a variável maior. Eu simplesmente usei o sorted para para deixar em ordem crescente e exibir o ultimo caractere, que no caso seria o maior. Não teria feito desta forma se não fosse todo o conteúdo do curso, que é sensacional. Vlw mestre Gafanhoto HAua...
Eu fiz um codigo envolvendo listas e um while true (aqui o numero limite vai ser 999): lista = list() def maior(*num): print(f'Maior numero da lista dos numeros citados: {max(lista)}') while True: num = int(input('Digite um valor: ')) if num == 999: break else: lista.append(num) maior(max(lista)) vlw pelo video professor!
Muito obrigado professor, suas aulas estão me ajudando muito! Já estou um pouco na frente em POO, mas sempre que sai aula nova venho acompanhar pois sei que terá algo novo para aprender com você. Abraço!
Guanabara tu é incrivel, to aqui próximo do fim do curso e já espero o 4(caso tenha) e não vejo a hora de voltar em todos os exercícios e fazer sem precisar de dicas, não to longe mas por enquanto vamo estudando:)
Minha contribuição: embuti os teste dele no código pra saber se tava tudo certo. def maior(* num): contador = maior = 0 for i in num: if i > maior: maior = i contador += 1 print(f'{i}', end=' ') print() if contador == 0: print('Não haviam números para serem analisados. ') else: print(f'Foram analisados {contador} números e o maior foi {maior}') print() maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior()
from time import sleep def maior(*num): cont = 0 mn = 0 print('='*45) print(f'Analizando os valores passados...') for c in num: print(f'{c}', end=' ') if c > mn: mn = c cont += 1 print(f'/ Foram informados {cont} valores ao todo.') print(f'E o maior número listado foi: {mn}') sleep(2) Essa foi a minha função, achei facil. Fiz toda direta testei varias vez e deu certo. fiz em menos de 5 minutos.
Fiz o meu "aproveitando" a função max já ensinada, segue abaixo o código: from time import sleep def maior(* num): cont = 0 for v in num: cont += 1 print('Analizando os valores passados...') sleep(1) print(f'{num} foram informados {cont} valores ao todo. ') print(f'O maior valor informado foi {max(num)}') maior(2, 1, 8, 4) maior(3, 5, 1)
Fiz diferente mas deu certo também. Obrigada professor :) def maior(* num): print('-+'*40) mai = 0 print(f'Foram digitados {len(num)} valores.') for n in num: print(f'Dos valores {num} o maior número digitado foi {max(num)}.') break print() maior(2, 9, 1, 0, 4, 7) maior(1, 4) maior(34, 5, 0, 8, 16) maior(6) maior()
Em exercícios que envolvem achar o maior, menor, soma...uso bastante as funções a meu favor, nesse caso foi necessário apenas adaptar o def pra quando nenhum parâmetro for inserido: from time import sleep def maior(* n): if n == (): print('- Parâmetros não informados.') else: for i in n: print(i, end=' ') sleep(0.5) print(f' - Foram imformados {len(n)} valores. ' f'O maior valor é o {max(n)}') print('-' * 30) maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior()
Tenho uma dica. Para não precisar usar um if para verificar se há ou não um valor informado, tem o parâmetro da função max() chamado "default=". O que você colocar nele será mostrado caso não tenha nenhum valor dentro da função max()
Tentei fazer uma "speedrun" para fazer esse exercício bem rápido kk. Vi que Guanabara não usou o max, mas aqui está uma solução com ela. from time import sleep def maior(*num): print('-='*25) print('Analisando os valores passados...') for c in range(0, len(num)): print(num[c], end=' ') sleep(0.3) print(f'Foram informados {len(num)} valores ao todo.') print(f'O maior valor encontrado foi {max(num)}.') maior(0) maior(1, 3, 6, 2, 10)
Seu programa retorna um erro quando não é adicionado nenhum valor, o Guanabara pediu para não retornar esse erro e sim, uma msg dizendo que nenhum valor foi adicionado
from time import sleep def maior(*valor): print('-=' * 30) print('Analisando os valores passados...') for v in valor: print(v, end=' ', flush=True) sleep(0.3) print(f'Foram informados {len(valor)} ao todo.') print(f'O maior valor informado foi {max(valor)}') if valor != () else print(f'O maior valor informado foi 0') maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior() @@Nypziin
Bom dia. Eu fiz diferente: no programa principal gerei um randomico inteiro de 0 a 10 para informar quantos numeros seriam enviados à função. Depois gerei novamente numeros aleatórios e fiz o append a uma lista. Então eu enviei esta lista a uma funçao para tratar os resultados.
Amei esse exercicio, usei listas para facilitar. Meu programa principal ficou só o chamado da def ksks def maior(): lista = list() up = 0 while True: n = int(input('Digite um número: ')) if n == 000: break else: lista.append(n) if n >= up: up = n else: up = up print(lista) print(f'Foram ao todo {len(lista)}') print(f'O maior valor é {up}') maior()
Fiz de uma forma um pouco simplificada. Utilizei a função len para realizar a contagem from time import sleep def maior(*valores): maior = 0 print('-=' * 30) print('Analisando valores passados..') for c in valores: print(f'{c}', end=" ", flush=True) sleep(1) if c > maior: maior = c print('') print(f'Foram informados {len(valores)} valores ao todo') print(f'O maior valor informado foi {maior}') maior(2, 9 , 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior()
Eu fiz primeiramente com o max(), depois fiz usando o for. Porém ao invés de usar um contador eu usei o enumerate pra comparar a posição e saber se era o primeiro valor inserido. Para o número de valores inseridos eu usei o len() mesmo.
Sacanagem, fiquei meia hora tentando resolver um bug que nem era bug kkkkkkkkkk amei o curso Guanabara fico feliz de estar e chegando ao final do curso, mas mto triste por estar acabando o curso
O comando Def salva os parametros em uma tupla, então da pra trabalhar direto com eles. O que eu queria fazer e não consegui era fazer um input para o usuario colocar os valores. def maior(*num): print(num) print(max(num)) print(sum(num)) print(maior(1,2,3,5,6,8,7,9,10,15))
Eu não usei contador, pois sei que ao empacotar ele gera uma tupla, então eu posso usar o método len(). Mas por outro lado tive que usar outra função for para analisar o maior.
Eu tinha esquecido que ao digitar *parâmetro ele pegava todos os valores. Ao invés disse fiz com uma lista e deu certo. Mas agora já aprendi pra próxima
Nesse usei o enumerate: from time import sleep def maior(* num): maximo = 0 print('-=' * 40) print(f'Analisando os valores passados...') for k, v in enumerate(num): print(v, end=' ') if k == 0: maximo = v else: if v > maximo: maximo = v sleep(0.5) print(f'Foram informados {len(num)} valores ao todo.') print(f'O maior valor inserido foi {maximo}') maior(5, 4, 7, 3, 1) maior(8, 9, 2, 7) maior(0, 6, 5) maior(10, 9) maior(1)
Eu estou utilizando o google colab, mas ele mostra algumas respostas(mesmo que incompletas) de alguns exercícios, e quando isso acontece eu faço algumas mudanças nele, por exemplo nesse, eu fiz esse mesmo programa, porém ele soma os 2 valores(mostrando o seu resultado) e fala qual deles é o maior
# Passei sufoco no ultimo exercício, mas esse foi bem de boa! from time import sleep def maior(*valores): print('-='*20) print('Analisando valores informados...') for valor in valores: print(valor, end=' ', flush=True) sleep(0.5) print(f'Foram informados {len(valores)} valores ao todo') if len(valores)
Dei uma implementada nesse exercicio onde o programa pergunta um numero de listas com numeros aleatorios que o usuario deseja ver, tambem mostra o maior e menor valor e tambem a soma dos valores de dentro da lista. from random import randint def lista(* val): alea = randint(3, 10) lista = [] for numeros in range(alea): num = randint(1, 100) lista.append(num) print(f'\33[:33m{lista}\33[m ') print(f'Ao total foram contados \33[4:33m{len(lista)}\33[m valores.') print(f' > O maior valor da lista foi \33[4:33m{max(lista)}\33[m.') print(f' > O menor valor da lista foi \33[4:33m{min(lista)}\33[m.') print(f' > A soma de todos os valores: \33[4:33m{sum(lista)}\33[m') print() # Programa principal print('\33[1:33m|------------------ GERADOR DE LISTAS -------------------|\33[m') listas = int(input('Quantas listas com números aleatórios você deseja criar? ')) for c in range(listas): print(f'\33[1:34m|------------- Lista N° {c+1} -------------|\33[m') print(lista()) print('\33[1:31m|----------- FIM DO PROGRAMA -----------|\33[m') Alguem saberia me dizer porque no final da analise aparece "None" ? 🙃
Ja entendi o uso desse empacotamento, mas até agr n vi um bom momento para usar. Já tô mt apegado no uso de lista e laço for 💀 quando chegar o tempo, eu saberei. Vou deixar meu código aê.
Fui dando append na lista, dps so peguei o max() dela def maior(lista): if len(lista) == 1 and 0 in lista: print(' Será que 0 existe mesmo...?!') elif len(lista) == 1: print(f' Foi digitado somente o número {max(lista)}. ' 'E o maior é ele mesmo!') else: print(' Números digitados:', end='') for n in lista: print(f' {n}', end='') print(f' O maior número digitado foi {max(lista)}!') numeros = list() indice = 1 adicionando = True while adicionando: try: numeros.append(int(input(f'Digite o {indice}º número: '))) while True: sn = input('Quer continuar? [S/N]: ').upper() if sn in ['S', 'N']: if sn == 'S': indice += 1 elif sn == 'N': adicionando = False break except ValueError: continue maior(numeros)
Forma mais simples que encontrei de fazer def maior(*x): print('=-'*30) print('Analisando os valores passados...') print(f'{x} Foram informados {len(x)} ao todo.') print(f'O maior valor informado foi {max(x)}') #Prog. maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior(0)
Cara eu me bati por horas achando que era algo mais complexo pra fazer... tentando colocar a quantidade de vezes que a mensagem aparece randomizada com a quantidade de números e os números todos randomizados...(não consegui e vim ver a resposta e não tinha nada a ver...) e era uma coisa simples...
E eu que fiz com while, fazendo o usuário colocar vários números e perguntando se quer continuar, pra isso usei listas. Ai chego aqui pra ver o exercício e uma das primeiras frases dele é: "sem usar listas nem nada." kkkkkkkkk gelei.
o meu ficou assim def maior(*num): if len(num) > 0: print(f'O maior de {num} é o {max(num)}.') else: print('Não foi informado nenhum valor!') maior(9, 2, 11, 5, 3) maior(4, 7, 1, 2) maior(1, 2, 3, 7, 3, 9, 5, 12) maior(6) maior(1, 2) maior()
O meu ficou bem parecido! from time import sleep def maior(* x): print('-=' * 30) print('Analisando os valores passados ...') for i in x: print(i, end=' ') sleep(0.5) print(f'Foram informados {len(x)} valores ao todo.') if len(x) > 0: print(f'O maior valor informado foi {max(x)}.') else: print(f'O maior valor informado foi {len(x)}.') maior(2, 9, 4, 5, 7, 1) maior(4, 7, 0) maior(1, 2) maior(6) maior()
from time import sleep def maior(*n): print('Analisando os valores passados:') print(f'Foram informados {len(n)} valores ao todo: ', end='') for c, k in enumerate(n): sleep(0.4) print(k, end='') if c < len(n) - 2: print(', ', end='') if c == len(n) - 2: print(' e ', end='') print('.') print(f'O maior número é o {max(n)}.') print('=' * 70) print('=' * 70) maior(5, 3, 5, 6, 7, 3, 1) maior(5, 3, 5, 100, 232)
Na minha opinião a função deveria ser mais flexível, se ela retornasse o maior número dos que foram passados ela poderia ser reaproveitada para mais situações, essa que você criou e a do Guanabara não dão para reaproveitar.
def maior(*arr): print(f"Foram informados {len(arr)} numeros") for numero in arr: print(numero, end=", ", flush=True) sleep(0.5) print() i = 0 maior = arr[0] while i < len(arr): if arr[i] > maior: maior=arr[i] i+=1 print(f"Maior numero é: {maior}")
import random def maior(): b = random.randint(1,5) j = 0 while j < b: c = random.randint(1,10) v = [0]*c for i in range (0,c): a = random.randint(1,100) v[i] = a print(v) print(max(v)) j+=1 maior()
Verdade amigo, de início, quando eu fiz o exercício sozinho eu fiz dessa maneira também, mas tipo, para quem está começando, apenas se criou uma função usando outra função que faz praticamente a mesma coisa, entende. Não usar o 'max', deixa a função mais original. Eu usei o 'max', depois pensei bem e usei as variáveis 'c' e 'maior' mesmo.
fiz assim sem o if e funcionou: def maior(* num): c = maior = 0 for n in num: if n > maior: maior = n c += 1 print(f'O maior numero foi {maior} e foram {c} numeros') maior(0,1,3,10,1)
Obrigado pelo curso magnifico! fiz com algumas modificações, gera-se uma lista com numeros aleatorios e com .len aleatorio tb... e ficou assim: import time import random lista = [] def maior(*num): lista = [] qtd = random.randint(0, 10) c = 0 while c
coloquei os valores numa lista e usei o sort() x = [] def maior(x): if x != []: x.sort() print(f"O maior valor é o valor {x[len(x)-1]}. ") else: print("Você não passou nenhum valor. ") maior(x = [y, y, y, y, y])
Eu sei que nao era esse o proposito, mas fiz assim na primeira vez: def imprimelinha(): print('-' * 30) def maior(): imprimelinha() cont = 0 numeros = [] while True: num = int(input('Digite um valor: ')) cont += 1 numeros.append(num) resp = str(input('Continuar S/N? ')).strip().upper()[0] while resp not in 'SN': resp = str(input('Continuar S/N? ')).strip().upper()[0] if resp == 'N': break print('Analisando os valores informados...') print(f'Foram informados {cont} valores:', end=' ') for v in numeros: print(f'{v}', end=' ') print(f' O maior valor informado foi {max(numeros)}') # Programa Principal maior() maior()
Achei o exercício MUITO tranquilo, então resolvi da uma aprimorada. No meu código coloquei que o usuário poderia digitar os números e decidir se quer continuar ou não: def maior(lst): print(40* '-') print(f'Foram digitados {len(lst)} números: {lst}') print(f'O maior valor digitado foi {max(lst)}') print(f'O menor valor digitado foi {min(lst)}') print(40*'-') continuar = ' ' valores = list() print('\033[1;33mValores menores que ZERO param o programa!') while True: valor = int(input('\033[1;97mDigite um valor: ')) if valor < 0: maior(valores) valores.clear() while True: continuar = str(input('\033[1;97mQuer continuar [S/N]? ')).strip().upper() if continuar == 'S' or continuar == 'N': break print('\033[1;31mRESPOSTA INVÁLIDA') valores.append(valor) if continuar == 'N': print('\033[1;33m=====>PROGRAMA ENCERRADO
não to entendo muito bem os exercicios de def, mas fiz dois, o primeiro usando random eo segundo acho que a maioria fez e acho que era o proposito da atividade: from random import randint def analise(): maior = menor = parar = 0 cont = [] while True: aleatorio = randint(0, 9) parar += 1 cont.clear() print('~' * 50) for i in range(0, aleatorio): print(i, end=' ', flush=True) cont.append(i) print(f'Foram informados {len(cont)} valores ao todo') for i in range(0, aleatorio): if i == 0: maior = menor = i else: if i > maior: maior = i if i < menor: menor = i print(f'O maior valor informado foi de {maior}') if parar == 3: break
analise() SEGUNDO EXERCICIO: def analise(*num): cont = [] print('~' * 10, 'ANALISANDO VALORES', '~' * 10) if len(num) == 0: print('NENHUM VALOR ENCONTRADO') else: for i in num: print(i, end=' ', flush=True) cont.append(i) print(f'Foram infomados {len(cont)} valores ao todo.') print(f'O maior valor informado foi {max(cont)}')
""" Exercício Python #099 - Função que descobre o maior - Faça um programa que tenha uma função chamada maior(), que receba vários parâmetros com valores inteiros. Seu programa tem que analisar todos os valores e dizer qual deles é o maior. """ # Biblioteca from time import sleep # Funções def maior(* numeros): print('=' * 50) print('Analisando os valores passados...') sleep(1.5) for n in numeros: print(f'{n}', end=' ') sleep(0.7) print(f'Foram informados {len(numeros)} valores ao todo') sleep(1.5) if len(numeros) != 0: print(f'O maior valor informado foi {max(numeros)}.') # Programa Principal maior(1, 2, 3, 4) maior(4, 2, 5, 9, 0) maior(0, 8, 3) maior(7, 6) maior()
Uma dica é... Na parte em que ele analisa se for o primeiro valor é igual o maior, não precisa nessa situação, só precisaria se ele quisesse o menor valor, já que é o maior não precisa. Na parte... De ter a variável " cont = 0 " também não precisa já que o python tem a função " len() " :D
@@sergiolacerda1135 também pensei nisso... Mas me deparei com um problema, se a função não tiver parâmetros dentro dela vai dar erro no caso: maior() Daria erro
De inicio fiz esse program aqui atendendo o solicitado: def linha(): print('-=' * 14) def maior(*num): mai = 0 print(f'Possui {len(num)} valores e A lista de numeros é:', end=' ') for v in num: print(v, end=' ') if mai < v: mai = v print() print(f'O maior numero da lista é {mai}') linha() maior(2, 3, 6, 2312, 45, 67) maior(3, 4, 7, 2, 11, 55)
E depois fiz esse segundo programa aleatorizando o tamanho da lista e os numeros q vão estar dentro dela: from random import randint # Trazendo o aleatorizador lista = list() # Lista pra colocar os numeros n = randint(4, 11) # Definindo no inicio do programa o valor q sera o tamanho da minha lista. def linha(): # Função de linha print('-=' * 14) def rand(): # Função q vai adicionar os valores aleatorios dentro da lista com limite estabelecido por n for c in range(0, n): r = randint(0, 100) lista.append(r) linha() def maior(num): # Função onde procura o maior valor dentro da minha lista estabelecida mai = 0 print(f'Possui {len(num)} valores A lista de numeros é:', end=' ') for v in num: # Verificação de maior valor dentre todos os da lista. print(v, end=' ') if mai < v: # checagem de verificação mai = v # atribuindo o maior valor print() print(f'O maior numero da lista é {mai}') linha() for c in range(0, n - 3): rand() maior(lista) lista.clear()
fiz usando while com um 11 linhas (desconsiderando a parte que decide os numeros) from time import sleep def analise(* numero): print('_'*30) print('analisando os valores...') pos = 0 while pos < len(numero): print(numero[pos],end=' ', flush=True) pos += 1 sleep(1) print(f' foram informados {len(numero)} valores ao todo. o maior valor informado foi {max(numero)}') print('_'*30) analise(2,3,1,4)
O meu ficou bem resumido usando o max e o return: def maior(* n): for valor in n: print(f'Ao todo foram informados {len(n)} valores') print(f'VALORES: {n}') return print(f'O maior valor foi {max(n)}')
Fiz assim: def maior(* num): print('-' * 60) if len(num) > 0: print(f'Os numeros informados foram:', end='') for n in num: print(f' {n}', end='') print(f'. Foram informados {len(num)} ao todo.') print(f'O maior valor informado foi {max(num)}.') else: print('A função não recebeu valores.')
Galera a ideia é recriar a função max() pq se fosse só pra usar max ele só pedia, dê um print detalhado da função max com os valores bonitinhos e cores no terminal. A ideia é exercitar a lógica para chegar nas funções que existem. Claro que na prática vamos optar pelos atalhos, mas é importante saber desenvolver isso.
Resolvi dessa maneira: from time import sleep def maior(* valores): print('-=' * 35) print('Analizando os valores passados...') for v in valores: print(v, end=' ', flush=True) sleep(0.5) print(f'Foram informados {len(valores)} ao todo.') if len(valores) == 0: maior = 0 else: maior = sorted(valores)[-1] print(f'O maior informado foi {maior}') maior(2,4,6,1,7,4) maior(9,2,4) maior(5,3,1,8) maior() maior(6,4)
fiz em 7 linhas def maior(*x): maiorn = contn = 0 for n in x: contn += 1 if contn == 0 or n > maiorn: maiorn = n print(f'Foram informados {contn} valores e o maior valor foi {maiorn}.')
o meu usei o max def valores(*n): print('='*40) print('Analizando os valores passados...') print(f'Os {len(n)} valores informados foram: {n}') print(f'O maior valor informado foi {max(n)}') valores(1,3,5) valores(7,9,4)
utilizando o comando max() da pra facilitar um pouco o exercício minha solução: from time import sleep def maior(*num): if num == (): lista = [0] else: lista = num[:] print('=' * 30) print("Analisando valores passados...") sleep(2) print(lista) print(f'Ao todo foram analizados {len(lista)} valores.') print(f'O maior valor digitado foi o {max(lista)}.')
Eu não sei porque ele é muita gente preferiu usar um else e depois um if sendo que é bem mais prático só usar o elif mesmo como eu usei aqui: def maior(*n): m = 0 print(' analisando valores...') for c in n: if m == 0: m = c elif c > m: m = c print(f' os valores {n} foram informados sendo ao todo {len(n)} valores o maior valor infornado foi {m}')
6 років тому+2
O meu programa ficou assim: def maior(*num): from time import sleep print('-=' * 30) print('Analisando os valores passados...') for n in num: print(n, end=' ') sleep(0.3) print(f'Foram informados {len(num)} valores ao todo.') maior = max(num) print(f'O maior valor informado foi {maior}.') Utilizei as funções embutida max() e len() do python para verificar o maior e a quantidade de valores.
usando hack amigo kkkkkkkkkk e esse max() aí? kkkkkkkkk zuei...ta massa no começo fiz assi depois mudei uma vez que o proposito do exercicio é justamente "fazer" essa função "max()" só que pra gente se chama "maior()"
6 років тому
@@leosmi1 Show... eu fiz primeiro fazendo com maior() e depois quis simplificar....
Se eu colocar maior() sem passar argumentos que nem o exemplo do vídeo, dá erro: O num vira uma tupla e neste exemplo ela fica vazia. É preciso um if adicional caso o len(num) for igual a 0...
6 років тому+1
@@DaniloSoarex Tem razão... Dei mole não testei sem passar nenhum argumento... vlw
def maior(*num): maior = 0 for c, i in enumerate(num): if c == 0: maior = i elif maior < i: maior = i print(maior) maior(1, -1, 34, 21) maior(6, -1, 4, 1, 7, 3, 2)
eu preferi que o usuário digitasse os valores e decide-se quando parar, então coloquei tudo dentro de uma lista e exibir o maior valor digitado pelo usuário usando a função max()
def maior(*numero): maior = 0 print('Dentre os valores: ') for n in numero: if n > maior: maior = n print(n, end=' - ') print('') print('O maior valor é: {}'.format(maior)) maior(10, 15, 20, 2, 1)
ef maior(*num): maior = 0 print('Analizando os valores passados ...') for i in num: print(f'{i}', end=' ') if i > maior: maior = i print(f'Foram informados {len(num)} valores ao todo.') print(f'O maior valor informado foi {maior}')
from time import sleep def maior(*n): print('Analisando os valores passados:') if len(n) > 0: print(f'Foram informados {len(n)} valores ao todo: ', end='') for c, k in enumerate(n): sleep(0.4) print(k, end='') if c < len(n) - 2: print(', ', end='') if c == len(n) - 2: print(' e ', end='') print('.') print(f'O maior número é o {max(n)}.') else: print(f'Nenhum valor foi informado.') print('=' * 70) print('=' * 70) maior(5, 3, 5, 6, 7, 3, 1) maior(5, 3, 5, 100, 232) maior()
Essa foi a forma que consegui fazer: from time import sleep def maior(* num): print('Analisando os valores passados...') sleep(2) mai = 0 tam = len(num) for c in num: print(c, end=' ', flush=True) sleep(0.5) print(end='') print(f'Ao total, {tam} valores.') for x in num: if x > mai: mai = x print(f'O maior valor informado foi {mai}.') print('~' * 60)
Estude pelo nosso site e tire certificado de 40 horas. Curso completo em:
www.cursoemvideo.com/curso/python-3-mundo-3/
Obrigado por mais um vídeo, professor! É uma função simples, mas você adicionou vários detalhes legais na imlpementação... Até que eu que to "velho de guerra" aprendi com o vídeo hehehe
Incrível ver você por aqui :p
caramba que legal vc aqui, mostra que mesmo quando chegarmos la ainda temos muito para aprender
teus video sao mo daora kk
Dica aos alunos:
Vocês podem colocar a variável maior = max(), que como já foi mostrado avalia todos os valores e mostra o maior entre eles, assim não precisa de usar ifs.
Espero ter ajudado. Bom estudo a todos!!!
mas assim nao tem graca
@@fabiorodrigues2644 Entendo cara. Terminei o curso ano passado e aprendi muito com ele. Mas quero dizer que nesse caso pra aprendizado é bom fazer com os ifs, mas na realidade quanto mais tempo e linha polpar melhor, mas a escolha é sua, apenas quis tentar ajudar. Bons estudos e foco, não desista real, pensei muitas vezes em desisti, mas perceverei e aqui estou apenas ampliando meus conhecimentos. Então Boa sorte e nunca pense que sabe tudo... sempre estamos em evolução...
@@fabiorodrigues2644 cara, quando vc ta escrevendo um cod grande, tu n vai ficar fazendo toda hora os ifs, o mais simples e que polpa bastante linha e o max()
Mas dá erro no ultimo campo vazio maior(), fico me perguntando se tem com tratar
Sim, mas pra ficar mais difícil eu fiz do outro jeito
Muito bom! É muito gratificante ver a nossa evolução com o passar das aulas.
Fiz de outra forma:
def maior(*num): # Escrever vários parametros.
mai = cont = 0
print(f'Entre os parametros {num}') # Esses parametros estão numa túplas.
while cont < len(num):
if num[cont] > mai:
mai = num[cont]
cont += 1
print(f'O maior é {mai}')
maior(10, 3, 4, 1)
maior(2000, 4, 5, 33, 535)
Consegui!!! 😁😁😁 04/03/23
EXERCICIO#99:
def maior(*num):
print('-=-' * 15)
print('Analisando os valores passados...')
cont = 0
for c in num:
cont += 1
if cont > 0:
m = max(num)
else:
m = 0
print(f'{num} Foram informados {cont} valores ao todo.')
print(f'O maior valor informado foi {m}.')
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
Excelente vídeo parabéns
def maior(*num):
maior = num[0]
i = 1
while i < len(num):
if num[i] > maior:
maior = num[i]
i += 1
return maior
print(maior(5, 230, 30, 4, 5, 50, 60))
Guanabara, obrigado por suas aulas, elas são excelentes, muito obrigado.
Obrigado pelo curso é o melhor curso de Python disponível.
Fiz o exercício um pouco diferente e obtive o mesmo resultado.
Não criei a variável maior. Eu simplesmente usei o sorted para para deixar em ordem crescente e exibir o ultimo caractere, que no caso seria o maior.
Não teria feito desta forma se não fosse todo o conteúdo do curso, que é sensacional.
Vlw mestre Gafanhoto HAua...
Fiz em menos de cinco minutos sem fila. Muito Bom! Dá pra ignorar os primeiros zeros e ler a partir do terceiro, igual no exemplo 4, 7, 0. =_)
Descompactação com dicionário é bem legal também. Tem uma função chamada zip ()
nao sabia disso
Eu fiz um codigo envolvendo listas e um while true (aqui o numero limite vai ser 999):
lista = list()
def maior(*num):
print(f'Maior numero da lista dos numeros citados: {max(lista)}')
while True:
num = int(input('Digite um valor: '))
if num == 999:
break
else:
lista.append(num)
maior(max(lista))
vlw pelo video professor!
Muito obrigado professor, suas aulas estão me ajudando muito! Já estou um pouco na frente em POO, mas sempre que sai aula nova venho acompanhar pois sei que terá algo novo para aprender com você. Abraço!
Guanabara tu é incrivel, to aqui próximo do fim do curso e já espero o 4(caso tenha) e não vejo a hora de voltar em todos os exercícios e fazer sem precisar de dicas, não to longe mas por enquanto vamo estudando:)
eae, qual foi a sua evolução?
Minha contribuição: embuti os teste dele no código pra saber se tava tudo certo.
def maior(* num):
contador = maior = 0
for i in num:
if i > maior:
maior = i
contador += 1
print(f'{i}', end=' ')
print()
if contador == 0:
print('Não haviam números para serem analisados. ')
else:
print(f'Foram analisados {contador} números e o maior foi {maior}')
print()
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
Fiz assim:
def maior(*lst):
lst.sort()
print(lst[-1])
Transcendeu hahaha
esperto
uma aula simplesmente de mais, mandou muito bem...
Ansioso para aulas de desenvolvimento de telas para o usuário
from time import sleep
def maior(*num):
cont = 0
mn = 0
print('='*45)
print(f'Analizando os valores passados...')
for c in num:
print(f'{c}', end=' ')
if c > mn:
mn = c
cont += 1
print(f'/ Foram informados {cont} valores ao todo.')
print(f'E o maior número listado foi: {mn}')
sleep(2)
Essa foi a minha função, achei facil. Fiz toda direta testei varias vez e deu certo. fiz em menos de 5 minutos.
Fiz o meu "aproveitando" a função max já ensinada, segue abaixo o código:
from time import sleep
def maior(* num):
cont = 0
for v in num:
cont += 1
print('Analizando os valores passados...')
sleep(1)
print(f'{num} foram informados {cont} valores ao todo. ')
print(f'O maior valor informado foi {max(num)}')
maior(2, 1, 8, 4)
maior(3, 5, 1)
Guanabara você é sensacional.
Obrigado!
Fiz diferente mas deu certo também. Obrigada professor :)
def maior(* num):
print('-+'*40)
mai = 0
print(f'Foram digitados {len(num)} valores.')
for n in num:
print(f'Dos valores {num} o maior número digitado foi {max(num)}.')
break
print()
maior(2, 9, 1, 0, 4, 7)
maior(1, 4)
maior(34, 5, 0, 8, 16)
maior(6)
maior()
Em exercícios que envolvem achar o maior, menor, soma...uso bastante as funções a meu favor, nesse caso foi necessário apenas adaptar o def pra quando nenhum parâmetro for inserido:
from time import sleep
def maior(* n):
if n == ():
print('- Parâmetros não informados.')
else:
for i in n:
print(i, end=' ')
sleep(0.5)
print(f'
- Foram imformados {len(n)} valores.
'
f'O maior valor é o {max(n)}')
print('-' * 30)
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
Tenho uma dica. Para não precisar usar um if para verificar se há ou não um valor informado, tem o parâmetro da função max() chamado "default=". O que você colocar nele será mostrado caso não tenha nenhum valor dentro da função max()
Tentei fazer uma "speedrun" para fazer esse exercício bem rápido kk.
Vi que Guanabara não usou o max, mas aqui está uma solução com ela.
from time import sleep
def maior(*num):
print('-='*25)
print('Analisando os valores passados...')
for c in range(0, len(num)):
print(num[c], end=' ')
sleep(0.3)
print(f'Foram informados {len(num)} valores ao todo.')
print(f'O maior valor encontrado foi {max(num)}.')
maior(0)
maior(1, 3, 6, 2, 10)
Seu programa retorna um erro quando não é adicionado nenhum valor, o Guanabara pediu para não retornar esse erro e sim, uma msg dizendo que nenhum valor foi adicionado
@@Nypziin verdade
from time import sleep
def maior(*valor):
print('-=' * 30)
print('Analisando os valores passados...')
for v in valor:
print(v, end=' ', flush=True)
sleep(0.3)
print(f'Foram informados {len(valor)} ao todo.')
print(f'O maior valor informado foi {max(valor)}') if valor != () else print(f'O maior valor informado foi 0')
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
@@Nypziin
@@waltterX1944 que cara bom!!!
@@pablodeveloper isso ai já faz tanto tempo q nem lembro do que eu tava falando kkkk
Bom dia.
Eu fiz diferente: no programa principal gerei um randomico inteiro de 0 a 10 para informar quantos numeros seriam enviados à função. Depois gerei novamente numeros aleatórios e fiz o append a uma lista. Então eu enviei esta lista a uma funçao para tratar os resultados.
Aqui utilizei a função max() e funcionou.
Amei esse exercicio, usei listas para facilitar. Meu programa principal ficou só o chamado da def ksks
def maior():
lista = list()
up = 0
while True:
n = int(input('Digite um número: '))
if n == 000:
break
else:
lista.append(n)
if n >= up:
up = n
else:
up = up
print(lista)
print(f'Foram ao todo {len(lista)}')
print(f'O maior valor é {up}')
maior()
Show de bola, professor. Parabéns pelo curso. Quando teremos a prova do mundo 2? Um abraço.
Eu não consegui fazer a do mundo 1, procurei e procurei no site do curso em vídeo, mas não achei nada :(
def maior(*valores):
print(f'Foram informados {len(valores)} valores.')
print(f'Dentre os valores {valores}, {max(valores)} é o maior valor.')
print('-' * 50)
maior(5,4,6,9,8)
maior(4,5,1)
maior(8,17,26,51)
maior(0)
Mano a ideia era justamente recriar a função max() pq antes dela existir você tinha que fazer assim entedeu?
Mas e se maior não receber parâmetro nenhum, o que acontece?
@@mastermon1985 erro kkkkkkkk
Consegui fazendo bem simples utilizando a def que ja vem direto do python "max"
def maior(*num:int):
print(max(num))
maior(1,2,6,3,100,83,19,983)
Fiz de uma forma um pouco simplificada. Utilizei a função len para realizar a contagem
from time import sleep
def maior(*valores):
maior = 0
print('-=' * 30)
print('Analisando valores passados..')
for c in valores:
print(f'{c}', end=" ", flush=True)
sleep(1)
if c > maior:
maior = c
print('')
print(f'Foram informados {len(valores)} valores ao todo')
print(f'O maior valor informado foi {maior}')
maior(2, 9 , 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
Guanabara faz uma aula sobre pandas 🐼 numpy por favor!
Eu fiz primeiramente com o max(), depois fiz usando o for. Porém ao invés de usar um contador eu usei o enumerate pra comparar a posição e saber se era o primeiro valor inserido. Para o número de valores inseridos eu usei o len() mesmo.
Bom vídeo. 😄
Sempre top, obrigado. PT aqui ✌
Sacanagem, fiquei meia hora tentando resolver um bug que nem era bug kkkkkkkkkk amei o curso Guanabara fico feliz de estar e chegando ao final do curso, mas mto triste por estar acabando o curso
parabéns.
O comando Def salva os parametros em uma tupla, então da pra trabalhar direto com eles. O que eu queria fazer e não consegui era fazer um input para o usuario colocar os valores.
def maior(*num):
print(num)
print(max(num))
print(sum(num))
print(maior(1,2,3,5,6,8,7,9,10,15))
Eu não usei contador, pois sei que ao empacotar ele gera uma tupla, então eu posso usar o método len(). Mas por outro lado tive que usar outra função for para analisar o maior.
Eu tinha esquecido que ao digitar *parâmetro ele pegava todos os valores. Ao invés disse fiz com uma lista e deu certo. Mas agora já aprendi pra próxima
Nesse usei o enumerate:
from time import sleep
def maior(* num):
maximo = 0
print('-=' * 40)
print(f'Analisando os valores passados...')
for k, v in enumerate(num):
print(v, end=' ')
if k == 0:
maximo = v
else:
if v > maximo:
maximo = v
sleep(0.5)
print(f'Foram informados {len(num)} valores ao todo.')
print(f'O maior valor inserido foi {maximo}')
maior(5, 4, 7, 3, 1)
maior(8, 9, 2, 7)
maior(0, 6, 5)
maior(10, 9)
maior(1)
utilizei a função max():
def maior(*num):
print('Analisando os valores passados...')
c = len(num)
print(f'{num}. Foram informado {c} valores ao todo.')
print(f'O maior valor informado foi {max(num)}')
maior(4, 5, 6, 7, 4)
maior(2, 2, 1, 7, 5, 3, 4)
maior(5, 4, 9)
eu usei o sorted(num) e depois peguei o num[-1]
consegui de boas
Eu estou utilizando o google colab, mas ele mostra algumas respostas(mesmo que incompletas) de alguns exercícios, e quando isso acontece eu faço algumas mudanças nele, por exemplo nesse, eu fiz esse mesmo programa, porém ele soma os 2 valores(mostrando o seu resultado) e fala qual deles é o maior
Obrigado, tio Gu!
dificuldade média. Parabéns!!
# Passei sufoco no ultimo exercício, mas esse foi bem de boa!
from time import sleep
def maior(*valores):
print('-='*20)
print('Analisando valores informados...')
for valor in valores:
print(valor, end=' ', flush=True)
sleep(0.5)
print(f'Foram informados {len(valores)} valores ao todo')
if len(valores)
topppppppppp d+ manda mais video
Muito bom!
Dei uma implementada nesse exercicio onde o programa pergunta um numero de listas com numeros aleatorios que o usuario deseja ver, tambem mostra o maior e menor valor e tambem a soma dos valores de dentro da lista.
from random import randint
def lista(* val):
alea = randint(3, 10)
lista = []
for numeros in range(alea):
num = randint(1, 100)
lista.append(num)
print(f'\33[:33m{lista}\33[m
')
print(f'Ao total foram contados \33[4:33m{len(lista)}\33[m valores.')
print(f' > O maior valor da lista foi \33[4:33m{max(lista)}\33[m.')
print(f' > O menor valor da lista foi \33[4:33m{min(lista)}\33[m.')
print(f' > A soma de todos os valores: \33[4:33m{sum(lista)}\33[m')
print()
# Programa principal
print('\33[1:33m|------------------ GERADOR DE LISTAS -------------------|\33[m')
listas = int(input('Quantas listas com números aleatórios você deseja criar?
'))
for c in range(listas):
print(f'\33[1:34m|------------- Lista N° {c+1} -------------|\33[m')
print(lista())
print('\33[1:31m|----------- FIM DO PROGRAMA -----------|\33[m')
Alguem saberia me dizer porque no final da analise aparece "None" ? 🙃
Ja entendi o uso desse empacotamento, mas até agr n vi um bom momento para usar. Já tô mt apegado no uso de lista e laço for 💀 quando chegar o tempo, eu saberei.
Vou deixar meu código aê.
Fui dando append na lista, dps so peguei o max() dela
def maior(lista):
if len(lista) == 1 and 0 in lista:
print('
Será que 0 existe mesmo...?!')
elif len(lista) == 1:
print(f'
Foi digitado somente o número {max(lista)}.
'
'E o maior é ele mesmo!')
else:
print('
Números digitados:', end='')
for n in lista:
print(f' {n}', end='')
print(f'
O maior número digitado foi {max(lista)}!')
numeros = list()
indice = 1
adicionando = True
while adicionando:
try:
numeros.append(int(input(f'Digite o {indice}º número: ')))
while True:
sn = input('Quer continuar? [S/N]: ').upper()
if sn in ['S', 'N']:
if sn == 'S':
indice += 1
elif sn == 'N':
adicionando = False
break
except ValueError:
continue
maior(numeros)
Próximo é o 100 hein mano
Forma mais simples que encontrei de fazer
def maior(*x):
print('=-'*30)
print('Analisando os valores passados...')
print(f'{x} Foram informados {len(x)} ao todo.')
print(f'O maior valor informado foi {max(x)}')
#Prog.
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior(0)
Fiz dessa forma também... você ainda estuda python?
eu sai do python, me identifiquei mais com javascript pq envolve sistemas web, mas o pytohn foi util pra eu aprender lógica@@youngnype8343
Cara eu me bati por horas achando que era algo mais complexo pra fazer... tentando colocar a quantidade de vezes que a mensagem aparece randomizada com a quantidade de números e os números todos randomizados...(não consegui e vim ver a resposta e não tinha nada a ver...) e era uma coisa simples...
E eu que fiz com while, fazendo o usuário colocar vários números e perguntando se quer continuar, pra isso usei listas.
Ai chego aqui pra ver o exercício e uma das primeiras frases dele é: "sem usar listas nem nada."
kkkkkkkkk gelei.
O problema dessa solução são os números negativos (que também são inteiros). Então usei a função max(lista) que resolveu.
o meu ficou assim
def maior(*num):
if len(num) > 0:
print(f'O maior de {num} é o {max(num)}.')
else:
print('Não foi informado nenhum valor!')
maior(9, 2, 11, 5, 3)
maior(4, 7, 1, 2)
maior(1, 2, 3, 7, 3, 9, 5, 12)
maior(6)
maior(1, 2)
maior()
O meu ficou bem parecido!
from time import sleep
def maior(* x):
print('-=' * 30)
print('Analisando os valores passados ...')
for i in x:
print(i, end=' ')
sleep(0.5)
print(f'Foram informados {len(x)} valores ao todo.')
if len(x) > 0:
print(f'O maior valor informado foi {max(x)}.')
else:
print(f'O maior valor informado foi {len(x)}.')
maior(2, 9, 4, 5, 7, 1)
maior(4, 7, 0)
maior(1, 2)
maior(6)
maior()
esse trecho : ' if len(num) > 0: ' me salvou aqui kkkkkkkk
from time import sleep
def maior(*n):
print('Analisando os valores passados:')
print(f'Foram informados {len(n)} valores ao todo: ', end='')
for c, k in enumerate(n):
sleep(0.4)
print(k, end='')
if c < len(n) - 2:
print(', ', end='')
if c == len(n) - 2:
print(' e ', end='')
print('.')
print(f'O maior número é o {max(n)}.')
print('=' * 70)
print('=' * 70)
maior(5, 3, 5, 6, 7, 3, 1)
maior(5, 3, 5, 100, 232)
Na minha opinião a função deveria ser mais flexível, se ela retornasse o maior número dos que foram passados ela poderia ser reaproveitada para mais situações, essa que você criou e a do Guanabara não dão para reaproveitar.
@@aupaca e no meu código além de mostrar o maior número ele o adiciona numa lista para me permitir usar depois
def maior(*arr):
print(f"Foram informados {len(arr)} numeros")
for numero in arr:
print(numero, end=", ", flush=True)
sleep(0.5)
print()
i = 0
maior = arr[0]
while i < len(arr):
if arr[i] > maior:
maior=arr[i]
i+=1
print(f"Maior numero é: {maior}")
maior(0, 3, 7, 13, 44777, 3)
esse eu não soube fazer, então resolvi olhar a resolução hehe
import random
def maior():
b = random.randint(1,5)
j = 0
while j < b:
c = random.randint(1,10)
v = [0]*c
for i in range (0,c):
a = random.randint(1,100)
v[i] = a
print(v)
print(max(v))
j+=1
maior()
Como o * devolve uma tupla, usei a função max(num) pra não precisar usar as variáveis cont e maior.
Verdade amigo, de início, quando eu fiz o exercício sozinho eu fiz dessa maneira também, mas tipo, para quem está começando, apenas se criou uma função usando outra função que faz praticamente a mesma coisa, entende. Não usar o 'max', deixa a função mais original. Eu usei o 'max', depois pensei bem e usei as variáveis 'c' e 'maior' mesmo.
fiz assim sem o if e funcionou:
def maior(* num):
c = maior = 0
for n in num:
if n > maior:
maior = n
c += 1
print(f'O maior numero foi {maior} e foram {c} numeros')
maior(0,1,3,10,1)
Obrigado pelo curso magnifico!
fiz com algumas modificações, gera-se uma lista com numeros aleatorios e com .len aleatorio tb...
e ficou assim:
import time
import random
lista = []
def maior(*num):
lista = []
qtd = random.randint(0, 10)
c = 0
while c
E aí Guanabara, se eu fizesse com maior(int(input('Digite seus valores: ' ))) vai funcionar mesmo?
Vish, eu resolvi usando a função max() hahahahahaha
Mas aprender a resolução do Guanabara é essencial!
coloquei os valores numa lista e usei o sort()
x = []
def maior(x):
if x != []:
x.sort()
print(f"O maior valor é o valor {x[len(x)-1]}. ")
else:
print("Você não passou nenhum valor. ")
maior(x = [y, y, y, y, y])
Eu sei que nao era esse o proposito, mas fiz assim na primeira vez:
def imprimelinha():
print('-' * 30)
def maior():
imprimelinha()
cont = 0
numeros = []
while True:
num = int(input('Digite um valor: '))
cont += 1
numeros.append(num)
resp = str(input('Continuar S/N? ')).strip().upper()[0]
while resp not in 'SN':
resp = str(input('Continuar S/N? ')).strip().upper()[0]
if resp == 'N':
break
print('Analisando os valores informados...')
print(f'Foram informados {cont} valores:', end=' ')
for v in numeros:
print(f'{v}', end=' ')
print(f'
O maior valor informado foi {max(numeros)}')
# Programa Principal
maior()
maior()
Obrigado, aprendi algo a mais com teu código
Achei o exercício MUITO tranquilo, então resolvi da uma aprimorada. No meu código coloquei que o usuário poderia digitar os números e decidir se quer continuar ou não:
def maior(lst):
print(40* '-')
print(f'Foram digitados {len(lst)} números: {lst}')
print(f'O maior valor digitado foi {max(lst)}')
print(f'O menor valor digitado foi {min(lst)}')
print(40*'-')
continuar = ' '
valores = list()
print('\033[1;33mValores menores que ZERO param o programa!')
while True:
valor = int(input('\033[1;97mDigite um valor: '))
if valor < 0:
maior(valores)
valores.clear()
while True:
continuar = str(input('\033[1;97mQuer continuar [S/N]? ')).strip().upper()
if continuar == 'S' or continuar == 'N':
break
print('\033[1;31mRESPOSTA INVÁLIDA')
valores.append(valor)
if continuar == 'N':
print('\033[1;33m=====>PROGRAMA ENCERRADO
def maior(* valroes):
c = 0
for v in valroes:
if v > c:
c = v
print(f'Maior valor passado -> {c}', end=' ')
maior(10,
30,
40,
50,
21,
44
)
não to entendo muito bem os exercicios de def, mas fiz dois, o primeiro usando random eo segundo acho que a maioria fez e acho que era o proposito da atividade:
from random import randint
def analise():
maior = menor = parar = 0
cont = []
while True:
aleatorio = randint(0, 9)
parar += 1
cont.clear()
print('~' * 50)
for i in range(0, aleatorio):
print(i, end=' ', flush=True)
cont.append(i)
print(f'Foram informados {len(cont)} valores ao todo')
for i in range(0, aleatorio):
if i == 0:
maior = menor = i
else:
if i > maior:
maior = i
if i < menor:
menor = i
print(f'O maior valor informado foi de {maior}')
if parar == 3:
break
analise()
SEGUNDO EXERCICIO:
def analise(*num):
cont = []
print('~' * 10, 'ANALISANDO VALORES', '~' * 10)
if len(num) == 0:
print('NENHUM VALOR ENCONTRADO')
else:
for i in num:
print(i, end=' ', flush=True)
cont.append(i)
print(f'Foram infomados {len(cont)} valores ao todo.')
print(f'O maior valor informado foi {max(cont)}')
analise(1, 4, 5)
analise(0, 5)
analise(4,)
analise(10, 5, 2, 4, 99)
analise()
Usei um if assim:
def maior(*num):
for c in num:
if c is num[0]:
maior = c
elif c > maior:
maior = c
print(maior)
""" Exercício Python #099 - Função que descobre o maior
- Faça um programa que tenha uma função chamada maior(), que receba vários parâmetros com valores inteiros.
Seu programa tem que analisar todos os valores e dizer qual deles é o maior. """
# Biblioteca
from time import sleep
# Funções
def maior(* numeros):
print('=' * 50)
print('Analisando os valores passados...')
sleep(1.5)
for n in numeros:
print(f'{n}', end=' ')
sleep(0.7)
print(f'Foram informados {len(numeros)} valores ao todo')
sleep(1.5)
if len(numeros) != 0:
print(f'O maior valor informado foi {max(numeros)}.')
# Programa Principal
maior(1, 2, 3, 4)
maior(4, 2, 5, 9, 0)
maior(0, 8, 3)
maior(7, 6)
maior()
Uma dica é...
Na parte em que ele analisa se for o primeiro valor é igual o maior, não precisa nessa situação, só precisaria se ele quisesse o menor valor, já que é o maior não precisa.
Na parte...
De ter a variável " cont = 0 " também não precisa já que o python tem a função " len() " :D
usei a função max(num) pra pegar o maior número.
@@sergiolacerda1135 também pensei nisso... Mas me deparei com um problema, se a função não tiver parâmetros dentro dela vai dar erro no caso:
maior()
Daria erro
Só faz o tratamento caso ela venha vazia.
@@sergiolacerda1135 mas aí já vai ter perdido o propósito do max() que é diminuir o código
De inicio fiz esse program aqui atendendo o solicitado:
def linha():
print('-=' * 14)
def maior(*num):
mai = 0
print(f'Possui {len(num)} valores e
A lista de numeros é:', end=' ')
for v in num:
print(v, end=' ')
if mai < v:
mai = v
print()
print(f'O maior numero da lista é {mai}')
linha()
maior(2, 3, 6, 2312, 45, 67)
maior(3, 4, 7, 2, 11, 55)
E depois fiz esse segundo programa aleatorizando o tamanho da lista e os numeros q vão estar dentro dela:
from random import randint # Trazendo o aleatorizador
lista = list() # Lista pra colocar os numeros
n = randint(4, 11) # Definindo no inicio do programa o valor q sera o tamanho da minha lista.
def linha(): # Função de linha
print('-=' * 14)
def rand(): # Função q vai adicionar os valores aleatorios dentro da lista com limite estabelecido por n
for c in range(0, n):
r = randint(0, 100)
lista.append(r)
linha()
def maior(num): # Função onde procura o maior valor dentro da minha lista estabelecida
mai = 0
print(f'Possui {len(num)} valores
A lista de numeros é:', end=' ')
for v in num: # Verificação de maior valor dentre todos os da lista.
print(v, end=' ')
if mai < v: # checagem de verificação
mai = v # atribuindo o maior valor
print()
print(f'O maior numero da lista é {mai}')
linha()
for c in range(0, n - 3):
rand()
maior(lista)
lista.clear()
Existe uma função chamada max(), pega o maior calor da tupla ou lista.
fiz usando while com um 11 linhas (desconsiderando a parte que decide os numeros)
from time import sleep
def analise(* numero):
print('_'*30)
print('analisando os valores...')
pos = 0
while pos < len(numero):
print(numero[pos],end=' ', flush=True)
pos += 1
sleep(1)
print(f' foram informados {len(numero)} valores ao todo.
o maior valor informado foi {max(numero)}')
print('_'*30)
analise(2,3,1,4)
eu achei mais prático usar o =max() pois é mais objetivo. Não é errado fazer os IF's mas creio que é uma solução mais trabalhosa.
O meu ficou bem resumido usando o max e o return:
def maior(* n):
for valor in n:
print(f'Ao todo foram informados {len(n)} valores')
print(f'VALORES: {n}')
return print(f'O maior valor foi {max(n)}')
maior(10,9,4,6,2,0)
Oooiii Guanabara :D, queria saber quais são seus planos, em questão de tamanho desse curso python, pretende fazer em quantos mundos?.
Guilherme Matos Passarini entendi... Vlw 👊 e que sou novo no canal hehe
Fiz assim:
def maior(* num):
print('-' * 60)
if len(num) > 0:
print(f'Os numeros informados foram:', end='')
for n in num:
print(f' {n}', end='')
print(f'. Foram informados {len(num)} ao todo.')
print(f'O maior valor informado foi {max(num)}.')
else:
print('A função não recebeu valores.')
Galera a ideia é recriar a função max() pq se fosse só pra usar max ele só pedia, dê um print detalhado da função max com os valores bonitinhos e cores no terminal. A ideia é exercitar a lógica para chegar nas funções que existem. Claro que na prática vamos optar pelos atalhos, mas é importante saber desenvolver isso.
Sim tem razão. Porém se usar o max(), quando for testada a chamada maior() vai dar erra, pois a mesma estará vazia.
Mt bom
Resolvi dessa maneira:
from time import sleep
def maior(* valores):
print('-=' * 35)
print('Analizando os valores passados...')
for v in valores:
print(v, end=' ', flush=True)
sleep(0.5)
print(f'Foram informados {len(valores)} ao todo.')
if len(valores) == 0:
maior = 0
else:
maior = sorted(valores)[-1]
print(f'O maior informado foi {maior}')
maior(2,4,6,1,7,4)
maior(9,2,4)
maior(5,3,1,8)
maior()
maior(6,4)
Aqui, acusa que num (no código idêntico ao seu) é uma tupla. como resolvo?
fiz usando o max(), mas agora que cheguei no vídeo da resolução me dei conta de que o objetivo era justamente recriar o max() 😅
fiz em 7 linhas
def maior(*x):
maiorn = contn = 0
for n in x:
contn += 1
if contn == 0 or n > maiorn:
maiorn = n
print(f'Foram informados {contn} valores e o maior valor foi {maiorn}.')
o meu usei o max
def valores(*n):
print('='*40)
print('Analizando os valores passados...')
print(f'Os {len(n)} valores informados foram: {n}')
print(f'O maior valor informado foi {max(n)}')
valores(1,3,5)
valores(7,9,4)
utilizando o comando max() da pra facilitar um pouco o exercício
minha solução:
from time import sleep
def maior(*num):
if num == ():
lista = [0]
else:
lista = num[:]
print('=' * 30)
print("Analisando valores passados...")
sleep(2)
print(lista)
print(f'Ao todo foram analizados {len(lista)} valores.')
print(f'O maior valor digitado foi o {max(lista)}.')
Eu não sei porque ele é muita gente preferiu usar um else e depois um if sendo que é bem mais prático só usar o elif mesmo como eu usei aqui:
def maior(*n):
m = 0
print(' analisando valores...')
for c in n:
if m == 0:
m = c
elif c > m:
m = c
print(f' os valores {n} foram informados
sendo ao todo {len(n)} valores
o maior valor infornado foi {m}')
O meu programa ficou assim:
def maior(*num):
from time import sleep
print('-=' * 30)
print('Analisando os valores passados...')
for n in num:
print(n, end=' ')
sleep(0.3)
print(f'Foram informados {len(num)} valores ao todo.')
maior = max(num)
print(f'O maior valor informado foi {maior}.')
Utilizei as funções embutida max() e len() do python para verificar o maior e a quantidade de valores.
Ficou bom
usando hack amigo kkkkkkkkkk e esse max() aí? kkkkkkkkk zuei...ta massa no começo fiz assi depois mudei uma vez que o proposito do exercicio é justamente "fazer" essa função "max()" só que pra gente se chama "maior()"
@@leosmi1 Show... eu fiz primeiro fazendo com maior() e depois quis simplificar....
Se eu colocar maior() sem passar argumentos que nem o exemplo do vídeo, dá erro:
O num vira uma tupla e neste exemplo ela fica vazia. É preciso um if adicional caso o len(num) for igual a 0...
@@DaniloSoarex Tem razão... Dei mole não testei sem passar nenhum argumento... vlw
def maior(*num):
maior = 0
for c, i in enumerate(num):
if c == 0:
maior = i
elif maior < i:
maior = i
print(maior)
maior(1, -1, 34, 21)
maior(6, -1, 4, 1, 7, 3, 2)
eu preferi que o usuário digitasse os valores e decide-se quando parar, então coloquei tudo dentro de uma lista e exibir o maior valor digitado pelo usuário usando a função max()
def maior(*numero):
maior = 0
print('Dentre os valores: ')
for n in numero:
if n > maior:
maior = n
print(n, end=' - ')
print('')
print('O maior valor é: {}'.format(maior))
maior(10, 15, 20, 2, 1)
eu tinha implementado lista e input, vou colocar aqui
def maior(lst):
print(f'o maior valor entre {lst} é {max(lst)}')
lista = list()
while True:
n = int(input('Digite um numero [0 pra parar]:'))
lista.append(n)
if n == 0:
break
maior(lista)
ef maior(*num):
maior = 0
print('Analizando os valores passados ...')
for i in num:
print(f'{i}', end=' ')
if i > maior:
maior = i
print(f'Foram informados {len(num)} valores ao todo.')
print(f'O maior valor informado foi {maior}')
from time import sleep
def maior(*n):
print('Analisando os valores passados:')
if len(n) > 0:
print(f'Foram informados {len(n)} valores ao todo: ', end='')
for c, k in enumerate(n):
sleep(0.4)
print(k, end='')
if c < len(n) - 2:
print(', ', end='')
if c == len(n) - 2:
print(' e ', end='')
print('.')
print(f'O maior número é o {max(n)}.')
else:
print(f'Nenhum valor foi informado.')
print('=' * 70)
print('=' * 70)
maior(5, 3, 5, 6, 7, 3, 1)
maior(5, 3, 5, 100, 232)
maior()
não entendi o flush, meu PyCharme é a ultima versão 2021. Não precisei usar esse trem ai não e funcionou normalmente
Caro Gustavo, alguma explicação para o "fim" do curso de Hardware?
Essa foi a forma que consegui fazer:
from time import sleep
def maior(* num):
print('Analisando os valores passados...')
sleep(2)
mai = 0
tam = len(num)
for c in num:
print(c, end=' ', flush=True)
sleep(0.5)
print(end='')
print(f'Ao total, {tam} valores.')
for x in num:
if x > mai:
mai = x
print(f'O maior valor informado foi {mai}.')
print('~' * 60)
def maior(* num):
print(f'O maior numero dos parametros {num} é {max(num)}')
maior(6,5,9)
muito facil
Para o caso de não ter nenhum valor informado pode-se usar o "if not in locals()".
if num not in locals():
print('Nenhum número informado.')
else:
...