Ir ao conteúdo
  • Cadastre-se

Python Retornar um ponto no programa


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

Posts recomendados

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á!

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • Solução

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!