Ir ao conteúdo
  • Cadastre-se
camilla zuba

Python programa em Python que recebe um número inteiro e imprime seu dígito das dezena

Posts recomendados

Me ajudem ? Foi proposto este exercício:

Faça um programa em Python que recebe um número inteiro e imprime seu dígito das dezenas. Observe o exemplo abaixo:

Exemplo 1:

Entrada de Dados:

Digite um número inteiro: 78615

Saída de Dados:

O dígito das dezenas é 1

Exemplo 2:

Entrada de Dados:

Digite um número inteiro: 2

Saída de Dados:

O dígito das dezenas é 0

Dica: O operador "//" faz uma divisão inteira jogando fora o resto, ou seja, aquilo que é menor que o divisor. O operador "%" devolve apenas o resto da divisão inteira jogando fora o resultado, ou seja, tudo que é maior ou igual ao divisor.

 

 

Estou fazendo deste jeito:

n = int(input("Digite um número inteiro: ")) 
print(n) 
d = (n // 10) % 10 
print("O dígito das dezenas é: %d" % d) 

 

Mas fala que esta errado! No que estou errando ? o que faço?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para postar códigos sempre use a tag CODE apertando o botão <> no topo do campo de resposta. E sempre ajuda também postar qual foi o erro que o interpretador acusou no programa.

 

Tente sem os acentos nas palavras:

n = int(input("Digite um numero inteiro: ")) 
print(n) 
d = (n // 10) % 10 
print("O digito das dezenas e: %d" % d)

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Olá Camilla.

O erro está na linha:

print ("O digito das dezenas e: %d" % d)

 

Deveria ser escrito:

print ("O dígito das dezenas e: ", d)

 

Precisa separar o texto da variável utilizando vírgula.

Para a resolução de seu exercício não há a necessidade da segunda linha, visto que não foi pedido que se imprima na tela o número inteiro digitado.

 

Espero ter ajudado.

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Everton Mimura não há erro nessa linha, ela funciona corretamente como está, e nesse caso imprime igual separando por vírgula. Dê uma pesquisada em modos de formatação de strings no Python.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
1 hora atrás, isrnick disse:

@Everton Mimura não há erro nessa linha, ela funciona corretamente como está, e nesse caso imprime igual separando por vírgula. Dê uma pesquisada em modos de formatação de strings no Python.

Tem razão. Irei pesquisar. Obrigado!

Na verdade rodei o código dela com acentos, igual está, e funcionou também. Talvez seja somente tirar o  "print(n)" da segunda linha que o corretor do curso irá aceitar como certo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Everton Mimura Que corretor? Curso? A camilla criou esse tópico há quase 1 ano, e pelo que diz no perfil dela ela não acessou esse fórum desde então, logo eu imagino que ela já conseguiu resolver o problema a muito tempo ou não se importa mais sobre essa dúvida.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, sabem me dizer porque a solução necessita usar o a divisão pelo número 10? É uma pergunta primária, sorry!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você faz quando quer mover para a esquerda o ponto/vírgula em um número? Divide por 10...

 

1234 / 10 = 123.4

 

Mas essa é uma divisão racional, e resulta em um número racional.

 

 

Entretanto se fizermos a divisão inteira por 10 o que acontece é que eliminamos o último dígito, pois não consideramos parte fracionária em números inteiros.

 

1234 // 10 = 123

 

 

Em divisão inteira obtém-se o resultado (ou quociente) e sobra um resto (e usamos o resto da divisão inteira por 10 para obter o último digito do número dividendo).

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@isrnick

 

Estou fazendo o mesmo exercicio e o script que usei foi esse:

 

n = int (input("Digite um número inteiro: ")) 
d = (n // 10) % 10 
print()
print("O dígito das dezenas é:", d)

e funcionou, espero ter ajudado.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@camilla zuba tudo bem? 
Percebo que no último PRINT você coloca % d  , tente retirar o % e adicionar uma , seria: , d

No caso fiz assim:
889207051_exerciciosCUsersCristiano.YAHOAHPycharmProjectsexercicios-.._023.py-PyCharm.jpg.6c6658eaabdde990d94e982925ab9f10.jpg
OBS:

Uma vez que não utilizarei os números resultantes em um futuro próximo, optei por mante-los dentro do print mas poderia criar variáveis que armazenassem seus resultados para o futuro.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
morango=int(input("Digite um número inteiro:"))

laranja=int(morango%10)

melancia=int(morango-laranja)

limao=int(melancia/10)

resultado=int(limao%10)

print("O dígito das dezenas é", resultado)

Gente, não liguem pros nomes das variáveis, eu sou de humanas...rs Mas roda certinho! :)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu testei e o programa roda certinho, da o resultado esperado. Porém, esta é uma questão do curso do IME, no coursera que eu também fiz. Caso seja o caso da colega, o programa que eles montaram para corrigir os exercícios  admite qualquer variação na resposta como espaços a mais, saídas, e pontuações, como um erro. Eles pediram:

 

Saída de Dados:

O dígito das dezenas é 0

 

No caso, tem uma saída a mais que é a linha 2,  e o ' : ' no último print deve ter sido rejeitado. É o que eu imagino, já que o programa roda liso.. 

 

Espero ter ajudado!

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@camilla zuba

pode ser tão simples como isso:

num = input()
print(num[len(num)-2])

Ajustando para ficar mais fácil de compreender:

num = input('Digite um número: ')
if len(num > 1):
    print(f'O digito das desenas é {num[len(num)-2]}')
else:
    print(f'Não há digito das desenas')

Basicamente eu li o input como uma string e retirei o penúltimo dígito.

 

Aqui está um terceiro código caso algum espertinho tente burlar o programa escrevendo um numero flutuante:

from math import trunc
num = trunc(float(input('Digite um número: ')))
num = str(num)

if len(num > 1):
    print(f'O digito das desenas é {num[len(num)-1]}')
else:
    print(f'Não há digito das desenas')

aqui eu usei a função trunc() da biblioteca math. Sua função é remover o ponto flutuante e deixar apenas a parte inteira.

Exemplo:

num = 1.4245

trunc(num)

saída: 1

depois eu converto o input para uma string e faço o processo anterior.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/04/2020 às 16:42, GrowingSky disse:

@camilla zuba

pode ser tão simples como isso:


num = input()
print(num[len(num)-2])

Ajustando para ficar mais fácil de compreender:


num = input('Digite um número: ')
if len(num > 1):
    print(f'O digito das dezenas é {num[len(num)-2]}')
else:
    print(f'Não há digito das dezenas')

Basicamente eu li o input como uma string e retirei o penúltimo dígito.

 

Aqui está um terceiro código caso algum espertinho tente burlar o programa escrevendo um numero flutuante:


from math import trunc
num = trunc(float(input('Digite um número: ')))
num = str(num)

if len(num > 1):
    print(f'O digito das dezenas é {num[len(num)-1]}')
else:
    print(f'Não há digito das dezenas')

aqui eu usei a função trunc() da biblioteca math. Sua função é remover o ponto flutuante e deixar apenas a parte inteira.

Exemplo:

num = 1.4245

trunc(num)

saída: 1

depois eu converto o input para uma string e faço o processo anterior.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

N=int(input("Digite o num inteiro"))

Print(N)

Div=(N/10)%10

Dig=Div

Print("O dig das dezenas é ", dig)

 

Tem que prestar muita ATENÇÃO nas vírgulas (,) e nos (), senão da errado o resultado.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!