Perform the next step without going through a previous one

Asked

Viewed 24 times

-2

I have the following problem, if the user does not type either’S' or 'N' will return the error message I treated, however it will continue the loop, but I wanted a way not to ask again to type the number again and if you type the answer of the variable 'question'.

def caractere(resposta):
    # false
    if resposta == 'N':
        return 'Encerrando programa...'

    # true
    elif resposta == 'S': 
        return 'Ok, vamos continuar...'

    # true
    elif resposta not in 'SN':
        return 'Caractere inválido. Digite novamente'



def main():
    while True:
        try:
            numero = float(input('Digite um número: '))
            print(f'O cubo do numero {numero} é igual {numero ** 3}')
            pergunta = str(input('Deseja continuar[sim - S/não - N]: ')).upper()[0]
            resultado = caractere(pergunta)
            
            if pergunta == 'S':
                print(resultado)

            elif pergunta == 'N':
                print(resultado)
                break
            
            elif pergunta not in 'SN':
                print(resultado)

        except:
            print('Valor inválido, tente novamente.')

if __name__ == "__main__":
    main()

1 answer

-2


def caractere(resposta):
    # false
    if resposta == 'N':
        return 'Encerrando programa...'

    # true
    elif resposta == 'S': 
        return 'Ok, vamos continuar...'

    # true
    elif resposta not in 'SN':
        return 'Caractere inválido. Digite novamente'

def continuar():
    pergunta = ""
    while (pergunta == "S" or pergunta == "N") == False:
        pergunta = str(input('Deseja continuar[sim - S/não - N]: ')).upper()[0]
        print(caractere(pergunta))

    return pergunta

def main():
    while True:
        try:
            numero = float(input('Digite um número: '))
            print(f'O cubo do numero {numero} é igual {numero ** 3}')
            pergunta = continuar()
            
            if pergunta == "N":
                break

        except:
            print('Valor inválido, tente novamente.')

if __name__ == "__main__":
    main()

Browser other questions tagged

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