Ir ao conteúdo

Python Retornar um ponto no programa


Ir à solução Resolvido por b.0463,

Posts recomendados

Postado

Gostaria de saber como eu faço o programa retornar ao inicio com uma key utilizada pelo user.

 

import sys
print()
print("#" * 80)
print("Esse programa fará as seguintes conversões de temperatura \n\nCELSIUS -> FAHRENHEIT\nFAHRENHEIT -> CELSIUS")
print()
print("#" * 80)
print()
print("Digite '1' para converter CELSIUS \nDigite '2' para converter FAHRENHEIT")
print()
a = int(input("Digite a seguir: "))
print("#" * 80)
lista = [1,2]
lista2 = [3]
lista3 = [1]
lista4 = [2]
while(a not in lista ):
    print()
    print("Digite '1' para converter CELSIUS \nDigite '2' para converter FAHRENHEIT")
    print()
    print("Digite '3' para SAIR")
    print()
    a = int(input("Digite a seguir: "))
    print("#" * 80)
    if(a in lista2):
        sys.exit(0)
if(a in lista3):
    print()
    b = float(input("Digite o valor em CELSIUS: "))
    c = b * 9
    d = (c + 160) / 5
    e = round(d, 2)
    print()
    print("O valor de {}°C é igual à {}° FAHRENHEIT".format(b, e))
    print()
    sys.exit(0)
if(a in lista4):
    print()
    f = float(input("Digite o valor em FAHRENHEIT: "))
    g = (f - 32) * 5/9
    h = round(g, 2)
    print()
    print("O valor de {}°F é igual à {}° CELSIUS".format(f, h))
    print()
    sys.exit(0)  

 Grato desde já!

Postado

Você pode definir a função e quando chegar ao final, pergunta se o usuário quer fazer outra conversão (S/N). Se o input for "S", você chama a função novamente (e o programa volta ao início) e se for N você encerra. Pra definir você usa def, inventa um nome qualquer pra função e declara quais são entradas dela entre parêntese.
Tá meio poluído esse código pra uma simples conversão de temperatura, não? Dá pra reduzir à metade.

  • Solução
Postado

a duas maneira que encontrei:

def:

def nome(ins, ): #ponto onde ira voltar
	'''codico que ira rodar'''
    return(outs)
a = nome(ins, ) #ponto onde ira voltar



assim ele executara o codico quando colocar (nome()) ou caso tenha um return (a = nome(ins))

a outra maneira é usar o while:

while True: #ponto onde ira voltar
	'''codico
    caso queira sair do while use break
    caso queia que continue não coloque nada
    '''
a = input(str(Deseja recomesar[s/n]: )
if a == 's':
	pass #ira ate o ponto (local)
elif a == 'n':
	break #não ira voltar
else:
'''mensagem de erro'''
break #não ira voltar
#(local) #não tera nada para recomesar o while

esquesi de colocar aspas no input

 

@Pedro Tigre

outra coisa é uma sugestão

#oa invés de usar:
a = 'string 1'
b = 'string 2'
print('{0} texto {1}'.format(a, b))
#usar
a = 'string 1'
b = 'string 2'
print(f'{a} texto {b}')

 

  • Curtir 1
Postado

@b.0463 Obrigado pela resposta amigo, vou estar analisando aqui e posto novamente com as alterações. Obrigado pela sugestão do .format, mesmo ontem tinha descoberto, ainda não estava ciente desse modo

@Shaman93 Obrigado pela sugestão amigo, irei analisar, sobre o tamanho do código, ele era originalmente menor, porém eu quis incrementá-lo até pra treinar conteúdos de umas aulas do meu curso

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!