Pular para o conteúdo

Problemas no laço IF [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Problemas no laço IF [RESOLVIDO]

Enviado em 10/09/2016 - 19:32h

Amigos, compilei um código MDC, e funcionou perfeitamente, entretanto toda vez que retiro a tralha # do laço IF, dá o seguinte erro:

Tenho nenhuma experiencia com python,
A minha pergunta é, onde estou errando?

File "./tf.py", line 28
print("São primos entre si %d,%d" %(n,m))
^
IndentationError: expected an indented block



#!/usr/bin/python
# -*- coding: utf-8 -*-

def mdc(n,m):

print ( " Programa que lê um dois inteiro positivos n e m e imprime o máximo divisor comum (mdc) de n e m.")

anterior = n
atual = m
resto = anterior % atual

while (resto != 0):

anterior = atual
atual = resto
resto = anterior % atual
#end while
return atual

def main():

# leia o valor de n
n = int(input("Digite o valor de n (n > 0): "))
# leia o valor de m
m = int(input("Digite o valor de m (m > 0): "))
num = mdc(n,m)
#AO RETIRAR A TRALHA, DÁ PAU
#if (num == 1):
print("São primos entre si %d,%d" %(n,m))

main()




Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Problemas no laço IF

Enviado em 10/09/2016 - 21:39h

amigo, eu não entendo de python, mas parece que deu um erro de identação:
IndentationError: expected an indented block
abraços!
edit:
vc definiu a variavel num???

3. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 10/09/2016 - 22:59h

É que o programa dele perdeu a indentação ao colar o código no fórum.
Tá chatinho de ler ...

Precisaria colocar em:

    if a<b:
analise_isto()
else
analise_aquilo()


Aperte o botão verde QUOTE e veja como foi feito.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

4. Re: Problemas no laço IF

Enviado em 11/09/2016 - 00:30h

Python me chamou a atenção justamente por ter esta sintaxe bonita sem o uso de '{}' para isolar blocos de comando, como tudo tem seu preço a falta de '{}' torna a linguagem escrava da indentação para dividir os blocos de comando.

indentação > https://pt.wikipedia.org/wiki/Indenta%C3%A7%C3%A3o

5. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 11/09/2016 - 05:26h

Provavelmente você não está identando corretamente depois do if

6. Re: Problemas no laço IF

Enviado em 11/09/2016 - 08:08h

Olá. Coloquei a tag code no seu código para ficar melhor de ver aqui.
Quanto ao problema, faltou identar.
Sabe como você fez la na função mdc, recuando o bloco?
O if também é um bloco então o que vem depois dos dois pontos do if tem que estar recuado.
Faça como fez na função mdc e recue o print, não sei se você está usando 4 espaços como recomenda a PEP-8 ou está usando tab, mas mantenha o padrão e faça o mesmo no if.
Fica assim:

#!/usr/bin/python
# -*- coding: utf-8 -*-

def mdc(n,m):
print ( " Programa que lê um dois inteiro positivos n e m e imprime o máximo divisor comum (mdc) de n e m.")
anterior = n
atual = m
resto = anterior % atual

while (resto != 0):
anterior = atual
atual = resto
resto = anterior % atual
#end while
return atual


def main():
# leia o valor de n
n = int(input("Digite o valor de n (n > 0): "))
# leia o valor de m
m = int(input("Digite o valor de m (m > 0): "))
num = mdc(n,m)
if (num == 1):
print("São primos entre si %d,%d" %(n,m))


main()


Abraço.

7. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 11/09/2016 - 08:17h

lipman escreveu:

amigo, eu não entendo de python, mas parece que deu um erro de identação:
IndentationError: expected an indented block
abraços!
edit:
vc definiu a variavel num???


Python não precisa que a variável seja declarada . ;-D

8. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 11/09/2016 - 08:18h

Lisandro escreveu:

lipman escreveu:

amigo, eu não entendo de python, mas parece que deu um erro de identação:
IndentationError: expected an indented block
abraços!
edit:
vc definiu a variavel num???


Python não precisa que a variável seja declarada antes de usar. O problema é só identação mesmo. ;-D



9. Problemas no laço IF

Enviado em 12/09/2016 - 20:28h

Valeu, obrigado.

Consegui resolver.

substitui dev main():

por if __name__ == '__main__':



Topico encerrado

10. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 12/09/2016 - 20:29h

maninho, foi so dar um espaço antes do print, pra ele ficar dentro do bloco if, tipo assim: (sou novo aqui, entao nao sei colocar tudo bonitinho ainda)


#!/usr/bin/python
# -*- coding: utf-8 -*-

def mdc(n,m):

print ( " Programa que lê um dois inteiro positivos n e m e imprime o máximo divisor comum (mdc) de n e m.")

anterior = n
atual = m
resto = anterior % atual

while (resto != 0):

anterior = atual
atual = resto
resto = anterior % atual
#end while
return atual

def main():

# leia o valor de n
n = int(input("Digite o valor de n (n > 0): "))
# leia o valor de m
m = int(input("Digite o valor de m (m > 0): "))
num = mdc(n,m)
#AO RETIRAR A TRALHA, DÁ PAU
if (num == 1):
print("São primos entre si %d,%d" %(n,m))

main()

11. Re: Problemas no laço IF [RESOLVIDO]

Enviado em 12/09/2016 - 21:07h

engwsp escreveu:

Valeu, obrigado.

Consegui resolver.

substitui dev main():

por if __name__ == '__main__':



Topico encerrado


Parabéns! Usar o dunder é mais pythônico que chamar simplesmente a função, embora os dois funcionem.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder