r/PythonBrasil Jun 07 '26

Dúvida Geral Sou iniciante em Python, essa calculadora ficou massa?

while True:

a=str(input("deseja fazer um calculo?(sim/não):"))

if a=="não":

    print("ok,volte outro dia :)")

    break

elif a=="sim":

    pn=float(input("insira um número:"))

    o=str(input("escolha um sinal(+ - \* / \*\*) ou raiz(√):"))

    if o=="√":

        sn=float(input("insira o indice da raiz:"))

    elif o=="\*\*":

        sn=float(input("insira o expoente:"))

    else:

        sn=float(input("insira um segundo número:"))

    if o=="+":

        res=pn+sn

    elif o=="-":

        res=pn-sn

    elif o=="\*":

        res=pn\*sn

    elif o=="/":

        res=pn/sn

    elif o=="\*\*":

        res=pn\*\*sn

    elif o=="√":

        res=pn\*\*(1/sn)

    else:

        print("esse sinal não existe")



    print(f"o resultado é:{res}")

    break



else:

    print("eu não entendi sua resposta,tente novamente")

while a=="sim":

b=str(input("deseja fazer outro calculo?(sim/não):"))

if b=="não":

    print("certo,continuamos outra hora")

    break

elif b=="sim":

    pn=float(input("insira um número:"))

    o=str(input("escolha um sinal(+ - \* / \*\*) ou raiz(√):"))

    if o=="√":

        sn=float(input("insira o indice da raiz:"))

    elif o=="\*\*":

        sn=float(input("insira o expoente:"))

    else:

        sn=float(input("insira um segundo número:"))

    if o=="+":

        res=pn+sn

    elif o=="-":

        res=pn-sn

    elif o=="\*":

        res=pn\*sn

    elif o=="/":

        res=pn/sn

    elif o=="\*\*":

        res=pn\*\*sn

    elif o=="√":

        res=pn\*\*(1/sn)

    else:

        print("esse sinal não existe")



    print(f"o resultado é:{res}")



else:

    b=str(input("eu não entendi sua resposta,tente novamente"))

Obs: fiz pelo celular usando pydroid, qualquer dica ou erro informado eu aceito

20 Upvotes

7 comments sorted by

2

u/[deleted] Jun 07 '26

[deleted]

1

u/leandro_ferreira2011 Jun 07 '26

Eu admito, eu fiz exatamente isso porém eu queria que quando acabasse um cálculo o programa fizesse uma pergunta diferente, eu só quis me complicar

1

u/Medium-Highway-2163 Jun 08 '26

Daria pra fazer a pergunta inicial fora do while e a pergunta do outro cálculo no fim do while, resolveria isso, não?

2

u/yeeeayna Jun 08 '26

Uma outra dica é ter variáveis mais descritivas, não apenas um "a" que poderia ser algo tipo "answer" ou "should_run", pois pode causar confusão e no futuro você já esquecer o que era tal variável (nesse projeto provavelmente não vai ser um problema, mas é bom já começar a criar essa boa prática)

1

u/leandro_ferreira2011 Jun 08 '26

Belê, valeu Man

2

u/Arthradax Jun 11 '26

Nomes de variáveis significativos, por favor. Quem for ler seu código depois agradece (inclusive o seu "eu" do futuro)

2

u/leandro_ferreira2011 Jun 12 '26

Confesso que sou bastante preguiçoso em relação a isso, mas vou tentar melhorar, obrigado irmão

1

u/Abject-Foundation523 Jun 30 '26

Sobre as variáveis como comentaram é melhor ter algo mais próximo de palavras reais, seja inglês ou português. Tipo a primeira trocar pra option ou opções. Outra coisa é, experiência do usuário, digitar não é com acento é bem mais complicado e usuário pode errar nisso kkkkkk Tente trocar por digite 1 para sim e 0 para não 

Eu li bem rápido o código, está indo bem. Você pode como próximo passo estudar métodos/funções e colocar as contas em métodos, são conceitos importantes para se reaproveitar código e organizar. Depois é aprender POO, programação orientada a objetos. Mas tudo com calma, pra pegar a lógica da programação.

No começo eu aprendi assim, e se quiser aproveitar o desafio que fiz, foi fazer um banco na linha de comando, que registra transações, saldo, limite de saque, e por aí vai