Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Meu código não fala se é menor ou maior de idade

print("**") print("bem-vindo a geração de cadastros")

numero_de_cadastros = 3

for cadastros in range (1,4): print("cadastro {} de {}". format(cadastros, numero_de_cadastros)) nome = input("digite seu nome:") print("senhor",nome) idade = input("informe sua idade:") print("muito bem SR.", nome, "você tem", idade, "anos")

idade_base1 = 18
idade1 = int (idade)
idade_base = int(idade_base1)

igual = idade_base == idade1
maior = idade_base > idade1
menor = idade_base < idade1


if (igual):
    print("pode prosseguir", nome)
    break

else: if maior: print("você é menor de idade") elif menor: print("você é menor de idade")

4 respostas
solução!

Bom dia Luigge tudo bem?

Olhando seu código, se eu copiei certo vi que o problema está no bloco if.

Os blocos de código If, Elif Else são chamados de condicionais, ou seja eles executam o código que está abaixo deles e indentado se a condição que eles pedem for verdadeira. Se for falsa ele pula esse código sem executar e vai direto para o else (se tiver sido declarado).

Vou escrever em pseudo código para tentar ser mais claro:

idade = 42
nome = 'Bruno'

se idade é igual a 18:
    imprimir("Pode prosseguir", nome)
se idade é menor que 18:
    imprimir("Você é menor de idade")
ou:
    imprimir("Você é maior de idade")

Em python ele não aceita essa declaração literal do que ele precisa fazer ou não, para funcionar precisamos escrever uma língua que ele entenda que é utilizando a sintaxe python com todas as suas palavras-chave e caracteres. Então teremos o seguinte código:

idade = 42
nome = 'Bruno'

if idade == 18:
    print("Pode prosseguir", nome)
elif idade < 18:
    print("Você é menor de idade")
else:
    print("Você é maior de idade")

Repare que a última condição não precisamos explicitar nada pois já esgotamos as possibilidades que queremos nas linhas anteriores. Nossa condição aqui é Se a idade é igual a 18, se é menor que 18 ou maior que 18 então declarando 2:

  • Igual a 18
  • Menor que 18

O restante deste teste o python já subentende.

O Break que você utilizou geralmente utilizamos em loops que são blocos de código que serão repetidos um número de vezes ou até uma condição ser alcançada. O python vai ficar executando repetidas vezes um código que você escreveu dentro desse loop até ele encontrar o break ou uma condição que você também pode declarar ser alcançada. Como nessas linhas especificamente queremos que o python teste a idade não é interessante utilizar o break.

Não sei se fui bem claro.

Um dos problemas que notei é que minhas variáveis ficaram amarelas, sabe o porque ?

As variáveis de maior e menor

Luigge estas variáveis (igual, maior e menor) você não precisa mais, já que você escreveu sua condição dentro do IF:

if idade1 == 18:
    print("Pode prosseguir", nome)
elif idade1 < 18:
    print("Você é menor de idade")
else:
    print("Você é maior de idade")

Onde está idade1 == 18 é a mesma condição que estava guardada na sua variável igual. Sendo assim aqui você não precisa mais delas. Mas nada impede você de fazer da forma que estava fazendo, usando as variáveis. Ai no caso ao invés de declarar a condição no bloco If e Elif, você declara a variável:

igual = idade1 == idade_base
maior = idade1 > idade_base
menor = idade1 < idade_base

if igual:
    print("Pode prosseguir", nome)
elif menor:
    print("Você é menor de idade")
else:
    print("Você é maior de idade")