[ create a new paste ] login | about

Link: http://codepad.org/QNxVA1Ga    [ raw code | fork ]

Python, pasted on Jul 18:
# -*- coding: utf-8 -*-
import os, sys
if sys.platform == 'linux' or sys.platform == 'linux2': limpar = 'clear'
else: limpar = 'cls'
msgespecif = "Km por litro: %s\nValor de mercado do modelo zero KM: %s\nValor de mercado do modelo usado: %s\nValor do seguro: %s\nPotencia: %s"
pergunespecif = ["Km por litro: ","Valor de mercado do modelo zero KM: ","Valor de mercado do modelo usado: ","Valor do seguro: ","Potencia: "]
mensagem = "Escolha um dos modelos abaixo:\n1 - Cadastrar novos modelos\n2 - Sair do programa\n-\n3 - Hyundai i30\n4 - Honda Fit 1.4\n5 - Ford Ka 1.0\n6 - Toyota Tundra 5.7\n7 - Volkswagen Gol 1.0"
dtecnicos = {3:("7,8","R$ 52.000,00","R$ 30.000,00","R$ 1.800,00","143 cavalos"),4:("11,8","R$ 39.496,99","R$ 20.000,00","R$ 1.200,00","80 cavalos"),5:("11,43","R$ 21.790,00","R$ 14.000,00","R$ 1.263,00","65 cavalos"),6:("14,7","R$ 249.900,00","R$ 120.900,00","R$ 4.351,00","343 cavalos"),7:("9,6","R$ 26.790,00","R$ 14.154,00","R$ 1.137,00","68 cavalos")}
especf = {3:"Hyundai i30".center(70)+"\n"+msgespecif,4:"Honda Fit 1.4".center(70)+"\n"+msgespecif,5:"Ford Ka 1.0".center(70)+"\n"+msgespecif,6:"Toyota Tundra 5.7".center(70)+"\n"+msgespecif,7:"Volkswagen Gol 1.0".center(70)+"\n"+msgespecif}
lista, nmod = [], 7
def cadastrar():
    global mensagem, dtecnicos, lista, nmod
    nmod = nmod+1
    nomemd = raw_input("Adicione um modelo a lista: ")
    mensagem = mensagem+"\n"+str(nmod)+" - "+nomemd
    m = max(dtecnicos.keys())+1
    especf[m] = especf[3].replace("Hyundai i30", nomemd)
    for v in range(1,6):
        lista.append(raw_input(pergunespecif[v-1]))
        dtecnicos[m] = tuple(lista)
while True:
    try:
        op = int(input(mensagem+"\n"))
        if op == 1: cadastrar()
        elif op == 2: break
        else: os.system(limpar); print especf[op] %dtecnicos[op]+"\n\n"
    except (KeyError, NameError, SyntaxError): print("Digite apenas o número correspondente ao modelo ou opção.");continue


# Linha 2 - Importa os módulos os e sys que serão usados no programa.
#
# Linha 3 - Método platform do modulo sys usado, ele mostra qual a plataforma do usuário. Se plataforma do usuário for 
#igual a Linux variável limpar recebe o valor "clear", que é um comando no Linux pra limpar a tela do terminal.   
#
# Linha 4 - Se não, provavelmente o usuário estará usando Windows, então a variável limpar recebe o valor cls, que no 
#Windows também limpa a tela.
#
# Linha 5 - Variável msgespecif recebe as mensagens que mostrarão as especificações dos modelos.
#
# Linha 6 - Variável pergunespecif recebe uma lista com as mensagens que serão mostradas quando for pedir as especificações 
#de um novo modelo cadastrado.
#
# Linha 7 - Variável mensagem recebe mensagem principal do programa, com as opções de escolha.
#
# Linha 8 - Variável dtecnicos recebe um dicionario com as especificações dos modelos já existentes, ela também armazenará 
#dados de futuros modelos adicionados.
#
# Linha 9 - Variável especf recebe mensagens formatadas que mostrarão as especificações de todos modelos.
#
# Linha 10 - Variável lista recebe uma lista vazia, variável nmod recebe o número de modelos já cadastrados (ou todas 
#opções da mensagem principal).
#
# Linha 11 - Função cadastrar criada, o bloco dela se estende até a linha 20.
#
# Linha 12 - Para atribuir valores a variáveis fora de uma função é necessário declarar elas como globais, nessa linha 
#eu faço isso.
#
# Linha 13 - Aqui é adicionado +1 número a variável nmod, já que estamos na função pra adicionar outro modelo o número 
#de modelos irá crescer.
#
# Linha 14 - Variável nomemd irá armazenar o nome de um novo modelo digitado pelo usuário.
#
# Linha 15 - Variável mensagem, aquela lá de cima, será adicionada a ela o nome do novo modelo. 
#
# Linha 16 - Variável m recebe o maior número do dicionario dtecnicos com a soma de +1., essa variável foi criada pra 
#saber qual o número de itens do dicionario dtecnicos, depois de saber o número de itens e armazenar ele na variável, 
#ela recebe +1, que representa um novo item no dicionario.
#
# Linha 17 - É criada na variável especf um novo item, e esse item recebe um item anterior só que com a mensagem 
#principal substituída pelo nome do novo modelo.
#
# Linha 18 - Laço for criado, irá rodar 5 vezes, que é o número de perguntas referente as especificações do modelo.
#
# Linha 19 - Variável lista recebe as respostas das especificações mostradas na tela.
#
# Linha 20 - Último item do dicionario dtecnicos recebe uma tupla com o valor de todas respostas das especificações. 
#Termina aqui o bloco da função.
#
# Linha 21 - Laço while criado, rodará infinitamente se não for interrompido.
#
# Linha 23 - É mostrada uma mensagem na tela com as opções, variável op recebe o número referente a uma das opções.
#
# Linha 24 - Se valor de op for igual a um, chamar função cadastrar
#
# Linha 25 - Ou se valor de op for igual a dois, parar laço e finalizar programa.
#
# Linha 26 - Se não, o método system do modulo os executa um comando no sistema operacional, basta passar o comando 
#como argumento da função, no caso passei como argumento a variável limpar, que contem um comando pra limpar a tela. 
#Depois de limpar a tela é mostrada as especificações do modelo digitado.
#
# Linha 27 - Caso ocorra um erro do tipo KeyError é pq o usuário digitou uma opção inválida, caso isso ocorra o 
#programa voltará pro loop e pra mensagem principal.


Create a new paste based on this one


Comments: