How to make the user re-enter the numbers at the beginning of the program?

Asked

Viewed 85 times

0

  • Create a program that calculates two values. (DONE)
  • Ask if the user wants to know if the sum, subtraction, multplication or the average of the values. (DONE)
  • Then tell if it is even or odd if the user wants it (in addition, subtraction and multiplication options). (DONE)
  • And ask the user if he wants to type again (OTHER CALCULATION OPTIONS (DONE) // AND OTHER <---- NUMBER OPTIONS (IS WHAT IS LEFT TO DO).
print('''\033[4;33mOlá, Sr. Usuário!\033[m
\033[4mDigite dois valores abaixo para fazer os cálculos:\033[m''')
print('\n')

n1=int(input('\033[1;34mDigite um valor inteiro qualquer: \033[m'))
n2=int(input('\033[1;31mDigite outro valor inteiro qualquer: \033[m'))
pergunta1=1
pergunta2=1
pergunta3=1

while pergunta1!='A' or 'B' or 'C' or 'D' or 'E':

    pergunta1=str(input('''\033[4mDeseja fazer o que com tais valores? Veja as opções abaixo.\033[m
    Opção \033[1;41mA\033[m - Somar.
    Opção \033[1;42mB\033[m - Subtrair.
    Opção \033[1;34;43mC\033[m - Multiplicar.
    Opção \033[1;44mD\033[m - Dividir.
    Opção \033[1;45mE\033[m - Saber a Média.
    \033[4mQual a opção escolhida? \033[m''')).upper()

    if pergunta1=='A':
        soma=n1+n2
        print(f'A soma é \033[1;32m{soma}\033[m\n')
        pergunta2=str(input(F'Deseja saber se {soma} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
        if pergunta2=='s':
            if soma%2==0:
                print('Este número é \033[1;36mPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
            else:
                print('Este número é \033[1;33mÍMPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
        else:
            break

    elif pergunta1=='B':
        subtracao=n1-n2
        print(f'A subtração é \033[1;32m{subtracao}\033[m')
        pergunta2 = str(input(
            F'Deseja saber se {subtracao} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
        if pergunta2 == 's':
            if subtracao % 2 == 0:
                print('Este número é \033[1;36mPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
            else:
                print('Este número é \033[1;33mÍMPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
        else:
            break

    elif pergunta1=='C':
        multiplicacao=n1*n2
        print(f'A multiplicação será \033[1;32m{multiplicacao}\033[m')
        pergunta2 = str(input(
            F'Deseja saber se {multiplicacao} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
        if pergunta2 == 's':
            if multiplicacao % 2 == 0:
                print('Este número é \033[1;36mPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
            else:
                print('Este número é \033[1;33mÍMPAR\033[m!\n')
                pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                if pergunta3 == 'n':
                    break
        else:
            break

    elif pergunta1=='D':
        divisao=n1/n2
        print(f'A divisão será \033[1;32m{divisao}\033[m')
        pergunta3=str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
        if pergunta3=='n':
            break

    elif pergunta1=='E':
        media=(n1+n2)/2
        print(f'A média entre \033[1;34m{n1}\033[m e \033[1;31m{n2}\033[m é \033[1;32m{media}\033[m\n')
        pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
        if pergunta3 == 'n':
            break

    else:
        print('\033[7;30;47mVocê digitou errado. Tente de novo!\033[m')


print('\033[4;33mFim do Programa\033[m')
  • 1

    while pergunta1!='A' or 'B' or 'C' or 'D' or 'E' this condition is wrong. It will always be true because a string not empty is considered true in Python and or True will always be True. See more on https://answall.com/q/353470/5878

  • Thank you. Soon I will rephrase my question and put here again.

2 answers

2

Change:

while pergunta1!='A' or 'B' or 'C' or 'D' or 'E':

for:

while pergunta1!='A' and pergunta1!='B' and pergunta1!='C' and pergunta1!='D' and pergunta1!='E':

but it would be better:

while pergunta1 not in['A', 'B', 'C', 'D', 'E']:

1


Using your own code I made a change to do what you want, test:

while True:
    print('''\033[4;33mOlá, Sr. Usuário!\033[m
    \033[4mDigite dois valores abaixo para fazer os cálculos:\033[m''')
    print('\n')

    n1=int(input('\033[1;34mDigite um valor inteiro qualquer: \033[m'))
    n2=int(input('\033[1;31mDigite outro valor inteiro qualquer: \033[m'))
    pergunta1=1
    pergunta2=1
    pergunta3=1

    while pergunta1 not in ['A','B','C','D','E']:

        pergunta1=str(input('''\033[4mDeseja fazer o que com tais valores? Veja as opções abaixo.\033[m
        Opção \033[1;41mA\033[m - Somar.
        Opção \033[1;42mB\033[m - Subtrair.
        Opção \033[1;34;43mC\033[m - Multiplicar.
        Opção \033[1;44mD\033[m - Dividir.
        Opção \033[1;45mE\033[m - Saber a Média.
        \033[4mQual a opção escolhida? \033[m''')).upper()

        if pergunta1=='A':
            soma=n1+n2
            print(f'A soma é \033[1;32m{soma}\033[m\n')
            pergunta2=str(input(F'Deseja saber se {soma} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
            if pergunta2=='s':
                if soma%2==0:
                    print('Este número é \033[1;36mPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
                else:
                    print('Este número é \033[1;33mÍMPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
            else:
                break

        elif pergunta1=='B':
            subtracao=n1-n2
            print(f'A subtração é \033[1;32m{subtracao}\033[m')
            pergunta2 = str(input(
                F'Deseja saber se {subtracao} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
            if pergunta2 == 's':
                if subtracao % 2 == 0:
                    print('Este número é \033[1;36mPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
                else:
                    print('Este número é \033[1;33mÍMPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
            else:
                break

        elif pergunta1=='C':
            multiplicacao=n1*n2
            print(f'A multiplicação será \033[1;32m{multiplicacao}\033[m')
            pergunta2 = str(input(
                F'Deseja saber se {multiplicacao} é par ou ímpar?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
            if pergunta2 == 's':
                if multiplicacao % 2 == 0:
                    print('Este número é \033[1;36mPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
                else:
                    print('Este número é \033[1;33mÍMPAR\033[m!\n')
                    pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
                    if pergunta3 == 'n':
                        break
            else:
                break

        elif pergunta1=='D':
            divisao=n1/n2
            print(f'A divisão será \033[1;32m{divisao}\033[m')
            pergunta3=str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
            if pergunta3=='n':
                break

        elif pergunta1=='E':
            media=(n1+n2)/2
            print(f'A média entre \033[1;34m{n1}\033[m e \033[1;31m{n2}\033[m é \033[1;32m{media}\033[m\n')
            pergunta3 = str(input('Deseja escolher outra opção para os números?(\033[4mS\033[m para SIM e \033[4mN\033[m para NÃO): ')).lower()
            if pergunta3 == 'n':
                break

        else:
            print('\033[7;30;47mVocê digitou errado. Tente de novo!\033[m')


    if str(input('Deseja entrar com outros numeros? (S) para Sim: '))!='S':
        print('\033[4;33mFim do Programa\033[m')
        break
  • I tested and it worked. Thank you!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.