Ir ao conteúdo

Python PYTHON - Como faço if para se um valor for inteiro ou racional?


Ir à solução Resolvido por Imakuni,

Posts recomendados

Postado

Para aprendizagem de python, estou tentando fazer um projeto onde determina-se dois números inteiros e a partir da divisão entre eles, o programa acusa ser inteiro ou racional

n1=int(input("Insira um numero"))

n2=int(input("Insira um numero"))

r1=n1/n2

if r1 == int:

  print("Numero inteiro")

else:

  print("Numero racional")

o que eu coloco no if para funcionar?

Postado

Olá, José!

 

Bem, fiz uns testes aqui e vi que você deve colocar um argumento dentro do método. Você fez correto, o método INT são para números inteiros, que dão divisões inteiras. Para você saber se um número é racional, devemos utilizar FLOAT.

 

Segue o código:

 

n1=int(input("Insira o primeiro número: "))

n2=int(input("Insira o segundo número número: "))

r1=n1/n2

if r1 == int(r1):
    print("Número inteiro")

elif r1 == float(r1):
    print("Número racional")

else:
    print("O que é isso?")

 

 

  • Obrigado 1
  • Solução
Postado

Lembre que um inteiro pode ser escrito como um racional com 0 na parte decimal. Por exemplo, 12, é a mesma coisa que 12.000, em termos de matemática.

 

A partir daí, você pode pegar o que for mais conveniente para seu programa. Você pode ver se INT(r1) é igual a r1, o que significaria que é um número inteiro. Ou se você precisar da parte decimal para alguma outra coisa, você pode fazer r1 - INT(r1) e verificar se esse valor é igual a 0; se for, é um inteiro, e se não, não.

 

16 minutos atrás, noB disse:

Bem, fiz uns testes aqui e vi que você deve colocar um argumento dentro do método. Você fez correto, o método INT são para números inteiros, que dão divisões inteiras. Para você saber se um número é racional, devemos utilizar FLOAT.

Esse tipo de solução não é muito boa... até dá para fazer em um programa mais simples, mas depende de você ter certeza que em nenhum momento sua variável virou um float e ficou assim, o que vai dependender de tudo que foi feito antes dela, bem como características de diferentes linguagems que podem ou não alterar dinamicamente a forma como as variáveis são declaradas.

 

E de qualquer forma, também não ajuda o aprendizado. Tá, você tem uma função que diz se é FLOAT ou INT.... mas qual era mesmo a mágica voodoo que essa função faz para saber isso?

  • Obrigado 2
Postado
7 minutos atrás, Imakuni disse:

Esse tipo de solução não é muito boa... até dá para fazer em um programa mais simples, mas depende de você ter certeza que em nenhum momento sua variável virou um float e ficou assim, o que vai dependender de tudo que foi feito antes dela, bem como características de diferentes linguagems que podem ou não alterar dinamicamente a forma como as variáveis são declaradas.

Entendi, Imakuni... Eu,como ele, ainda sou um estudante de Python...
A solução que tinha visto foi essa

 

Mas de qualquer forma, como seria o certo? Em se falando de código...

 

Pelo o que você disse 12 = 12.000, sim é verdade, mas a partir do ponto que coloco int, ele não pega aqueles 0, correto?

Postado
agora, noB disse:

Entendi, Imakuni... Eu,como ele, ainda sou um estudante de Python...
A solução que tinha visto foi essa

 

Mas de qualquer forma, como seria o certo?

Veja acima, eu dou um exemplo de como fazer esse teste em alto nível.

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...