Estou assistindo pelo site, mas por algum motivo quando tento passar do exercício 22 para o 23, não me deixa avançar, mesmo marcando concluído. Como proceder?
A sacada de usar a divisão inteira e depois só o resto da divisão é incrível. De verdade, MUITO difícil de pensar para um marinheiro de primeira viagem.
@@potter404 cara, eu ainda nem cheguei a ver nenhum conteudo de if, mas so de ver seu script deu pra eu entender mt coisa, e concordo q é impossivel pensar no resultado resolvido pelo guanabara lkkkkkkkk
@@juliodonofreo vai chorar se te forçarem a usar o cérebro um pouco? Passou a vida inteira ganhando tudo mastigado! Tenta dessa vez, pelo menos dessa vez na sua vida, queimar um pouco a cabeça antes de ir chorando nos comentários falar que não conseguiu!
Pra quem achou a explicação complicada: Veja os exemplos abaixo. Divisão: 1234 / 10 = 123,4 Divisão inteira: 1234 //10 = 123 Módulo: 1234 % 10 = 4 Pra ele descobrir a centena ele faz isso: Faz a divisão inteira por 100: 1234 // 100 = 12 Depois pega o resultado e dividi por 10, mas pega só o resto dessa divisão (que é o módulo): 12 % 10 = 2 Ou seja, a centena é 2. Espero ter ajudado, demorei para entender tbm ^^
agora entendi valeu... tentei usar um pensamento com um numero menor. ficou mais ou menos assim. 790 / 1 = 790 dps 790 / 10 = 79,0 então o 0 é o resto... unidade é igual a 0. 790 / 10 = 79,0 dps 79,0 / 10 = 7,9 então o 9 é o resto ... dezena é igual a 9. 790 / 100 = 7,9 dps 7,9/ 10 = 0,7 então o 7 é o resto ... centena é igual a 7. esse foi um raciocínio que me ajudou a entender a situação.
eu tbm não sei matemática, então fiz pura e simplesmente com o código abaixo: (eu sei que escrevi muuuito mais que ele, mas fazer o que, é mt difícil pra mim raciocinar com matemática..) n = input('Digite um número: ') if len(n) == 1: print('unidade = ',n[0]) if len(n) == 2: print('unidade = ', n[1]) print('dezena = ', n[0]) if len(n) == 3: print('unidade = ', n[2]) print('dezena = ', n[1]) print('centena = ', n[0]) if len(n) == 4: print('unidade = ', n[3]) print('dezena = ', n[2]) print('centena = ', n[1]) print('milhar = ', n[0])
Fiquei quebrando a cabeça atoa achando que era um exercício relacionado a manipulação de string, mas esse ai fugiu completamente do contexto, ai é foda...
2015 eu fazia o curso de logica de programação nesse canal e hoje em 2022 faço curso de ciencia da computação no IF. Cara agradeço muito esse canal por me proporcionar uma base boa em algorítimos.
Eu: n = input('Informe um número: ') print(f'Unidade: {len(n)}') print(f'Dezena: {n[0:1]}') print(f'Centena: {n[1:2]}') print(f'Milhar: {n[2:3]}') Coloquei o 3234, tá porra funcionou deixa eu testar o 23 agora ... puta merda
@@snnSam7 tbm dava, mas daí vc tinha que pesquisar um pouco, o jeito que consegui foi assim numero = input('Digite um número de 0 a 9999: ') unidade = numero.replace(numero, numero[-1]) dezena = numero.replace(numero, numero[-2]) milhar = numero.replace(numero, numero[-3]) milhao = numero.replace(numero, numero[-4]) print(f'Unidade: {unidade}') print(f'Dezena: {dezena}') print(f'Milhar: {milhar}') print(f'Milhão: {milhao}') quando vc usa o "-", o python faz a contagem de traz pra frente
Eu fiz Porem do "jeitinho" brasileiro n = int(input('Digite um número entre 0 e 9999: ')) n2 = str(int(10000 + n)) print('O número {} possui, {} milhares.'.format(n, n2[1])) print('O número {} possui, {} centenas. '.format(n, n2[2])) print('O número {} possui, {} dezenas. '.format(n, n2[3])) print('O número {} possui, {} unidades.'.format(n, n2[4]))
n = int(input('Digite um número entre 0 e 9999: ')) n2 = str(int(10000 + n)) print('{} milhares.'.format(n2[1])) print('{} centenas. '.format(n2[2])) print('{} dezenas. '.format(n2[3])) print('{} unidades.'.format(n2[4]))
explicado por si tudo fica mais facil só acho que há aqueles que já sabem programar e ficam exibindo os seus códigos cheios de if e else nós estamos aqui porque precisamos aprender valeu mais uma vez a explicação foi facil obrigado GUANABARA
E qual o problema do cara postar uma solução melhor? Não fique com a bundinha doída por existirem modos melhores de se fazer algo que você não conhece mas sim aprenda com eles.
@@rcfaell oi mano, também não manjo e to aprendendo mas eu acho que é a contagem dos caracteres, do 0 ao 7, '9999.99' tem 6 caracteres mas ai tem que contar um a mais pra ficar certinho
@@rcfaell é a nova formatacao do python, em vez de colocar .format no fim, se voce colocar um f' antes já dá certo, tipo teste = int(input('Digite um número: ')) print(f'{teste}') sou ruim explicando, mas espero que tenha entendido.
Minha dica é: faça os cálculos manuais p visualizar melhor. Usando o exemplo das unidades: u = num // 1 % 10 supondo num = 1934. 1934//1 = 1934 Esse ‘%’ tá indicando que vamos pegar esse resultado da divisão inteira (o próprio 1934, dividir por 10 e *usar* o valor da resposta como output). 1934 % 10 = 4 Funcionou assim pra mim e talvez minha dúvida seja a sua. Espero ter ajudado de alguma forma. :)
Não consegui encontrar a resposta sozinho, confesso que matemátca era um desafio que nao dei conta na época de ensino fundamental e médio. Porém, quando Guanabara trouxe a fórmula consegui entender como funciona a regra. Didático demais, me lembra um bom programa do Marcelo Tas, na TV Cultura. Obrigado à todos dessa equipe, todos mesmo, quem colocou a energia nesse projeto merece um mundo de oportunidades. Obrigado, mestre Guanabara. Tu é sensacional, um paizão.
Eu fiz usando str também, no caso eu tive que adicionar os '0' a esquerda no número pra funcionar num=('{:0>4}'.format(x)) Sendo x o número digitado e 4 é a quantidade de dígitos que deseja, Daí vai completar os 4 digitos com '0'(s).
Direto de 2022, se você está estudando, não desista!!! Fiquei quase 1 semana matutando o código desse exercício, mas acredite a sensação de conseguir é única! Você pode não conseguir hoje, mas se persistir amanha você olhará para trás e verá o quão simples esse exercício parece agora. FOCO, por que somos o futuro da programação! Essa foi minha resolução: num = int(input('Digite um numero: ')) n = num + 10000 nn = str(n) print(f'A unidade é: {nn[-1]}') print(f'A dezena é: {nn[-2]}') print(f'A centena é: {nn[-3]}') print(f'O milhar é: {nn[1]}')
Essa explicação fez muito mais sentido, era o que eu havia pensado em fazer. usar str ao inves de int e pela ordem crescente dos caracteres, cortar dezena, centana e milhar. A explicação dele é coisa de maluco de matemática, qual o sentido de dar esse exercício.... talvez num futuro entenda, mas agora vendo a sua explicação fez sentido, a dele, nenhum. obrigado
Esse curso alem de me ensinar programação está fazendo eu aprender e lembrar de coisas da matematica que eu nem lembrava.. Professor obrigado de todo coração por esse curso incrivel!
É muito boa a prática de dar nomes mais explicativos para as nossas variáveis, por exemplo matrícula_do_aluno, ao invés de apenas mat. Isso ajuda muito quando precisamos revisar, estudar ou alterar o código. Fica a dica. As vezes a preguiça ou a vontade de ganhar tempo acaba nos prejudicando lá na frente.
Façam as contas no caderno. Só depois que fiz umas 3 vezes que entendi o que ele explicou sobre o resto da divisão indicar a unidade, dezena, centena e milhar.
Galera, pra ficar mais claro: o símbolo // faz a divisão e só pega o que esta antes da vírgula. o símbolo % faz a divisão e só pega o que esta depois da vírgula.
Até comecei a pensar algo parecido com a solução do Guanabara, pois não queria usar outros conhecimentos além dos ensinados. Mas a porra dos 'ifs' ficavam martelando meu juízo: 'usa if, usa if, usa if' kkkkk. Aí falhei.
@@Enzoerb numero = str(input("Digite um numero de 1 a 9999: ")) print("A casa do milhar vale:, ", numero[0]) print("A casa da centena vale: ", numero[1]) print("A casa da dezena vale: ", numero[2]) print("A casa da unidade vale: ", numero[3]) Tão pequeno, tão compacto. rsrs gosto da simplicidade. kkkkk
@@fernandorafael9560 Mas se o usuário digitar 1 ou 23, 333 vai dar erro. Mas se colocar um .zfill(4) no final da line 1, sucesso total amigo (pesquisei na net esse comando). Tinha feito dessa forma que você fez, ai pensei nos usuários inteligentes que colocam números a mais (que no caso do exercício não teremos problemas) ou número a menos.
Tenho 14 anos e me interesso por programação desde os 9 anos, eu completei esse curso ano passado mas fiquei 1 ano sem estudar e cá estou eu de novo, reassistindo para relembrar de tudo e resolvendo todos exercicios de novo, e me trazendo um conhecimento maior do que eu tinha antes, muito obrigado por esse curso Guanabara! Fiz duas resoluções pro exercicio, essa do video e outra utilizando o if e o elif, sei como usar pq ja tinha visto o curso inteiro anteriormente.
Eu fiz de um jeito que parece não ser o mais correto mas funcionou kkkk. Vou anotar a opção do prof tbm n1 = input('Digite um número de 0 a 9999: ') n2 = '000' + n1 print(f'unidade: {n2[-1]} dezena: {n2[-2]} centena: {n2[-3]} milhar: {n2[-4]}')
num = input('Digite um número natural qualquer: ') print('Analisando o número {}...'.format(num)) print('Unidade: {}'.format(num[len(num)-1])) print('Dezena: {}'.format(num[len(num)-2])) print('Centena {}'.format(num[len(num)-3])) print('Milhar {}'.format(num[len(num)-4]))
Fiz de um jeito mais extenso, mas pra mim, mais simples de entender. Porém usei a estrutura condicional if/else, que ele só vai explicar mais pra frente, mas acabei pesquisando pra poder usar. No meu caso, também não usei o .format porque não é mais necessária na versão do pycharm que estou usando. Só preciso colocar a letra f antes da string e colocar as variáveis dentro dos colchetes. Lá vai: numero = str(input('Digite um número entre 0 e 9999: ')) quant = len(numero) print(f'Analisando o número {numero}:') if quant == 1: print (f'Unidade: {numero}') elif quant == 2: print (f'Unidade: {(numero[1])}') print (f'Dezena: {(numero[0])}') elif quant == 3: print (f'Unidade: {(numero[2])}') print (f'Dezena: {numero [1]}') print (f'Centena: {numero[0]}') elif quant == 4: print (f'Unidade: {(numero[3])}') print (f'Dezena: {(numero[2])}') print (f'Centena: {(numero[1])}') print (f'Milhar: {numero[0]}') ____________________________ Espero ter ajudado!
nesse exercicio em relação aos outros eu n tive nenhuma dificuldade, to me sentindo feliz pq foi um avanço de 2 semanas de esforço. Muito obg Guanabara :)
Eu fiz assim numero = f'{input("Digite um número entre 0 e 9999: ").strip():0>4}' print(f'Unidade: {numero[3]} ' f'Dezena: {numero[2]} ' f'Centena: {numero[1]} ' f'Milhar: {numero[0]}') Na primeira linha eu completo com "0" s pra que o número posto todas as vezes tenha 4 digitos Depois, escrevo somente o número da quarta posição, dps da terceira, segunda, primeira E fim do exercício Fiquei mt orgulhoso dessa solução :) E além disso, foi nesse exercício que minha cabeça deu um "click", entendendo um pouco do que ele disse sobre o python ser "orientado a objetos", aquilo que eu pensei que era só uma formatação do print, na vdd era tbm um objeto que eu poderia usar pra outras coisas
// equivale a uma divisão total , no caso deixando apenas a parte inteira. Ex:19//2 = 9 , pois essa é a parte inteira. % equivale ao resto , o resto da divisão inteira é 1 , pois 19/2 fica 9 e sobra 1 , que dividido por 2 fica 0,5 logo 19/2=9,5 . Sendo assim quando colocamos o comando x//1=x ele divide por um e da o resultado, que no caso será dividido pelo resto x %10 , que divide o número total com uma casa para trás , ficará assim 0,x
po cara nao é tao dificil assim, eu completei facil facil olha: numero=str(input('Digite um número de quatro digitos:')) print('A sua unidade é: {}'.format(numero[4])) print('A sua dezena é: {}'.format(numero[3])) print('A sua centena é: {}'.format(numero[2])) print('E seu milhar é: {}'.format(numero[1]))
Ola, acho que seu codigo da erro. Pois o indice comeca em 0 e nao em 1. O numero=9875 a unidade é numero[3], dezena numero[2], centena numero[1], milhar numero[0].
num = int(input('numero: ')) print('unidade: {}'.format(num%10)) num = num // 10 print('dezena: {}'.format(num%10)) num = num // 10 print('centena: {}'.format(num%10)) num = num // 10 print('milhar: {}'.format(num%10))
o meu ta mais simples, so lembrar, começa pelo 0 num = str(input('Digite um valor de 0 a 9999: ')) s = num[3] s2 = num[2] s3 = num[1] s4 = num[0] print('Unidade: {} Dezena: {} Centena: {} Milhar: {}'.format(s, s2, s3, s4))
eu fui fazer achando que era pra fazer só por string, fiz um monte de caminhos usando if, elif e else junto com a parte de chamar exclusivamente alguma parte da string, no final deu certo e vejo que poderia só ter usado os conceitos matematicos mesmo 🤡
Para mim foi o mais difícil, tinha colocado com índice negativo, porém não daria certo se viesse algum número com 1, 2 ou 3 dígitos. Mas com esta solução usando // e %, nem imaginava a necessidade de usar estes operadores, mas com esta solução comecei a entender um pouco disso.
isso, fazendo isso somente com strings, funciona o código. numero = int(input('Digite um número: ')) num = str(numero) num = num.zfill(4) u = num[3] d = num[2] c = num[1] m = num[0] print(f'Analisando {numero}...') print(f'Unidade: {u}') print(f'Dezena: {d}') print(f'Centena: {c}') print(f'Milhar {m}')
fiz por string: n = input('informe um numero de 0 a 9999: ') print('unidade: ', n[-1:]) print('dezena: ', n[-2:-1]) print('centena: ', n[-3:-2]) print('milhar: ', n[-4:-3]) funcionou.
Pode me explicar o pq desses dois pontos após o primeiro número? Eu também fiz por string e ficou assim: num = input('Digite um número entre 0 e 9999: ') num = num[::-1] + '000' print(f'Unidades: {num[0]} Dezenas: {num[1]} Centenas: {num[2]} Milhar: {num[3]}')
Eu resolvi utilizando ele como string, porem eu preenchi os espaços com zero caso o numero nao tivesse 4 digitos. Tem um metodo de string q faz isso. O cod ficou assim: num=str(input('Digite um numero de 0 a 9999: ')).zfill(4) print('O numero digitado foi: {}',num) print('Unidade: {}'.format(num[3])) print('Dezena: {}'.format(num[2])) print('Centena: {}'.format(num[1])) print('Milhar: {}'.format(num[0])) Testa ai :)
cara essa foi show eu tive que acabar tendo que usar uns IFs (condições) achei paia pq eu não queria usar "if" pq o curso mesmo ainda não tinha abordado os ifs quando lançaram os desafios
eu fiz de outro jeito! n = input('Digite um numero: ') separar_espaco = ' '.join(n) separando_lista = separar_espaco.split() separando_lista.insert(0,0) separando_lista.insert(1,0) separando_lista.insert(2,0) print(f'Unidade: {separando_lista[-1]}') print('Dezena: {}'.format(separando_lista[-2])) print('Centena: {}'.format(separando_lista[-3])) print(f'Unidade de milhar: {separando_lista[-4]}') O bom de vir nos comentarios é que cada um conseguiu fazer de um jeito! Show de bola!!!
É, fiz em strings, e realmente dava ruim com um número que não tivesse 4 dígitos. Como não entendi a lógica que você fez, tive q pegar o velho lápis e papel e fazer na unha os cálculos para entender essa lógica. Realmente, deu certo. Obrigado !!!
É possível fazer em str, mas tenq adicionar os '0' a esquerda com: num=('{:0>4}'.format(x)) x é o número digitado e 4 é a quantidade de dígito que vc irá usar, daí vai adicionar '0'(s) a esquerda do número digitado completando 4 digitos, a partir daí da pra usar str de boa
Pessoal, para quem ficou com dúvida eu fiz dessa forma: n=input('Digite um número inteiro de 0 até 9999: ') m=f'{n:0>4}' print(f'Unidade: {m[3]} Dezena: {m[2]} Centena: {m[1]} Milhar: {m[0]}') Na segunda linha eu mando o programa ter 4 casas e preencher com 0 as casas vazias. Então se o número é 23 ele fica 0023. Depois na terceira linha eu só mando o programa dizer cada casa como se fosse um frase split. Lembrando que o é só para pular de linha.
Fiz usando a mesma logica, porém queria me limitei a utilizar os comandos de string ensinados: num = str(input('Digite um numero entre 0 e 9999: ')) num = num.replace(num, (4-len(num))*'0' + num) print(num) print('Numero Digitado: {} Unidade: {} Dezena: {} Centena: {} Milhar: {}'.format(num,num[3],num[2],num[1],num[0]))
Opa, usei a sua forma e acrescentei algumas coisas como, se o número ter mais que 4 dígitos vc recebe uma mensagem de erro e, se o número digitado ter menos que 5 números ele prossegue para a tela que mostra as unidades, dezenas, etc. num = int(input('Digite um numero inteiro de 0 a 9999: ')) m = f'{num:0>4}' if len(m) > 4: print('ERRO: O valor digitado tem mais que 4 dígitos. Tente novamente.') elif len(m) < 5: print(f'Unidade: {m[3]}') print(f'Dezena: {m[2]}') print(f'Centena: {m[1]}') print(f'Milhar: {m[0]}') !(Lembrando que isso usado no código ainda não foi ensinado até a aula 09, eu só dei uma pesquisada na Internet pra completar)!
Ficou bom. Mas como a aula referente foi manupulação de strings, eu preferir usar apenas strings e listas. Olha ai: n = str(input('Digite um número entre 0 e 9999: ')).strip() print(f'Analisando o número {n}') n = list(n) n0 = ['0', '0', '0', '0'] n0[len(n):] = n print(f'Unidade: {n0[-1]}') print(f'Dezena: {n0[-2]}') print(f'Centena: {n0[-3]}') print(f'Milhar: {n0[-4]}')
@@Lukitax Não é nada demais mano, já tenho experiencia em outras linguagens de programação. Só um toque que eu te dou, é evitar esses tipos de "Gambiarras" em algoritmos futuros, porque se um assuario usa seu algoritmo de forma "errada", ( e os usuários sempre fazem isso... rs), o seu algoritmo buga. Tipo, se usuario colocar um numero maior que 10000, o seu algoritmo vai dar uma resposta errada, no meu não. Mas com o tempo vc vai aprendendo a evitar esses bugs.
Cara, eu peguei um papel e fiz as contas e consegui entender. Não sei se você ainda tem dúvida, mas vou tentar explicar(sou péssimo explicando): Usaremos o número 1957 para fazer as contas... Este código que o Guanabara usou, poderia ser simplificado para isto(O resultado vai ser o mesmo, pode testar): u = n % 10 d = n // 10 % 10 c = n // 100 % 10 m = n // 1000 u recebe o resto da divisão inteira entre 1957 e 10 --> 1957 // 10 = 195 (10x195 = 1950), o resto dessa divisão é 7, logo, a unidade é 7. d recebe o resultado da divisão inteira entre 1957 e 10, esse resultado vai ser dividido por 10 novamente e pegará o resto dessa divisão, ficando assim: 1957 / 10 = 195(neste caso é o resultado da divisão inteira, não o resto) --> dividindo esse resultado por 10: 195 // 10 = 19 (19x10 = 190). Agora sim pegaremos o resto da divisão, que é 5. Logo, a dezena e 5. c = Aqui é o mesmo processo anterior, só que dividindo por 100 --> 1957 // 100 = 19(resultado da divisão inteira). Agora faremos 19 // 10 = 1 (O resto dessa divisão inteira é 9). A centena é 9. m recebe o resultado da divisão inteira entre 1957 e 1000 --> 1957 / 1000 = 1 (pronto, 1 é o milhar). Obs: Lembre-se que divisão inteira pega apenas a parte inteira do número, diferente da divisão "normal" que daria valores com vírgula. Espero ter ajudado, abraços :D
Eu ate comecei a fazer como string achei as unidades blz, so que quando chegou nos outros códigos ai travou tudo na cabeça e não consegui resolver mais nada. rsrsrs. mais também nem passou na cabeça de fazer pelo resto da divisão.
Sem matemática, manipulando apenas string: num = input('Digite um número entre 0 e 9999: ') # Formata a string com 4 espaços, alinhado à direita e completa com 0 num = '{:0>4}'.format(num) print('Unidades: {}'.format(num[3])) print('Dezenas: {}'.format(num[2])) print('Centenas: {}'.format(num[1])) print('Milhares: {}'.format(num[0]))
Esse exercício não é difícil, só tem uma informação que ainda não havia sido dita e o professor deixou a explicação um pouquinho complicada. Mas de modo geral, ele fez uma divisão e usou um recurso do resto que permite mostrar o item mais à direita de um número. Por exemplo: em um número X o % 10 vai mostrar o número mais a direita após a vírgula, ou seja, em um número como 1253, o número mais a direita é 3 que vai ser a unidade. Aplicando essa linha de raciocínio, quando ele começa a dividir ele afasta a vírgula e consegue exibir o último número à direita, por exemplo: 1253//10 = 125,3 onde o 5 é o último número à direita da divisão inteira, representando as dezenas. O "% 10" é o que permite ver esse número. Espero ter ajudado de alguma forma. Muito obrigado professor pelo conteúdo. Uma dica muito válida é buscar materiais na internet explicando algumas lacunas da aula ou aprofundando o que foi dito, assim se ganha muita informação valiosa
Caramba... peguei pra fazer o exercício, fiz com 2 for loops e uma porrada de if conditions... me senti muito do burro vendo a solução, mas foi muito bom!
Eu sofri pra fazer e foi um pouco diferente, então segue a minha resolução. 1. Pedi para digitarem um número (a) 2. Garanti que o valor colocado fosse preenchido com 0 até chegar em 4 dígitos e pedi que fosse alinhado para a direita ({a:0>4}). Então se fosse digitado o valor 1, ele ficaria como 0001. Além disso, dei um split, pra que pudesse dividir na etapa seguinte. 3. Na parte do print, coloquei a primeira palavra que tinha dado o split (no exemplo do passo 2 seria [0001] e pedi o que queria. Exemplo, para a unidade foi {b[0][3]}, já que era a primeira palavra e o quarto digito. Para o milhar foi {b[0][0]} pq queria a primeira palavra e o primeiro digito. a = input('Digite um número de até quatro digitos: ') b = f'{a:0>4}'.split() print(f'Unidade é: {b[0][3]}') print(f'dezena é: {b[0][2]}') print(f'centena é: {b[0][1]}') print(f'milhar é: {b[0][0]}')
Gente, não se preocupem com esse exercícios por não terem entendido a parte matemática. Com estruturas condicionais é bem mais simples (inclusive penso que esse exercício deveria ser passado só depois desse assunto). Uma das formas possíveis seria: numero= input('Digite um número inteiro de 0 a 9999. ') #Apaga os espaços a fim de não considerá-los na contagem. formatado=numero.replace(' ','') #O programa aparece a mensagem erro caso o usuário ultrapasse os 4 algarismos. if len(formatado) > 4: print('Erro. Só são permitidos números de 4 algarismos') else: if len(formatado)==4: print('Milhar: {}'.format(formatado[0])) print('Centena: {}'.format(formatado[1])) print('Dezena: {}'.format(formatado[2])) print('Unidade: {}'.format(formatado[3])) if len(formatado)==3: print('Centena: {}'.format(formatado[0])) print('Dezena: {}'.format(formatado[1])) print('Unidade: {}'.format(formatado[2])) if len(formatado)==2: print('Dezena: {}'.format(formatado[0])) print('Unidade: {}'.format(formatado[1])) if len(formatado)==1: print('Unidade: {}'.format(formatado[0])) Mesmo se vcs estiverem achando difícil olhando assim, tudo isso é muito simples, vcs vão ver quando estudar o assunto. Nesse caso, por exemplo, se o número for maior que quatro algarismos o sistema vai dar erro e os if's servem pra ele mostrar um resultado coerente para o tanto de algarismos. Assim, não vai acontecer um problema de 129 ser lido como 1290. Não desanimem. Continuem firmes no estudo de programação. Estamos juntos nessa jornada. E obrigado ao Gustavo Guanabara por disponibilizar esse curso tão bom! ☺♥
Bom, so aprendi o que ele ensinou até agora, e lembro que uma aula ele ensinou a escrever o nome com sinal igual do lado ====Gustavo==== e dava pra colocar pra direita, esquerda ou centralizado com > ou < ou ^ ...pensando nisso fiz esse codigo n = input('Escreva um número de 0 até 9999 ') v = ('{:>4}'.format(n)) print('Unidade {} Dezena {} Centena {} Milhar {}'.format(v[3], v[2], v[1], v[0])) a unica parte que importa mesmo é v = ('{:>4}'.format(n)) lembra do exemplo? print('Bem vindo {:=^20}!'.format(name)) peguei esse comando da aula 7 aos 23:25 minutos e tirei tudo que não precisava...
Consegui, Recomendo que continuem os estudos, pois vai valer muito a pena. Exercício 23: nnum = int(input('Digite um numero: ')) num += 10000 n = str(num).strip() print(f'A unidade: {n[4]} A dezena: {n[3]} A centena: {n[2]} O milhar: {n[1]}')
Entender eu entendi 100%, mas nunca que eu iria imaginar isso na vida kkkkkkkkkkkkk, fiquei tentando diversos meios por mais de hora e só consegui vendo a resolução.
Como o outro coleguinha aqui nos comentário, também fiz do "jeitinho brasileiro" num = input('Digite um número: ') num2 = num.replace(num,'000'+num) print(f'unidade: {num2[-1]}') print(f'dezena: {num2[-2]}') print(f'centena: {num2[-3]}') print(f'milhar: {num2[-4]}')
Achei um modo que requer menos matemática e que pelo menos eu achei mais fácil e simples num = int(input('Digite um número inteiro de 1 até 9999: ')) + 1000# Lê o número e adiciona 1000 nele, para que tenha as 4 casas necessárias. strnum = str(num)# Trasforma o número em uma string para poder ser usado com os colchetes (se não me engano isso se chama indexação, ou algo assim). print(f'Unidade: {strnum[3]}')# O número tem 4 casas por conta dos 1000 adicionados acima, print(f'Dezena: {strnum[2]}')# então não existe problema caso o número digitado seja de menos de menos de 4 casas. print(f'Centena: {strnum[1]}') print(f'Milhar: {int(strnum[0]) - 1}')# trasforma a primeira casa do número em inteiro, e então subtrai 1 dele, para remover aqueles 1000 adicionados anteriormente. Quem não entender algo, é só testar por si próprio. Até então não descobri nenhum erro nele Edit: nas respostas tem um erro junto com uma solução
Esse código vai funcionar até o número 8999 e a partir de 9000 ele vai dar o resultado inesperado, pq o valor vai passar a ter 5 dígitos e não 4. A única maneira que eu encontrei, sem usar a matemática que o guanabara mostrou é usando estrutura de repetição "if" (assim como o próprio guanabara citou no vídeo)
@@silviodossantosneto6665 se acrescentar 10000 ao invés de 1000, da certo sendo o milhar [1] ao invés de [0] num = int(input('Digite um número inteiro de 1 até 9999: ')) + 10000 strnum=str(num) print(f'unidade {strnum[4]}') print(f'dezena {strnum[3]}') print(f'centena {strnum[2]}') print(f'milhar (strnum[1]}')
Puts cara, custei mas acho que entendi. --------------------------------------------------------------------------------------------------------------------------------------------- variavel = 4-len(n) # 4 menos o número de caracteres. ------------------------------------------------------------------------------------------------------------------------------------------- novo = n.replace(n, "0"*variavel+n) # Trocando "n" por 0 vezes "variável" mais o próprio "n". # Sempre multiplica a "varíável" por 0 pq se a casa no "n" não existir, ele imprime "0" nela, se ela existir, imprime o que está na casa.
@@jhenniferazevedo7011 kkkkkkk mas ele editou. A resolução era de óutra forma, usando um tipo de lista. Mas tá valendo, talvez seja resolvido desse jeito mais pra frente.
# Resolução por caminho de String print(' A resolução abaixo será realizada por manipulação de string ') num1 = float(input('Digite um número de 0 a 9999: ')) num1 = int(num1) num1 = str(num1) num2 = ('0000') num12 = num2 + num1 num12 = ''.join(reversed(num12)) print(f'unidade: {num12[0]}') print(f'dezena: {num12[1]}') print(f'centena: {num12[2]}') print(f'milhar: {num12[3]}') Que aulas incríveis! Obrigado, professor! :) Depois de um tempinho quebrando a cabeça, graças a Deus, está sendo possível compartilhar um código que usa mais manipulação de strings do que operações matemáticas.
Como o Guanabara passou esse exercício em outro vídeo, resolvi ele antes de ver este vídeo, tratando o número como string e usei uma série de If-else. Deu o mesmo resultado mas muito mais trabalho kkkk
Meta de trabalhar na área ainda em 2023!!!! hoje 18/12/22 "você sabe que os desafios estão ficando difíceis quando não consegue resolver sozinho" persistência!!! EXERCICIO#023 numero = int(input('Informe um número: ')) uni = numero // 1 % 10 dez = numero // 10 % 10 cen = numero // 100 % 10 mil = numero // 1000 % 10 print(f"""Analizando o número {numero} Unidade: {uni} Dezena: {dez} Centena: {cen} Milhar: {mil}""")
@@victormeireles1906 Não, eu fiz parecido e funciona bem. Qualquer número que eu botar, ele vai numero = str(input("Digite um número: ")) print(f'Unidade: {numero[3:4]} Dezena: {numero[2:3]} Centena: {numero[1:2]} Milhar: {numero[0:1]}')
Eu fiz de um jeito mais simples pra mim e até que funcionou, acho que funciona ate com números maiores Ficou assim: n1 = str(input('Digite um número de 0 a 9999: ')) n = ('00000{}'.format(n1)) nu = n[len(n)-1] nd = n[len(n)-2] nc = n[len(n)-3] nm = n[len(n)-4] print('A unidade de {} é {}.'.format(n1, nu)) print('A dezena de {} é {}.'.format(n1, nd)) print('A centena de {} é {}.'.format(n1, nc)) print('A unidade de milhar de {} é {}.'.format(n1, nm))
Ao tentar resolver a atividade, tentei focar nas ferramentas de manipulação de texto da Aula 09. Foi um ótimo desafio! Também tentei considerar o caso do usuário incluir um número com decimais. Meu código ficou assim: print(' Desafio 023 '.center(50, "=")) print() n = str(int(float(input('Insira um número entre 0 e 9999: ')))) print('-' * 50) n = '0' * (4 - len(n)) + n u = n[len(n) - 1] d = n[len(n) - 2] c = n[len(n) - 3] m = n[len(n) - 4] print('Unidade: {}'.format(u)) print('Dezena: {}'.format(d)) print('Centena: {}'.format(c)) print('Milhar: {}'.format(m))
Genial... nunca que pensaria fazer usando essa forma, na hora que fiz achei que tinha acertado de primeira HAHA, me faltou fazer mais testes ao "completar" ao completar o código... Quando eu estava tentando fazer a parte matemática, eu pensei em usar expressão numérica, tipo ao tentar passar um número binário para decimal, mas não soube fazer isso no python, então decidi deixar na metodologia ensinada na explicação do vídeo. Como já dizia a tradição, segue a maneira na qual eu fiz (maneira errada): num = input('Diga um número de 0 a 9999: ') unidade = num[3] dezena = num[2] centena = num[1] milhar = num[0] print('''Unidade: {} Dezena:{} Centena: {} Milhar: {}'''.format(unidade, dezena, centena, milhar))
Tive MUITA dificuldade para fazer esse exercício. Pedi ajuda ao meu pai que é programador e pude aprender imensamente com a ajuda dele. Gostaria de compartilhar com vocês o que eu aprendi para que vocês também possam evoluir, assim como eu evoluí hoje. Não pensei em fazer da forma matemática. Nem passou pela minha cabeça usar módulos, igual o Guanabara fez. #Variável num que recebe um input #Variável con que veio de 'conversão', pra converter o valor inteiro da variável num pra valor string (serviu para a validação feita mais à baixo) num = int(input('Digite um número entre 0 e 9999: ')) con = str(num) #Sabendo o básico de lógica, dá pra ler o código facilmente. "Se len(número de caracteres da variável) da variável con for igual à 1, então con recebe três zeros concatenando o valor de con." if len(con) == 1: con = ('000' + con) #Aqui, se len da variável con for igual à 2, então con recebe dois zeros concatenando com o valor de con. if len(con) == 2: con = ('00' + con) #E aqui, se len for igual à 3, recebe um zero concatenando o valor de con. if len(con) == 3: con = ('0' + con) #Criei uma variável 'divisao' que recebe uma lista com os valores de con divisao = list(con) ##Aqui vem a parte de validação. Mesmo após ter conseguido, ficou martelando na minha mente o que aconteceria se o usuário digitasse um número maior do que 9999. Então criei uma situação onde não se pode digitar um número maior que 9999, nem menor do que 0, senão retornará erro. #Se variável num for maior ou igual à zero, E variável num for menor ou igual à 9999: execute todos os prints if (num >= 0) and (num
É IMPRESINAMENTE COMO UM PROGRAMADOR CONSEGUI PENSAR DESSA FORMA, EU SÓ CONSEGUIR DA PRIMEIRA FORMA, NUNCA TINHA PENSADO EM RESOLVER SÓ COM CALCULOS MATEMÁTICOS.
Fala galera, beleza? Vou deixar aqui minha resolução e explicação pra quem ainda não entendeu!!! A operação % (módulo) por 10 é usada para obter o último dígito de um número. Quando dividimos um número por 10, o resto da divisão será o último dígito desse número. # Por exemplo, consideremos o número 123. Se dividirmos 123 por 10, obtemos 12 como resultado inteiro e 3 como resto. O resto, nesse caso, é exatamente o último dígito do número original. # Da mesma forma, se tivermos o número 9876 e fizermos a divisão por 10, obteremos 987 como resultado inteiro e 6 como resto. Mais uma vez, o resto é o último dígito do número original. # Essa técnica é utilizada para extrair cada dígito de um número. Ao aplicarmos o operador % por 10 repetidamente, conseguimos obter os dígitos individualmente, começando pelo último dígito (unidade) e progredindo para os dígitos mais significativos (dezena, centena e assim por diante) em etapas subsequentes de divisão por 10. #faça um programa que leia um numero de 0 a 9999 e mostre na tela cada um dos digitos separados #:ex:9930 unidade dezena centena milhar num = int(input('Digite um número: ')) unidade = num % 10 #resto=0 num = num // 10 #result=993 dezena = num % 10 #resto=3 num = num // 10 #result=99 centena = num % 10 #resto=9 num = num // 10 #result=9 milhar = num print(f'A unidade é: {unidade}') print(f'A dezena é: {dezena}') print(f'A centena é: {centena}') print(f'O milhar é: {milhar}') print(type(num))
N fiz assim, só q do meu jeito eu vou ter que ultilizar espaços, veja : n1=str(input('digite um numero: ')) a=n1.split(' ')[0] y=n1.split(' ')[1] x=n1.split(' ')[2] w=n1.split(' ')[3] z=n1.split(' ')[4] print('digite zeros se acaso sobrar espaços vazios') print('seu número tem %s dezenas de milhar!'%a) print('seu número tem %s unidades de milhar!'%y) print('seu número tem %s centenas!'%x) print('seu número tem %s dezenas!'%w) print('seu numero tem %s unidades!'%z)
n = input('Informe um numero:') nf = f'{n:>4}' print(f'Analisando o numero {n}') print(f'Unidade: {nf[3]}') print(f'Dezena: {nf[2]}') print(f'centena:{nf[1]}') print(f'milhar: {nf[0]}')
Eu já tinha postado os meus exercícios lá no vídeo da aula 9, mas vou colocar aqui para caso alguém queira ver como resolver com string sem precisar de nada que não foi aprendido até aqui: print('=== LEITOR DE NÚMEROS ATÉ 9999 ===') n = int(input('Digite um número até 9999: ')) print('== MÉTODO INT ==') print('Unidade = {}'.format(n % 10)) print('Dezena = {}'.format((n // 10) % 10)) print('Centena = {}'.format((n // 100) % 10)) print('Milhar = {}'.format(n // 1000)) print('== MÉTODO STRING ==') n = '000' + str(n) # para que possamos escrever 1, 23 ou 395 print('Unidade = {}'.format(n[-1])) # Também daria pra usar n[len(n)-1] print('Dezena = {}'.format(n[-2])) print('Centena = {}'.format(n[-3])) print('Milhar = {}'.format(n[-4]))
Eu resolvi usando strings, testem ai e me digam se da certo: n = input("Digite um número entre 0 e 9999: ").strip() t = len(n.zfill(4)) print('Unidade: {}'.format(n.zfill(4)[t-1])) print('Dezena: {}'.format(n.zfill(4)[t-2])) print('Centena: {}'.format(n.zfill(4)[t-3])) print('Milhar: {}'.format(n.zfill(4)[t-4]))
Um jeito mais facil ainda. numero = str(input("Digite um numero de 1 a 9999: ")) print("A casa do milhar vale:, ", numero[0]) print("A casa da centena vale: ", numero[1]) print("A casa da dezena vale: ", numero[2]) print("A casa da unidade vale: ", numero[3])
Muito interessante as formas encontradas! Segue minha contribuição: num = int(input('Digite um número de 0 a 9999: ')) num = format(num, "04d") print(f''' Unidade: {num[-1]} dezena: {num[-2]} centena: {num[-3]} milhar: {num[-4]} ''')
Achei o mesmo e o seu comentário foi o único que eu estava à procura, pois isso foi o mais frustrante e ninguém comentou: O exercício de manipulação de string não teve nada, por isso terá induzido muita gente em erro
Fiquei um tempão tentando fazer por string sem usar condicional ou laço de repetição e não consegui e aí a resolução é aritmética... rsrs Ainda gostaria de saber se alguém fez sem aritmética, condicional ou laço ou se é impossível mesmo.
Gaya, vi seu comentário e pensei em um jeito de fazer só com string. Fiz com condicional, mas acho que # Assim garanto que se for um valor pequeno não tenho problema, pois só vou pegando pelo final num = '000' + str(input('Digite um número: ')) length = len(num) print(f'unidade: {num[length - 1]}') print(f'dezena: {num[length - 2]}') print(f'centena: {num[length - 3]}') print(f'milhar: {num[length - 4]}')
Mas havia outra forma de fazer esse dever sem que precisasse entender conceitos matemáticos que são complicados para a totalidade do público que quer apenas aprender programação. Como você havia dito, não é só a galera de exatas que precisa aprender a programar, e esse dever é uma barreira gigante para quem não tem esses conceitos matemáticos tão firmes na mente. O problema poderia ser resolvido com o comando que uma str deveria ter quatro caracteres e o número deveria se posicionar na direita, e quando ele não tivesse estes caracteres, espaços seriam adicionados na esquerda do número. Veja meu código: 1- num=str(input('Digite um número até 9999: ')) 2- num1=('{:>4}'.format(num)) 3- print('O número digitado foi: {}'.format(num)) 4- print('Ele contêm {} unidade(s) Ele contêm {} dezena(s) Ele contêm {} centena(s) Ele contêm {} milhar'.format(num1[3],num1[2],num[1],num[0])) 5- input() Na linha de comando 2 está o comando que eu falei entre as chaves. E não se espantem, ele já fez isso com o comando PRINT, apenas coloquei dentro de uma variável para que a str seja analisada de forma descente posteriormente, sem necessariamente você precisar ter conceitos matemáticos
6 лет назад+2
Quando coloca um número que não tenha 4 caracteres o código buga :(
Eu fiz algo semelhante: num = input('Digite um número de 0 a 9999: ') num1 = '{:0>4}'.format(num) uni = len(num1) - 1 dez = len(num1) - 2 cen = len(num1) - 3 mil = len(num1) - 4 print('Você digitou o número {}.'.format(num1)) print('unidade: {}'.format(num1[uni])) print('dezena: {}'.format(num1[dez])) print('centena: {}'.format(num1[cen])) print('milhar: {}'.format(num1[mil]))
Aqui vai meu código usando em string: n=str(input('Digite um número de 0 a 9999:')) x=(5-len(n))*'0'+n print('unidade:',x[4]) print('dezena:',x[3]) print('centena:',x[2]) print('milhar:',x[1])
Seguinte, pra quem não entendeu tudo bem. Eu tambem não tinha entendido de começo, eis a lógica: Tu pega qualquer número e faz a divisão inteira, no nosso exemplo aqui vai ser 1543. Vamo direto pra dezena pra ficar mais simples, x = int(1543) #Nosso número Dezena = x//10%10 Então vamo pensar nessa linha ae de cima, primeiro nosso número vai ser dividido inteiro por dez no caso toda unidade vai ser descartada, pois divisão inteira não retorna resto, e unidade não é divisivel por 10. Nosso número virou 154, agora vem a divisão que mostra o resto, 154% 10 (na linha do código) ao contrário da divisão inteira que retirou a unidade agora vai retirar a centena (5) e o milhar (1) mostrando o que supostamente seria a unidade, mas já que a operação passada retirou a unidade agora vai mostrar como resultado a dezena. Divisão inteira por 10 retira completamente as unidades, se for por 10 as unidades, por 100 as dezenas, por 1000 as centenas já que nenhum número menor do que o da divisão passa, 99//100 não passa dezena já que 99 (a maior dezena) é menor que 100(a menor centena),
Esse exercício me ferrou demais. Pq eu tentei fazer de acordo com a aula KKK Depois que eu percebi que tipo, pqp. E mesmo assim, ainda tive dúvidas, mas estamos ai pra isso.
esse foi o único exercicio que foi total TROLLAGEM, olha desafios sobre manipulação de texto mas pra ficar direito toma uma divisão marota de matemática pra resolver pq com string fica uma bosta, foi o famoso olha que recursos legais que não funcionam como eu prometi vc tinha que lembrar de matemática bruta pra resolver kkkkk
Gente, da pra fazer com só 3 linhas: esse "f" que eu boto antes das aspas simples é tipo o .format só que mais prático, dai eu digito direto o que eu quero que a apareça entre chaves {} num = input('Digite um número de 0 a 9999: ') num = (f'{num:0>4}') print(f'Unidade: {num[3]} Dezena: {num[2]} Centena: {num[1]} Milhar: {num[0]}') Esse "num = (f'{num:0>4}')" vem do conteúdo de outras aulas, com essa linha eu garanto que sempre haverão 4 caracteres (assim não dá aquele erro que o Guanabara mostrou) e que ,se no número fornecido tiver menos que 4 caracteres, a quantidade que falta será preenchida com 0's. Pode copiar e colar pra testar que dá certo! E se você mudar o 4 dessa linha num = (f'{num:0>4}') você pode descrever quantas casas vc quiser! Só precisa printar com a posição certa (dezena de milhar, centena de milhar, unidade de milhão, etc)
EU TE AMO! Só uma dúvida, o "num:0>4" é mencionado em qual aula? Entendi o conceito e funcionou certinho, mas queria saber aonde vc aprendeu essa função
Você deu uma dica na aula, que algum exercício usaria alguma função + r (direita).. encanei que era esse exercício e resolvi ele assim, usando o "justificar à direita": n = str(input('Digite um número: ')) n2 = n.rjust(4, '0') print('A unidade é {}'.format(n2[3])) print('A dezena é {}'.format(n2[2])) print('A centena é {}'.format(n2[1])) print('O milhar é {}'.format(n2[0]))
Como não foi mencionado antes que a saída deveria ser um int , fiz assim: n = str(input('Digite um numero de 0 a 9999: ')) print(f'Unidade: {n[-1 : ]}') print('Dezena: {} Centena: {}'.format(n[-2 : -1], n[-3 : -2])) print('Milhar: {}'.format(n[-4 : -3]))
5 лет назад+22
Não precisa de matemática. num = '000'+input('Informe um numero: ').strip() print('Unidade: {}'.format(num[-1])) print('Dezena: {}'.format(num[-2])) print('Centena: {}'.format(num[-3])) print('Milhar: {}'.format(num[-4]))
Raciocínio matemática nota 1000!!! Quebrei muito a cabeça pra tentar chegar numa solução possível para o desafio 023... Segue uma solução para o problema, utilizando os recursos que estudamos até agora, que é bem mais simples (consiste em adicionar 4 zeros no início do número, a esquerda/sem valor, não correndo o risco do erro no programa quando o usuário digitar um número com menos de 4 casas decimais): #Faça um programa que leia um número de 0 a 9999 e mostre na tela cada um dos dígitos separados #Ex: 1834 => unidade 4 dezena 3 centena 8 milhar 1 digitado = input('Digite um número de 0 a 9999: ') num = '0000'+digitado print('A unidade do número é {}.'.format(num[-1])) print('A dezena do número é {}.'.format(num[-2])) print('A centena do número é {}.'.format(num[-3])) print('O milhar do número é {}.'.format(num[-4]))
Estude pelo nosso site e tire certificado de 40 horas. Curso completo em: www.cursoemvideo.com/curso/python-3-mundo-1/
Estou assistindo pelo site, mas por algum motivo quando tento passar do exercício 22 para o 23, não me deixa avançar, mesmo marcando concluído. Como proceder?
Descobri que pelo site não aceita eu acelerar a reprodução do vídeo. :/ Por isso não estava conseguindo avançar para o próximo vídeo.
Fica difícil assistir pelo site pra ganhar o certificado quando tu quer começar pelo exercício 23 kk talvez algum dia eu vá assistir tudo de novo.
A sacada de usar a divisão inteira e depois só o resto da divisão é incrível. De verdade, MUITO difícil de pensar para um marinheiro de primeira viagem.
uma coisa que eu não gosto é usar conceitos não ensinados nos exercicios, pode incentivar as pessoas a desistencia
@@potter404 cara, eu ainda nem cheguei a ver nenhum conteudo de if, mas so de ver seu script deu pra eu entender mt coisa, e concordo q é impossivel pensar no resultado resolvido pelo guanabara lkkkkkkkk
@@potter404 Gostei da sua solução, mano. Tem que se virar como pode. Na primeira vez eu também me enrolei pra burro.
@@juliodonofreo vai chorar se te forçarem a usar o cérebro um pouco? Passou a vida inteira ganhando tudo mastigado! Tenta dessa vez, pelo menos dessa vez na sua vida, queimar um pouco a cabeça antes de ir chorando nos comentários falar que não conseguiu!
@@daniellopes48 Falar isso sem ao menos conhecer 50% da vida do cara, é burrice ou ignorância pura.
Pra quem achou a explicação complicada:
Veja os exemplos abaixo.
Divisão: 1234 / 10 = 123,4
Divisão inteira: 1234 //10 = 123
Módulo: 1234 % 10 = 4
Pra ele descobrir a centena ele faz isso:
Faz a divisão inteira por 100: 1234 // 100 = 12
Depois pega o resultado e dividi por 10, mas pega só o resto dessa divisão (que é o módulo): 12 % 10 = 2
Ou seja, a centena é 2.
Espero ter ajudado, demorei para entender tbm ^^
Ficou mais claro pra mim agora...Valeu!
vlw mano
agora entendi valeu...
tentei usar um pensamento com um numero menor.
ficou mais ou menos assim.
790 / 1 = 790 dps 790 / 10 = 79,0 então o 0 é o resto... unidade é igual a 0.
790 / 10 = 79,0 dps 79,0 / 10 = 7,9 então o 9 é o resto ... dezena é igual a 9.
790 / 100 = 7,9 dps 7,9/ 10 = 0,7 então o 7 é o resto ... centena é igual a 7.
esse foi um raciocínio que me ajudou a entender a situação.
pra esclarecer ainda mais, ele faz a divisão pra deslocar a virgula, e usa o % 10 "pra dizer", pegue o primeiro numero após a virgula.
eu tbm,valeu
Esse foi complicado pra mim, não consegui fazer sozinha.
Muito obrigada Guanabara!!
eu tbm não sei matemática, então fiz pura e simplesmente com o código abaixo:
(eu sei que escrevi muuuito mais que ele, mas fazer o que, é mt difícil pra mim raciocinar com matemática..)
n = input('Digite um número: ')
if len(n) == 1:
print('unidade = ',n[0])
if len(n) == 2:
print('unidade = ', n[1])
print('dezena = ', n[0])
if len(n) == 3:
print('unidade = ', n[2])
print('dezena = ', n[1])
print('centena = ', n[0])
if len(n) == 4:
print('unidade = ', n[3])
print('dezena = ', n[2])
print('centena = ', n[1])
print('milhar = ', n[0])
mt melhor e fácil de compreender, obrigado!!@@diulytofalo5539
@@diulytofalo5539 era mais fácil adicionar 000 à esquerda da string e contar começando do final, ficaria mais simples
Fiquei quebrando a cabeça atoa achando que era um exercício relacionado a manipulação de string, mas esse ai fugiu completamente do contexto, ai é foda...
também achei isso. me quebrou todo. tentei uma tarde toda resolver com manipulação de strings. e só fiquei na tentativa. kkk. sem sucesso.
2015 eu fazia o curso de logica de programação nesse canal e hoje em 2022 faço curso de ciencia da computação no IF. Cara agradeço muito esse canal por me proporcionar uma base boa em algorítimos.
Como tá indo o curso?
@@henriqueerenner5741 estava indo bem até esse grave das Univercidades e institutos Federias
Cara, fiquei tão vidrado na ideia de usar os conceitos ensinados na última aula que esqueci de tentar usar a matemática kkkkkkkkklkk
Real, mano. eu fiquei vidrado em tentar usar o len e tals, tentar usar o fatiamento, caramba kkkkkkk
Eu:
n = input('Informe um número: ')
print(f'Unidade: {len(n)}')
print(f'Dezena: {n[0:1]}')
print(f'Centena: {n[1:2]}')
print(f'Milhar: {n[2:3]}')
Coloquei o 3234, tá porra funcionou deixa eu testar o 23 agora ... puta merda
@@snnSam7 tbm dava, mas daí vc tinha que pesquisar um pouco, o jeito que consegui foi assim
numero = input('Digite um número de 0 a 9999: ')
unidade = numero.replace(numero, numero[-1])
dezena = numero.replace(numero, numero[-2])
milhar = numero.replace(numero, numero[-3])
milhao = numero.replace(numero, numero[-4])
print(f'Unidade: {unidade}')
print(f'Dezena: {dezena}')
print(f'Milhar: {milhar}')
print(f'Milhão: {milhao}')
quando vc usa o "-", o python faz a contagem de traz pra frente
Eu fiz Porem do "jeitinho" brasileiro
n = int(input('Digite um número entre 0 e 9999: '))
n2 = str(int(10000 + n))
print('O número {} possui, {} milhares.'.format(n, n2[1]))
print('O número {} possui, {} centenas. '.format(n, n2[2]))
print('O número {} possui, {} dezenas. '.format(n, n2[3]))
print('O número {} possui, {} unidades.'.format(n, n2[4]))
genial
n = int(input('Digite um número entre 0 e 9999: '))
n2 = str(int(10000 + n))
print('{} milhares.'.format(n2[1]))
print('{} centenas. '.format(n2[2]))
print('{} dezenas. '.format(n2[3]))
print('{} unidades.'.format(n2[4]))
BOA, BOA!!! BEM PENSADO.
Gostei kkkk
É realmente impressionante o leque de possibilidades existentes para resolver um problema.
explicado por si tudo fica mais facil só acho que há aqueles que já sabem programar e ficam exibindo os seus códigos cheios de if e else nós estamos aqui porque precisamos aprender valeu mais uma vez a explicação foi facil obrigado GUANABARA
Pois é cara. Eu acabei de comentar um que deu certo por string mas não usa nada que não tenhamos visto.
Eles fazem isso pra mostrar que sabem, mas se soubessem mesmo não estariam aqui mostrando suas ''habilidades'' para nós novatos
pprt falou tudo meu mano
E qual o problema do cara postar uma solução melhor? Não fique com a bundinha doída por existirem modos melhores de se fazer algo que você não conhece mas sim aprenda com eles.
Eu sei java mas não sei python , tentei usa ifs e elses e deu muito errado
Acho que o mais difícil desse exercício é que, no final das contas, a resolução dele não usou manipulação de texto
@@joaomoura6965 opa joão, tranquilo? O que significa isso numt = f'{num:0>7}'?
@@rcfaell oi mano, também não manjo e to aprendendo mas eu acho que é a contagem dos caracteres, do 0 ao 7, '9999.99' tem 6 caracteres mas ai tem que contar um a mais pra ficar certinho
@@rcfaell é a nova formatacao do python, em vez de colocar .format no fim, se voce colocar um f' antes já dá certo, tipo
teste = int(input('Digite um número: '))
print(f'{teste}')
sou ruim explicando, mas espero que tenha entendido.
@@nikisterkix6129 po irmão, explicação perfeita, deu pra entender sim, obrigado!
@@joaomoura6965 Não entendi muito bem, como que você funciona os resultados sem ter que fazer o calculo? poderia me explicar melhor por gentileza?
Guanabara: Você vê como a matemática é legal?
Eu sem entender nada: 🤡
Haha, sim. Tive dificuldade mesmo foi de entender o ‘%’ (tava com outro conceito em mente), mas depois fluiu.
Minha dica é: faça os cálculos manuais p visualizar melhor. Usando o exemplo das unidades:
u = num // 1 % 10
supondo num = 1934.
1934//1 = 1934
Esse ‘%’ tá indicando que vamos pegar esse resultado da divisão inteira (o próprio 1934, dividir por 10 e *usar* o valor da resposta como output).
1934 % 10 = 4
Funcionou assim pra mim e talvez minha dúvida seja a sua. Espero ter ajudado de alguma forma. :)
kkkkkkkk
verdade jesus
kkkkkkkkkkkkkkkkkkkkkkkkkkkk exato
Esse foi difícil, porque tinha que ser pensado algo meio inesperado. mas é assim que um dev realmente deve ser! Obrigado Professor Guanabara
Esse exercício fio tão aproveitado, útil, que acabei aprendendo coisas que eu não sabia na matemática.
Excelente trabalho.
Guanabara, difícil pra mim mas entendi sua explicação, foi ótimo! Didática impecável!
Não consegui encontrar a resposta sozinho, confesso que matemátca era um desafio que nao dei conta na época de ensino fundamental e médio. Porém, quando Guanabara trouxe a fórmula consegui entender como funciona a regra. Didático demais, me lembra um bom programa do Marcelo Tas, na TV Cultura. Obrigado à todos dessa equipe, todos mesmo, quem colocou a energia nesse projeto merece um mundo de oportunidades.
Obrigado, mestre Guanabara. Tu é sensacional, um paizão.
Eu fiz usando str também, no caso eu tive que adicionar os '0' a esquerda no número pra funcionar
num=('{:0>4}'.format(x))
Sendo x o número digitado e 4 é a quantidade de dígitos que deseja,
Daí vai completar os 4 digitos com '0'(s).
Direto de 2022, se você está estudando, não desista!!!
Fiquei quase 1 semana matutando o código desse exercício, mas acredite a sensação de conseguir é única!
Você pode não conseguir hoje, mas se persistir amanha você olhará para trás e verá o quão simples esse exercício parece agora. FOCO, por que somos o futuro da programação!
Essa foi minha resolução:
num = int(input('Digite um numero: '))
n = num + 10000
nn = str(n)
print(f'A unidade é: {nn[-1]}')
print(f'A dezena é: {nn[-2]}')
print(f'A centena é: {nn[-3]}')
print(f'O milhar é: {nn[1]}')
Você usou o Slicing (Fatiamento)? ! Interessante!
Outra solução, muito interessante.
Pensou bem!
Eh bom ler isso pq eu estava assistindo a resolucao pensando em desistir
Essa explicação fez muito mais sentido, era o que eu havia pensado em fazer. usar str ao inves de int e pela ordem crescente dos caracteres, cortar dezena, centana e milhar.
A explicação dele é coisa de maluco de matemática, qual o sentido de dar esse exercício.... talvez num futuro entenda, mas agora vendo a sua explicação fez sentido, a dele, nenhum.
obrigado
não entendi, pode explicar? não entendi os números negativos
Essa realmente eu não fiz, precisei da explicação do Guanabara, valeu professor! #BoraEstudarPython
Esse curso alem de me ensinar programação está fazendo eu aprender e lembrar de coisas da matematica que eu nem lembrava..
Professor obrigado de todo coração por esse curso incrivel!
os comentários tem ajudado bastante. Uma verdadeira aula aqui
É muito boa a prática de dar nomes mais explicativos para as nossas variáveis, por exemplo matrícula_do_aluno, ao invés de apenas mat. Isso ajuda muito quando precisamos revisar, estudar ou alterar o código. Fica a dica. As vezes a preguiça ou a vontade de ganhar tempo acaba nos prejudicando lá na frente.
Façam as contas no caderno. Só depois que fiz umas 3 vezes que entendi o que ele explicou sobre o resto da divisão indicar a unidade, dezena, centena e milhar.
Galera, pra ficar mais claro:
o símbolo // faz a divisão e só pega o que esta antes da vírgula.
o símbolo % faz a divisão e só pega o que esta depois da vírgula.
Não é isso não! O símbolo de % pega o resto da divisão, não a parte decimal.
@@PedroHenrique-gu5yp O resto inteiro, diga-se de passagem
@@Edurrangel Perfeito!
Obrigado pelo esclarecimento
@@PedroHenrique-gu5yp isso ai pvt
Até comecei a pensar algo parecido com a solução do Guanabara, pois não queria usar outros conhecimentos além dos ensinados. Mas a porra dos 'ifs' ficavam martelando meu juízo: 'usa if, usa if, usa if' kkkkk. Aí falhei.
eu usei if tbm hahahah, o codigo ficou gigante
number = float(input('Digite um número inteiro de 0 a 9999: '))
if(number > 9999):
print('esse número é maior que 9999')
elif(number >= 1000):
number = str(number)
unidade = number[3]
dezena = number[2]
centena = number[1]
milhar = number[0]
decimais = number[4:]
print('Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}
Decimais: {}'.format(unidade, dezena, centena, milhar, decimais))
elif(number >= 100):
number = str(number)
unidade = number[2]
dezena = number[1]
centena = number[0]
milhar = 0
decimais = number[3:]
print('Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}
Decimais: {}'.format(unidade, dezena, centena, milhar, decimais))
elif(number >= 10):
number = str(number)
unidade = number[1]
dezena = number[0]
centena = 0
milhar = 0
decimais = number[2:]
print('Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}
Decimais: {}'.format(unidade, dezena, centena, milhar, decimais))
elif(number >= 0):
number = str(number)
unidade = number[0]
dezena = 0
centena = 0
milhar = 0
decimais = number[1:]
print('Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}
Decimais: {}'.format(unidade, dezena, centena, milhar, decimais))
elif(number < 0):
print('esse número é menor que 0')
else:
print('numero não compativel')
@@Enzoerb numero = str(input("Digite um numero de 1 a 9999: "))
print("A casa do milhar vale:, ", numero[0])
print("A casa da centena vale: ", numero[1])
print("A casa da dezena vale: ", numero[2])
print("A casa da unidade vale: ", numero[3])
Tão pequeno, tão compacto. rsrs
gosto da simplicidade. kkkkk
Se for viciado em if provavelmente veio do JavaScript
@@fernandorafael9560 poha :0
@@fernandorafael9560 Mas se o usuário digitar 1 ou 23, 333 vai dar erro. Mas se colocar um .zfill(4) no final da line 1, sucesso total amigo (pesquisei na net esse comando).
Tinha feito dessa forma que você fez, ai pensei nos usuários inteligentes que colocam números a mais (que no caso do exercício não teremos problemas) ou número a menos.
Tenho 14 anos e me interesso por programação desde os 9 anos, eu completei esse curso ano passado mas fiquei 1 ano sem estudar e cá estou eu de novo, reassistindo para relembrar de tudo e resolvendo todos exercicios de novo, e me trazendo um conhecimento maior do que eu tinha antes, muito obrigado por esse curso Guanabara!
Fiz duas resoluções pro exercicio, essa do video e outra utilizando o if e o elif, sei como usar pq ja tinha visto o curso inteiro anteriormente.
Senhor Guanabara me faz quebrar a cabeça, na primeira vez no exercício do seno, cosseno e tangente, agora nesse exercício.
Eu fiz de um jeito que parece não ser o mais correto mas funcionou kkkk. Vou anotar a opção do prof tbm
n1 = input('Digite um número de 0 a 9999: ')
n2 = '000' + n1
print(f'unidade: {n2[-1]}
dezena: {n2[-2]}
centena: {n2[-3]}
milhar: {n2[-4]}')
num = input('Digite um número natural qualquer: ')
print('Analisando o número {}...'.format(num))
print('Unidade: {}'.format(num[len(num)-1]))
print('Dezena: {}'.format(num[len(num)-2]))
print('Centena {}'.format(num[len(num)-3]))
print('Milhar {}'.format(num[len(num)-4]))
Fiz de um jeito mais extenso, mas pra mim, mais simples de entender. Porém usei a estrutura condicional if/else, que ele só vai explicar mais pra frente, mas acabei pesquisando pra poder usar. No meu caso, também não usei o .format porque não é mais necessária na versão do pycharm que estou usando. Só preciso colocar a letra f antes da string e colocar as variáveis dentro dos colchetes. Lá vai:
numero = str(input('Digite um número entre 0 e 9999: '))
quant = len(numero)
print(f'Analisando o número {numero}:')
if quant == 1:
print (f'Unidade: {numero}')
elif quant == 2:
print (f'Unidade: {(numero[1])}')
print (f'Dezena: {(numero[0])}')
elif quant == 3:
print (f'Unidade: {(numero[2])}')
print (f'Dezena: {numero [1]}')
print (f'Centena: {numero[0]}')
elif quant == 4:
print (f'Unidade: {(numero[3])}')
print (f'Dezena: {(numero[2])}')
print (f'Centena: {(numero[1])}')
print (f'Milhar: {numero[0]}')
____________________________ Espero ter ajudado!
ME AJUDOU BASTANTE, MUITO OBRGADO!!!!
Guanabara é meu professor e a aula não me faltará
nesse exercicio em relação aos outros eu n tive nenhuma dificuldade, to me sentindo feliz pq foi um avanço de 2 semanas de esforço.
Muito obg Guanabara :)
Eu fiz assim
numero = f'{input("Digite um número entre 0 e 9999: ").strip():0>4}'
print(f'Unidade: {numero[3]}
'
f'Dezena: {numero[2]}
'
f'Centena: {numero[1]}
'
f'Milhar: {numero[0]}')
Na primeira linha eu completo com "0" s pra que o número posto todas as vezes tenha 4 digitos
Depois, escrevo somente o número da quarta posição, dps da terceira, segunda, primeira
E fim do exercício
Fiquei mt orgulhoso dessa solução :)
E além disso, foi nesse exercício que minha cabeça deu um "click", entendendo um pouco do que ele disse sobre o python ser "orientado a objetos", aquilo que eu pensei que era só uma formatação do print, na vdd era tbm um objeto que eu poderia usar pra outras coisas
Esse eu achei mais complicado e não consegui..
// equivale a uma divisão total , no caso deixando apenas a parte inteira. Ex:19//2 = 9 , pois essa é a parte inteira. % equivale ao resto , o resto da divisão inteira é 1 , pois 19/2 fica 9 e sobra 1 , que dividido por 2 fica 0,5 logo 19/2=9,5 . Sendo assim quando colocamos o comando x//1=x ele divide por um e da o resultado, que no caso será dividido pelo resto x %10 , que divide o número total com uma casa para trás , ficará assim 0,x
po cara nao é tao dificil assim, eu completei facil facil olha:
numero=str(input('Digite um número de quatro digitos:'))
print('A sua unidade é: {}'.format(numero[4]))
print('A sua dezena é: {}'.format(numero[3]))
print('A sua centena é: {}'.format(numero[2]))
print('E seu milhar é: {}'.format(numero[1]))
Eu tambem!
Fox_ Psyduck! kkkk men o seu vai dar resultado errado, para mim esse foi dificil ;-; sou pessimo em mat.
Ola, acho que seu codigo da erro. Pois o indice comeca em 0 e nao em 1. O numero=9875 a unidade é numero[3], dezena numero[2], centena numero[1], milhar numero[0].
Achei complicado nao consegui :(
Lucas S. Eu também não
Eu também
num = int(input('numero: '))
print('unidade: {}'.format(num%10))
num = num // 10
print('dezena: {}'.format(num%10))
num = num // 10
print('centena: {}'.format(num%10))
num = num // 10
print('milhar: {}'.format(num%10))
o meu ta mais simples, so lembrar, começa pelo 0
num = str(input('Digite um valor de 0 a 9999: '))
s = num[3]
s2 = num[2]
s3 = num[1]
s4 = num[0]
print('Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}'.format(s, s2, s3, s4))
@Guilherme Cavali qualquer numero abaixo de 1000 não funciona
eu fui fazer achando que era pra fazer só por string, fiz um monte de caminhos usando if, elif e else junto com a parte de chamar exclusivamente alguma parte da string, no final deu certo e vejo que poderia só ter usado os conceitos matematicos mesmo 🤡
Para mim foi o mais difícil, tinha colocado com índice negativo, porém não daria certo se viesse algum número com 1, 2 ou 3 dígitos.
Mas com esta solução usando // e %, nem imaginava a necessidade de usar estes operadores, mas com esta solução comecei a entender um pouco disso.
Eu usei zfill(4) pra completar com zeros, quando colocarem números menores!
isso, fazendo isso somente com strings, funciona o código.
numero = int(input('Digite um número: '))
num = str(numero)
num = num.zfill(4)
u = num[3]
d = num[2]
c = num[1]
m = num[0]
print(f'Analisando {numero}...')
print(f'Unidade: {u}')
print(f'Dezena: {d}')
print(f'Centena: {c}')
print(f'Milhar {m}')
De todos os exercícios até agora, esse foi o único que eu quebrei a cabeça pensando em formas de como resolver, é não consegui
Esse foi difícil 😴😊😊
Mais alguém fazendo o curso nesse ano?🤔
ate agr ta sendo o mais dificil
Eu
As aulas são foda! Mas este exercício achei difícil pra caralho (não sou programador).
Muito obrigado pelo vídeo, era essa formula que faltava para eu concluir o meu código.
Eu resolvi utilizando o trunc() apresentado na aula 8, mas achei muito interessante essa resolução matemática do Guanabara.
Esse confesso que não consegui fazer sozinho.
fiz por string:
n = input('informe um numero de 0 a 9999: ')
print('unidade: ', n[-1:])
print('dezena: ', n[-2:-1])
print('centena: ', n[-3:-2])
print('milhar: ', n[-4:-3])
funcionou.
Pode me explicar o pq desses dois pontos após o primeiro número? Eu também fiz por string e ficou assim:
num = input('Digite um número entre 0 e 9999: ')
num = num[::-1] + '000'
print(f'Unidades: {num[0]}
Dezenas: {num[1]}
Centenas: {num[2]}
Milhar: {num[3]}')
@@brasiliano3201 eu tinha feito assim tambem, porem quando eu digito numero menores ai que da pra ver que esta inclopleto dessa forma
Eu resolvi utilizando ele como string, porem eu preenchi os espaços com zero caso o numero nao tivesse 4 digitos. Tem um metodo de string q faz isso. O cod ficou assim:
num=str(input('Digite um numero de 0 a 9999: ')).zfill(4)
print('O numero digitado foi: {}',num)
print('Unidade: {}'.format(num[3]))
print('Dezena: {}'.format(num[2]))
print('Centena: {}'.format(num[1]))
print('Milhar: {}'.format(num[0]))
Testa ai :)
Estava tentando por string. Valeu pela indicação do método :)
cara essa foi show eu tive que acabar tendo que usar uns IFs (condições) achei paia pq eu não queria usar "if" pq o curso mesmo ainda não tinha abordado os ifs quando lançaram os desafios
Melhor resposta até agora!!! Show!!!
Fiz da mesma forma, só que tem um porem, se colocar espaço entre o números ele vai colocar vazio na resposta
Eduardo eu tentei esse comando e deu certo só q eu nao entendi akele zfill(4) vc pode me explicar oq e isso e pra que serve? '-' pf
eu fiz de outro jeito!
n = input('Digite um numero: ')
separar_espaco = ' '.join(n)
separando_lista = separar_espaco.split()
separando_lista.insert(0,0)
separando_lista.insert(1,0)
separando_lista.insert(2,0)
print(f'Unidade: {separando_lista[-1]}')
print('Dezena: {}'.format(separando_lista[-2]))
print('Centena: {}'.format(separando_lista[-3]))
print(f'Unidade de milhar: {separando_lista[-4]}')
O bom de vir nos comentarios é que cada um conseguiu fazer de um jeito! Show de bola!!!
É, fiz em strings, e realmente dava ruim com um número que não tivesse 4 dígitos. Como não entendi a lógica que você fez, tive q pegar o velho lápis e papel e fazer na unha os cálculos para entender essa lógica. Realmente, deu certo. Obrigado !!!
É possível fazer em str, mas tenq adicionar os '0' a esquerda com: num=('{:0>4}'.format(x))
x é o número digitado e 4 é a quantidade de dígito que vc irá usar, daí vai adicionar '0'(s) a esquerda do número digitado completando 4 digitos, a partir daí da pra usar str de boa
Nesse vídeo não apareceu a enquete.
kkkkkkkkkk acho que já era meio obvio pro guanabara as respostas
Esse foi o primeiro que mesmo vendo a solução eu não entendi O_o
@João xd depois q vc explicou me senti um idiota, tão simples, kkkkkkkkkkkkk vlw
@João xd obrigado, eu passei 5 horas quebrando a cabeça nesse exercício, muito obrigado msm
Pessoal, para quem ficou com dúvida eu fiz dessa forma:
n=input('Digite um número inteiro de 0 até 9999: ')
m=f'{n:0>4}'
print(f'Unidade: {m[3]}
Dezena: {m[2]}
Centena: {m[1]}
Milhar: {m[0]}')
Na segunda linha eu mando o programa ter 4 casas e preencher com 0 as casas vazias. Então se o número é 23 ele fica 0023. Depois na terceira linha eu só mando o programa dizer cada casa como se fosse um frase split. Lembrando que o
é só para pular de linha.
Fiz usando a mesma logica, porém queria me limitei a utilizar os comandos de string ensinados:
num = str(input('Digite um numero entre 0 e 9999: '))
num = num.replace(num, (4-len(num))*'0' + num)
print(num)
print('Numero Digitado: {}
Unidade: {}
Dezena: {}
Centena: {}
Milhar: {}'.format(num,num[3],num[2],num[1],num[0]))
@@leonardosextare5572 vc e maluco
Muito legal!
Opa, usei a sua forma e acrescentei algumas coisas como, se o número ter mais que 4 dígitos vc recebe uma mensagem de erro e,
se o número digitado ter menos que 5 números ele prossegue para a tela que mostra as unidades, dezenas, etc.
num = int(input('Digite um numero inteiro de 0 a 9999: '))
m = f'{num:0>4}'
if len(m) > 4:
print('ERRO: O valor digitado tem mais que 4 dígitos. Tente novamente.')
elif len(m) < 5:
print(f'Unidade: {m[3]}')
print(f'Dezena: {m[2]}')
print(f'Centena: {m[1]}')
print(f'Milhar: {m[0]}')
!(Lembrando que isso usado no código ainda não foi ensinado até a aula 09, eu só dei uma pesquisada na Internet pra completar)!
Muito obrigado, Guatavo Guanabara.
Avia feito no modo string, cheguei a ver o erro, porém não sabia/lembrava da formula matemática, mas entendi, executei e testei!
Eu fiz desse jeito:
pergunta = int(input('Digite um numero: '))
soma = 10000 + pergunta
resultado = str(soma)
uni = resultado[4]
dez = resultado[3]
cen = resultado[2]
mil = resultado[1]
print('Unidade: {}'.format(uni))
print('Dezena: {}'.format(dez))
print('Centena: {}'.format(cen))
print('Milhar: {}'.format(mil))
Ficou bom. Mas como a aula referente foi manupulação de strings, eu preferir usar apenas strings e listas. Olha ai:
n = str(input('Digite um número entre 0 e 9999: ')).strip()
print(f'Analisando o número {n}')
n = list(n)
n0 = ['0', '0', '0', '0']
n0[len(n):] = n
print(f'Unidade: {n0[-1]}')
print(f'Dezena: {n0[-2]}')
print(f'Centena: {n0[-3]}')
print(f'Milhar: {n0[-4]}')
@@gustavogama4971 CARACA!
@@Lukitax Não é nada demais mano, já tenho experiencia em outras linguagens de programação. Só um toque que eu te dou, é evitar esses tipos de "Gambiarras" em algoritmos futuros, porque se um assuario usa seu algoritmo de forma "errada", ( e os usuários sempre fazem isso... rs), o seu algoritmo buga. Tipo, se usuario colocar um numero maior que 10000, o seu algoritmo vai dar uma resposta errada, no meu não. Mas com o tempo vc vai aprendendo a evitar esses bugs.
@@gustavogama4971 Valeu pela dica meu mano!
transcendeu mlk
nem passou na minha cabeça essa parada de resto da divisão e ainda nem to entendendo como funcionou :(
Cara, eu peguei um papel e fiz as contas e consegui entender. Não sei se você ainda tem dúvida, mas vou tentar explicar(sou péssimo explicando):
Usaremos o número 1957 para fazer as contas... Este código que o Guanabara usou, poderia ser simplificado para isto(O resultado vai ser o mesmo, pode testar):
u = n % 10
d = n // 10 % 10
c = n // 100 % 10
m = n // 1000
u recebe o resto da divisão inteira entre 1957 e 10 --> 1957 // 10 = 195 (10x195 = 1950), o resto dessa divisão é 7, logo, a unidade é 7.
d recebe o resultado da divisão inteira entre 1957 e 10, esse resultado vai ser dividido por 10 novamente e pegará o resto dessa divisão, ficando assim: 1957 / 10 = 195(neste caso é o resultado da divisão inteira, não o resto) --> dividindo esse resultado por 10: 195 // 10 = 19 (19x10 = 190). Agora sim pegaremos o resto da divisão, que é 5. Logo, a dezena e 5.
c = Aqui é o mesmo processo anterior, só que dividindo por 100 --> 1957 // 100 = 19(resultado da divisão inteira). Agora faremos 19 // 10 = 1 (O resto dessa divisão inteira é 9). A centena é 9.
m recebe o resultado da divisão inteira entre 1957 e 1000 --> 1957 / 1000 = 1 (pronto, 1 é o milhar).
Obs: Lembre-se que divisão inteira pega apenas a parte inteira do número, diferente da divisão "normal" que daria valores com vírgula.
Espero ter ajudado, abraços :D
nem na minha
Eu ate comecei a fazer como string achei as unidades blz, so que quando chegou nos outros códigos ai travou tudo na cabeça e não consegui resolver mais nada. rsrsrs. mais também nem passou na cabeça de fazer pelo resto da divisão.
vlw mano n tinha entendido agr eu consegui
Eu também não. Achei o exercício bem difícil, já que o que foi explicado na aula 9 não viabiliza a resolução.
Sem matemática, manipulando apenas string:
num = input('Digite um número entre 0 e 9999: ')
# Formata a string com 4 espaços, alinhado à direita e completa com 0
num = '{:0>4}'.format(num)
print('Unidades: {}'.format(num[3]))
print('Dezenas: {}'.format(num[2]))
print('Centenas: {}'.format(num[1]))
print('Milhares: {}'.format(num[0]))
Fiz assim tbm!
Esse exercício não é difícil, só tem uma informação que ainda não havia sido dita e o professor deixou a explicação um pouquinho complicada. Mas de modo geral, ele fez uma divisão e usou um recurso do resto que permite mostrar o item mais à direita de um número. Por exemplo: em um número X o % 10 vai mostrar o número mais a direita após a vírgula, ou seja, em um número como 1253, o número mais a direita é 3 que vai ser a unidade. Aplicando essa linha de raciocínio, quando ele começa a dividir ele afasta a vírgula e consegue exibir o último número à direita, por exemplo: 1253//10 = 125,3 onde o 5 é o último número à direita da divisão inteira, representando as dezenas. O "% 10" é o que permite ver esse número.
Espero ter ajudado de alguma forma. Muito obrigado professor pelo conteúdo.
Uma dica muito válida é buscar materiais na internet explicando algumas lacunas da aula ou aprofundando o que foi dito, assim se ganha muita informação valiosa
Caramba... peguei pra fazer o exercício, fiz com 2 for loops e uma porrada de if conditions... me senti muito do burro vendo a solução, mas foi muito bom!
Eu sofri pra fazer e foi um pouco diferente, então segue a minha resolução.
1. Pedi para digitarem um número (a)
2. Garanti que o valor colocado fosse preenchido com 0 até chegar em 4 dígitos e pedi que fosse alinhado para a direita ({a:0>4}). Então se fosse digitado o valor 1, ele ficaria como 0001. Além disso, dei um split, pra que pudesse dividir na etapa seguinte.
3. Na parte do print, coloquei a primeira palavra que tinha dado o split (no exemplo do passo 2 seria [0001] e pedi o que queria. Exemplo, para a unidade foi {b[0][3]}, já que era a primeira palavra e o quarto digito. Para o milhar foi {b[0][0]} pq queria a primeira palavra e o primeiro digito.
a = input('Digite um número de até quatro digitos: ')
b = f'{a:0>4}'.split()
print(f'Unidade é: {b[0][3]}')
print(f'dezena é: {b[0][2]}')
print(f'centena é: {b[0][1]}')
print(f'milhar é: {b[0][0]}')
muito inteligente!
Gente, não se preocupem com esse exercícios por não terem entendido a parte matemática. Com estruturas condicionais é bem mais simples (inclusive penso que esse exercício deveria ser passado só depois desse assunto).
Uma das formas possíveis seria:
numero= input('Digite um número inteiro de 0 a 9999. ')
#Apaga os espaços a fim de não considerá-los na contagem.
formatado=numero.replace(' ','')
#O programa aparece a mensagem erro caso o usuário ultrapasse os 4 algarismos.
if len(formatado) > 4:
print('Erro. Só são permitidos números de 4 algarismos')
else:
if len(formatado)==4:
print('Milhar: {}'.format(formatado[0]))
print('Centena: {}'.format(formatado[1]))
print('Dezena: {}'.format(formatado[2]))
print('Unidade: {}'.format(formatado[3]))
if len(formatado)==3:
print('Centena: {}'.format(formatado[0]))
print('Dezena: {}'.format(formatado[1]))
print('Unidade: {}'.format(formatado[2]))
if len(formatado)==2:
print('Dezena: {}'.format(formatado[0]))
print('Unidade: {}'.format(formatado[1]))
if len(formatado)==1:
print('Unidade: {}'.format(formatado[0]))
Mesmo se vcs estiverem achando difícil olhando assim, tudo isso é muito simples, vcs vão ver quando estudar o assunto. Nesse caso, por exemplo, se o número for maior que quatro algarismos o sistema vai dar erro e os if's servem pra ele mostrar um resultado coerente para o tanto de algarismos. Assim, não vai acontecer um problema de 129 ser lido como 1290.
Não desanimem. Continuem firmes no estudo de programação. Estamos juntos nessa jornada. E obrigado ao Gustavo Guanabara por disponibilizar esse curso tão bom! ☺♥
Eu tinha pensado nisso tbm, mas aí o código fica muito grande
valeu por essa luz ai 🙌
Bom, so aprendi o que ele ensinou até agora, e lembro que uma aula ele ensinou a escrever o nome com sinal igual do lado ====Gustavo==== e dava pra colocar pra direita, esquerda ou centralizado com > ou < ou ^ ...pensando nisso fiz esse codigo
n = input('Escreva um número de 0 até 9999 ')
v = ('{:>4}'.format(n))
print('Unidade {}
Dezena {}
Centena {}
Milhar {}'.format(v[3], v[2], v[1], v[0]))
a unica parte que importa mesmo é v = ('{:>4}'.format(n))
lembra do exemplo? print('Bem vindo {:=^20}!'.format(name))
peguei esse comando da aula 7 aos 23:25 minutos e tirei tudo que não precisava...
Pensei a mesma coisa
Pensei na mesma coisa, mas nao lembrei dessa aula! Muito bom!
Boa Rafael! Eu também fiz dessa forma depois de consultar as anotações
Consegui, Recomendo que continuem os estudos, pois vai valer muito a pena.
Exercício 23:
nnum = int(input('Digite um numero: '))
num += 10000
n = str(num).strip()
print(f'A unidade: {n[4]}
A dezena: {n[3]}
A centena: {n[2]}
O milhar: {n[1]}')
Entender eu entendi 100%, mas nunca que eu iria imaginar isso na vida kkkkkkkkkkkkk, fiquei tentando diversos meios por mais de hora e só consegui vendo a resolução.
Como o outro coleguinha aqui nos comentário, também fiz do "jeitinho brasileiro"
num = input('Digite um número: ')
num2 = num.replace(num,'000'+num)
print(f'unidade: {num2[-1]}')
print(f'dezena: {num2[-2]}')
print(f'centena: {num2[-3]}')
print(f'milhar: {num2[-4]}')
Achei um modo que requer menos matemática e que pelo menos eu achei mais fácil e simples
num = int(input('Digite um número inteiro de 1 até 9999: ')) + 1000# Lê o número e adiciona 1000 nele, para que tenha as 4 casas necessárias.
strnum = str(num)# Trasforma o número em uma string para poder ser usado com os colchetes (se não me engano isso se chama indexação, ou algo assim).
print(f'Unidade: {strnum[3]}')# O número tem 4 casas por conta dos 1000 adicionados acima,
print(f'Dezena: {strnum[2]}')# então não existe problema caso o número digitado seja de menos de menos de 4 casas.
print(f'Centena: {strnum[1]}')
print(f'Milhar: {int(strnum[0]) - 1}')# trasforma a primeira casa do número em inteiro, e então subtrai 1 dele, para remover aqueles 1000 adicionados anteriormente.
Quem não entender algo, é só testar por si próprio. Até então não descobri nenhum erro nele
Edit: nas respostas tem um erro junto com uma solução
Esse código vai funcionar até o número 8999 e a partir de 9000 ele vai dar o resultado inesperado, pq o valor vai passar a ter 5 dígitos e não 4.
A única maneira que eu encontrei, sem usar a matemática que o guanabara mostrou é usando estrutura de repetição "if" (assim como o próprio guanabara citou no vídeo)
@@silviodossantosneto6665 se acrescentar 10000 ao invés de 1000, da certo sendo o milhar [1] ao invés de [0]
num = int(input('Digite um número inteiro de 1 até 9999: ')) + 10000
strnum=str(num)
print(f'unidade {strnum[4]}')
print(f'dezena {strnum[3]}')
print(f'centena {strnum[2]}')
print(f'milhar (strnum[1]}')
@@VashBSJ ah verdade, dá pra fazer isso
@@VashBSJ que solução inteligente!
obg amigo, passei mais de hora tentando fazer algo semelhante com .format, mas n vai de jeito nenhum
Outra forma:
n = input("Número: ")
variavel = 4-len(n)
novo = n.replace(n, "0"*variavel+n)
print("Unidade: ", novo[3])
print("Dezena: ", novo[2])
print("Centena: ", novo[1])
print("Milhar: ", novo[0])
Puts cara, custei mas acho que entendi.
---------------------------------------------------------------------------------------------------------------------------------------------
variavel = 4-len(n)
# 4 menos o número de caracteres.
-------------------------------------------------------------------------------------------------------------------------------------------
novo = n.replace(n, "0"*variavel+n)
# Trocando "n" por 0 vezes "variável" mais o próprio "n".
# Sempre multiplica a "varíável" por 0 pq se a casa no "n" não existir, ele imprime "0" nela, se ela existir, imprime o que está na casa.
@@brunocoelhosantos2236 eu aproveitei pra deixar isso que ele fez anotado no meu caderno, sinto q vai ser útil para a mim.
@@jhenniferazevedo7011 kkkkkkk mas ele editou. A resolução era de óutra forma, usando um tipo de lista. Mas tá valendo, talvez seja resolvido desse jeito mais pra frente.
Você é o verdadeiro gênio.
@@brunocoelhosantos2236 Isso mesmo. Para adicionar os zeros à esquerda quando o número do input tiver menos que 4 casas.
# Resolução por caminho de String
print('
A resolução abaixo será realizada por manipulação de string
')
num1 = float(input('Digite um número de 0 a 9999: '))
num1 = int(num1)
num1 = str(num1)
num2 = ('0000')
num12 = num2 + num1
num12 = ''.join(reversed(num12))
print(f'unidade: {num12[0]}')
print(f'dezena: {num12[1]}')
print(f'centena: {num12[2]}')
print(f'milhar: {num12[3]}')
Que aulas incríveis! Obrigado, professor! :)
Depois de um tempinho quebrando a cabeça, graças a Deus, está sendo possível compartilhar um código que usa mais manipulação de strings do que operações matemáticas.
Como o Guanabara passou esse exercício em outro vídeo, resolvi ele antes de ver este vídeo, tratando o número como string e usei uma série de If-else. Deu o mesmo resultado mas muito mais trabalho kkkk
Meta de trabalhar na área ainda em 2023!!!! hoje 18/12/22
"você sabe que os desafios estão ficando difíceis quando não consegue resolver sozinho" persistência!!!
EXERCICIO#023
numero = int(input('Informe um número: '))
uni = numero // 1 % 10
dez = numero // 10 % 10
cen = numero // 100 % 10
mil = numero // 1000 % 10
print(f"""Analizando o número {numero}
Unidade: {uni}
Dezena: {dez}
Centena: {cen}
Milhar: {mil}""")
Eita, tenho um concorrente então...
@@brandaum1959 n gosto de concorrência, prefiro me aliar com meus rivais
n = str(input('informe um numero'))
print('Unidade:{}'.format(n[0:1]))
print('Dezena: {}'.format(n[1:2]))
print('Centena:{}'.format(n[2:3]))
print('Milhar: {}'.format(n[3:]))
O problema é que dessa forma só vai funcionar se for um número entre 1000 e 9999, qualquer número de 3 dígitos vai bagunçar tudo.
@@victormeireles1906 Não, eu fiz parecido e funciona bem. Qualquer número que eu botar, ele vai
numero = str(input("Digite um número: "))
print(f'Unidade: {numero[3:4]}
Dezena: {numero[2:3]}
Centena: {numero[1:2]}
Milhar: {numero[0:1]}')
Eu fiz de um jeito mais simples pra mim e até que funcionou, acho que funciona ate com números maiores
Ficou assim:
n1 = str(input('Digite um número de 0 a 9999: '))
n = ('00000{}'.format(n1))
nu = n[len(n)-1]
nd = n[len(n)-2]
nc = n[len(n)-3]
nm = n[len(n)-4]
print('A unidade de {} é {}.'.format(n1, nu))
print('A dezena de {} é {}.'.format(n1, nd))
print('A centena de {} é {}.'.format(n1, nc))
print('A unidade de milhar de {} é {}.'.format(n1, nm))
Ao tentar resolver a atividade, tentei focar nas ferramentas de manipulação de texto da Aula 09. Foi um ótimo desafio! Também tentei considerar o caso do usuário incluir um número com decimais. Meu código ficou assim:
print(' Desafio 023 '.center(50, "="))
print()
n = str(int(float(input('Insira um número entre 0 e 9999:
'))))
print('-' * 50)
n = '0' * (4 - len(n)) + n
u = n[len(n) - 1]
d = n[len(n) - 2]
c = n[len(n) - 3]
m = n[len(n) - 4]
print('Unidade: {}'.format(u))
print('Dezena: {}'.format(d))
print('Centena: {}'.format(c))
print('Milhar: {}'.format(m))
Genial... nunca que pensaria fazer usando essa forma, na hora que fiz achei que tinha acertado de primeira HAHA, me faltou fazer mais testes ao "completar" ao completar o código...
Quando eu estava tentando fazer a parte matemática, eu pensei em usar expressão numérica, tipo ao tentar passar um número binário para decimal, mas não soube fazer isso no python, então decidi deixar na metodologia ensinada na explicação do vídeo.
Como já dizia a tradição, segue a maneira na qual eu fiz (maneira errada):
num = input('Diga um número de 0 a 9999: ')
unidade = num[3]
dezena = num[2]
centena = num[1]
milhar = num[0]
print('''Unidade: {}
Dezena:{}
Centena: {}
Milhar: {}'''.format(unidade, dezena, centena, milhar))
Tive MUITA dificuldade para fazer esse exercício. Pedi ajuda ao meu pai que é programador e pude aprender imensamente com a ajuda dele. Gostaria de compartilhar com vocês o que eu aprendi para que vocês também possam evoluir, assim como eu evoluí hoje.
Não pensei em fazer da forma matemática. Nem passou pela minha cabeça usar módulos, igual o Guanabara fez.
#Variável num que recebe um input
#Variável con que veio de 'conversão', pra converter o valor inteiro da variável num pra valor string (serviu para a validação feita mais à baixo)
num = int(input('Digite um número entre 0 e 9999: '))
con = str(num)
#Sabendo o básico de lógica, dá pra ler o código facilmente. "Se len(número de caracteres da variável) da variável con for igual à 1, então con recebe três zeros concatenando o valor de con."
if len(con) == 1:
con = ('000' + con)
#Aqui, se len da variável con for igual à 2, então con recebe dois zeros concatenando com o valor de con.
if len(con) == 2:
con = ('00' + con)
#E aqui, se len for igual à 3, recebe um zero concatenando o valor de con.
if len(con) == 3:
con = ('0' + con)
#Criei uma variável 'divisao' que recebe uma lista com os valores de con
divisao = list(con)
##Aqui vem a parte de validação. Mesmo após ter conseguido, ficou martelando na minha mente o que aconteceria se o usuário digitasse um número maior do que 9999. Então criei uma situação onde não se pode digitar um número maior que 9999, nem menor do que 0, senão retornará erro.
#Se variável num for maior ou igual à zero, E variável num for menor ou igual à 9999: execute todos os prints
if (num >= 0) and (num
seu pai é programador q dhr po
Krl esse me deu bug..
4:35 O professor é bom mesmo. Ele erra e corrige o erro explicando o porquê que ele errou. :)
Primeiro exercicio ate agora que não tinha ideia de fazer sem condição.
É IMPRESINAMENTE COMO UM PROGRAMADOR CONSEGUI PENSAR DESSA FORMA, EU SÓ CONSEGUIR DA PRIMEIRA FORMA, NUNCA TINHA PENSADO EM RESOLVER SÓ COM CALCULOS MATEMÁTICOS.
Fala galera, beleza? Vou deixar aqui minha resolução e explicação pra quem ainda não entendeu!!!
A operação % (módulo) por 10 é usada para obter o último dígito de um número. Quando dividimos um número por 10, o resto da divisão será o último dígito desse número.
# Por exemplo, consideremos o número 123. Se dividirmos 123 por 10, obtemos 12 como resultado inteiro e 3 como resto. O resto, nesse caso, é exatamente o último dígito do número original.
# Da mesma forma, se tivermos o número 9876 e fizermos a divisão por 10, obteremos 987 como resultado inteiro e 6 como resto. Mais uma vez, o resto é o último dígito do número original.
# Essa técnica é utilizada para extrair cada dígito de um número. Ao aplicarmos o operador % por 10 repetidamente, conseguimos obter os dígitos individualmente, começando pelo último dígito (unidade) e progredindo para os dígitos mais significativos (dezena, centena e assim por diante) em etapas subsequentes de divisão por 10.
#faça um programa que leia um numero de 0 a 9999 e mostre na tela cada um dos digitos separados
#:ex:9930 unidade dezena centena milhar
num = int(input('Digite um número: '))
unidade = num % 10 #resto=0
num = num // 10 #result=993
dezena = num % 10 #resto=3
num = num // 10 #result=99
centena = num % 10 #resto=9
num = num // 10 #result=9
milhar = num
print(f'A unidade é: {unidade}')
print(f'A dezena é: {dezena}')
print(f'A centena é: {centena}')
print(f'O milhar é: {milhar}')
print(type(num))
N fiz assim, só q do meu jeito eu vou ter que ultilizar espaços, veja :
n1=str(input('digite um numero: '))
a=n1.split(' ')[0]
y=n1.split(' ')[1]
x=n1.split(' ')[2]
w=n1.split(' ')[3]
z=n1.split(' ')[4]
print('digite zeros se acaso sobrar espaços vazios')
print('seu número tem %s dezenas de milhar!'%a)
print('seu número tem %s unidades de milhar!'%y)
print('seu número tem %s centenas!'%x)
print('seu número tem %s dezenas!'%w)
print('seu numero tem %s unidades!'%z)
Ett se eu quero o numero 44 vou ter q digitar 0 0 4 4
n = input('Informe um numero:')
nf = f'{n:>4}'
print(f'Analisando o numero {n}')
print(f'Unidade: {nf[3]}')
print(f'Dezena: {nf[2]}')
print(f'centena:{nf[1]}')
print(f'milhar: {nf[0]}')
nota fiscal
Eu já tinha postado os meus exercícios lá no vídeo da aula 9, mas vou colocar aqui para caso alguém queira ver como resolver com string sem precisar de nada que não foi aprendido até aqui:
print('=== LEITOR DE NÚMEROS ATÉ 9999 ===')
n = int(input('Digite um número até 9999: '))
print('== MÉTODO INT ==')
print('Unidade = {}'.format(n % 10))
print('Dezena = {}'.format((n // 10) % 10))
print('Centena = {}'.format((n // 100) % 10))
print('Milhar = {}'.format(n // 1000))
print('== MÉTODO STRING ==')
n = '000' + str(n) # para que possamos escrever 1, 23 ou 395
print('Unidade = {}'.format(n[-1])) # Também daria pra usar n[len(n)-1]
print('Dezena = {}'.format(n[-2]))
print('Centena = {}'.format(n[-3]))
print('Milhar = {}'.format(n[-4]))
Eu resolvi usando strings, testem ai e me digam se da certo:
n = input("Digite um número entre 0 e 9999: ").strip()
t = len(n.zfill(4))
print('Unidade: {}'.format(n.zfill(4)[t-1]))
print('Dezena: {}'.format(n.zfill(4)[t-2]))
print('Centena: {}'.format(n.zfill(4)[t-3]))
print('Milhar: {}'.format(n.zfill(4)[t-4]))
Não precisar usar o STRIP ai não. Neste caso ele não serve pra nada. ... Boa solução!!!
Um jeito mais facil ainda.
numero = str(input("Digite um numero de 1 a 9999: "))
print("A casa do milhar vale:, ", numero[0])
print("A casa da centena vale: ", numero[1])
print("A casa da dezena vale: ", numero[2])
print("A casa da unidade vale: ", numero[3])
Salvou minha pele Profº !!! Como sempre!!!! O meu exercício é outro mas vc me deu uma idéia bacana!!! OBG
Muito interessante as formas encontradas! Segue minha contribuição:
num = int(input('Digite um número de 0 a 9999: '))
num = format(num, "04d")
print(f'''
Unidade: {num[-1]}
dezena: {num[-2]}
centena: {num[-3]}
milhar: {num[-4]}
''')
trolo legal , tava ensinando coisas de string e pedi um ex de matemática hehehe
Achei o mesmo e o seu comentário foi o único que eu estava à procura, pois isso foi o mais frustrante e ninguém comentou: O exercício de manipulação de string não teve nada, por isso terá induzido muita gente em erro
@@PedroRodrigues54 Mas dá pra transformar o número em string e manipular do mesmo jeito. Só que é uma gambiarra
@@henriqueaurelio8117 Exatamente!
@@henriqueaurelio8117 Então, mas essa "gambiarra'' dá um erro fudido. Eu fiz em string e tal, mas só funciona quando tem 4 algarismos
Fiquei um tempão tentando fazer por string sem usar condicional ou laço de repetição e não consegui e aí a resolução é aritmética... rsrs
Ainda gostaria de saber se alguém fez sem aritmética, condicional ou laço ou se é impossível mesmo.
Gaya, vi seu comentário e pensei em um jeito de fazer só com string. Fiz com condicional, mas acho que
# Assim garanto que se for um valor pequeno não tenho problema, pois só vou pegando pelo final
num = '000' + str(input('Digite um número: '))
length = len(num)
print(f'unidade: {num[length - 1]}')
print(f'dezena: {num[length - 2]}')
print(f'centena: {num[length - 3]}')
print(f'milhar: {num[length - 4]}')
Esse exercicio eu achei dificil!
Nossa gostei muito desta solução matemática, entendi a logica, mais vou rever algumas vezes para não esquecer
Esse eu não consegui, mas vi a resolução, e tentei, refiz ele algumas vezes, e agora acredito que em questões como essa eu consigo resolver
Mas havia outra forma de fazer esse dever sem que precisasse entender conceitos matemáticos que são complicados para a totalidade do público que quer apenas aprender programação. Como você havia dito, não é só a galera de exatas que precisa aprender a programar, e esse dever é uma barreira gigante para quem não tem esses conceitos matemáticos tão firmes na mente. O problema poderia ser resolvido com o comando que uma str deveria ter quatro caracteres e o número deveria se posicionar na direita, e quando ele não tivesse estes caracteres, espaços seriam adicionados na esquerda do número. Veja meu código:
1- num=str(input('Digite um número até 9999: '))
2- num1=('{:>4}'.format(num))
3- print('O número digitado foi: {}'.format(num))
4- print('Ele contêm {} unidade(s)
Ele contêm {} dezena(s)
Ele contêm {} centena(s)
Ele contêm {} milhar'.format(num1[3],num1[2],num[1],num[0]))
5- input()
Na linha de comando 2 está o comando que eu falei entre as chaves. E não se espantem, ele já fez isso com o comando PRINT, apenas coloquei dentro de uma variável para que a str seja analisada de forma descente posteriormente, sem necessariamente você precisar ter conceitos matemáticos
Quando coloca um número que não tenha 4 caracteres o código buga :(
Eu fiz algo semelhante:
num = input('Digite um número de 0 a 9999: ')
num1 = '{:0>4}'.format(num)
uni = len(num1) - 1
dez = len(num1) - 2
cen = len(num1) - 3
mil = len(num1) - 4
print('Você digitou o número {}.'.format(num1))
print('unidade: {}'.format(num1[uni]))
print('dezena: {}'.format(num1[dez]))
print('centena: {}'.format(num1[cen]))
print('milhar: {}'.format(num1[mil]))
Não dá liga se o numero tiver menos de 4 dígitos.
Aqui vai meu código usando em string:
n=str(input('Digite um número de 0 a 9999:'))
x=(5-len(n))*'0'+n
print('unidade:',x[4])
print('dezena:',x[3])
print('centena:',x[2])
print('milhar:',x[1])
Mano, n entendi como esse baguin funciona
da pra explicar pf?
Seguinte, pra quem não entendeu tudo bem. Eu tambem não tinha entendido de começo, eis a lógica:
Tu pega qualquer número e faz a divisão inteira, no nosso exemplo aqui vai ser 1543.
Vamo direto pra dezena pra ficar mais simples,
x = int(1543) #Nosso número
Dezena = x//10%10
Então vamo pensar nessa linha ae de cima, primeiro nosso número vai ser dividido inteiro por dez
no caso toda unidade vai ser descartada, pois divisão inteira não retorna resto, e unidade não é divisivel por 10.
Nosso número virou 154, agora vem a divisão que mostra o resto, 154% 10 (na linha do código) ao contrário da
divisão inteira que retirou a unidade agora vai retirar a centena (5) e o milhar (1) mostrando o que supostamente
seria a unidade, mas já que a operação passada retirou a unidade agora vai mostrar como resultado a dezena.
Divisão inteira por 10 retira completamente as unidades, se for por 10 as unidades, por 100 as dezenas, por 1000
as centenas já que nenhum número menor do que o da divisão passa, 99//100 não passa dezena já que 99 (a maior dezena)
é menor que 100(a menor centena),
Esse foi o primeiro exercício em que eu realmente apanhei kkkk
fiz a unidade utilizando apenas o módulo e também funcionou
unidade = numero % 10
Esse exercício me ferrou demais. Pq eu tentei fazer de acordo com a aula KKK Depois que eu percebi que tipo, pqp. E mesmo assim, ainda tive dúvidas, mas estamos ai pra isso.
esse foi o único exercicio que foi total TROLLAGEM, olha desafios sobre manipulação de texto mas pra ficar direito toma uma divisão marota de matemática pra resolver pq com string fica uma bosta, foi o famoso olha que recursos legais que não funcionam como eu prometi vc tinha que lembrar de matemática bruta pra resolver kkkkk
simmmmmmm. KKKKKK pensei o mesmo, era pro exercício estar nas aulas de operadores aritméticos
Exatamente. Nossa véi, que frustrante.
@@guilhermesilva-um2zb é, mas é de 0 a 9999, não de 1000 a 9999, se a pessoa digitar 23 vai dar erro
@@O.Generico NOSSAAAAA, É VERDADE CARA. MOSQUEI MT, VALEU PÔ.
@@guilhermesilva-um2zb relaxa, tive a mesma ideia que tu de primeira hahahaha
Gente, da pra fazer com só 3 linhas:
esse "f" que eu boto antes das aspas simples é tipo o .format só que mais prático, dai eu digito direto o que eu quero que a apareça entre chaves {}
num = input('Digite um número de 0 a 9999: ')
num = (f'{num:0>4}')
print(f'Unidade: {num[3]}
Dezena: {num[2]}
Centena: {num[1]}
Milhar: {num[0]}')
Esse "num = (f'{num:0>4}')" vem do conteúdo de outras aulas, com essa linha eu garanto que sempre haverão 4 caracteres (assim não dá aquele erro que o Guanabara mostrou) e que ,se no número fornecido tiver menos que 4 caracteres, a quantidade que falta será preenchida com 0's.
Pode copiar e colar pra testar que dá certo! E se você mudar o 4 dessa linha num = (f'{num:0>4}') você pode descrever quantas casas vc quiser! Só precisa printar com a posição certa (dezena de milhar, centena de milhar, unidade de milhão, etc)
EU TE AMO!
Só uma dúvida, o "num:0>4" é mencionado em qual aula? Entendi o conceito e funcionou certinho, mas queria saber aonde vc aprendeu essa função
@@isabellaoshima5743 Vish n lembro mais n kkkk
Você deu uma dica na aula, que algum exercício usaria alguma função + r (direita).. encanei que era esse exercício e resolvi ele assim, usando o "justificar à direita":
n = str(input('Digite um número: '))
n2 = n.rjust(4, '0')
print('A unidade é {}'.format(n2[3]))
print('A dezena é {}'.format(n2[2]))
print('A centena é {}'.format(n2[1]))
print('O milhar é {}'.format(n2[0]))
nunca pensaria nisso sozinha mas a sacada é genial
Modo que eu fiz:
*numero = int(input('Digite um valor inteiro de 0 a 9999: '))*
*milhar = str(numero // 1000)*
*centena = str(numero // 100)*
*dezena = str(numero // 10)*
*unidade = str(numero // 1)*
*molde = [milhar[len(milhar) - 1], centena[len(centena) - 1], dezena[len(dezena) - 1], unidade[len(unidade) - 1]]*
*print(f'Unidade: {molde[3]}
Dezena: {molde[2]}
Centena: {molde[1]}
Milhar: {molde[0]}')*
Como não foi mencionado antes que a saída deveria ser um int , fiz assim:
n = str(input('Digite um numero de 0 a 9999: '))
print(f'Unidade: {n[-1 : ]}')
print('Dezena: {}
Centena: {}'.format(n[-2 : -1], n[-3 : -2]))
print('Milhar: {}'.format(n[-4 : -3]))
Não precisa de matemática.
num = '000'+input('Informe um numero:
').strip()
print('Unidade: {}'.format(num[-1]))
print('Dezena: {}'.format(num[-2]))
print('Centena: {}'.format(num[-3]))
print('Milhar: {}'.format(num[-4]))
Mandou bem!
Muito bom! Parabéns!!
não entendi pq vc colocou "num[-1]" "num[-2]" etc... me explicaaa
@@eduardoribeiro5573 [-1] pega o último digito, [-2] o penúltimo, [-3] o antepenúltimo e assim por diante! =)
Gostei da resolução, embora você tenha usado conceitos que o professor não ensinou e, neste caso, seria bem mais usual/intuitivo usar condicionais.
De todos os desafios até agora, esse foi o que mais tive dificuldades.
Raciocínio matemática nota 1000!!! Quebrei muito a cabeça pra tentar chegar numa solução possível para o desafio 023...
Segue uma solução para o problema, utilizando os recursos que estudamos até agora, que é bem mais simples (consiste em adicionar 4 zeros no início do número, a esquerda/sem valor, não correndo o risco do erro no programa quando o usuário digitar um número com menos de 4 casas decimais):
#Faça um programa que leia um número de 0 a 9999 e mostre na tela cada um dos dígitos separados
#Ex: 1834 => unidade 4 dezena 3 centena 8 milhar 1
digitado = input('Digite um número de 0 a 9999: ')
num = '0000'+digitado
print('A unidade do número é {}.'.format(num[-1]))
print('A dezena do número é {}.'.format(num[-2]))
print('A centena do número é {}.'.format(num[-3]))
print('O milhar do número é {}.'.format(num[-4]))