Advertisement
Guest User

Agenda - Python 3

a guest
Mar 30th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.85 KB | None | 0 0
  1. # -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  2. # Agenda por: Matheus Vieira
  3. # Linguagem: Python
  4. # -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  5.  
  6. # Primeiramente foi criado uma lista VAZIA que será o formato que será o formato que iremos salvar os contatos.
  7. agenda = []
  8.  
  9. #-----------------------------------------------------
  10. # Inicio funções
  11. #-----------------------------------------------------
  12.  
  13. def pede_nome():
  14.      return(input("Nome: "))
  15.  
  16. def pede_telefone():
  17.      return(input("Telefone: "))
  18.  
  19. def mostra_dados(nome, telefone):
  20.      print("Nome: %s Telefone: %s" % (nome, telefone))
  21.  
  22. def pede_nome_arquivo():
  23.      return(input("Nome do arquivo: "))
  24.  
  25. def pesquisa(nome):
  26.      mnome = nome.lower()
  27.      for p, e in enumerate(agenda):
  28.          if e[0].lower() == mnome:
  29.                return p
  30.      return None
  31.  
  32. def novo():
  33.      global agenda
  34.      nome = pede_nome()
  35.      telefone = pede_telefone()
  36.      agenda.append([nome, telefone])
  37.  
  38. def apaga():
  39.      global agenda
  40.      nome = pede_nome()
  41.      p = pesquisa(nome)
  42.      if p != None:
  43.          del agenda[p]
  44.      else:
  45.          print("Nome não encontrado.")
  46.  
  47. def altera():
  48.      p = pesquisa(pede_nome())
  49.      if p != None:
  50.          nome = agenda[p][0]
  51.          telefone = agenda[p][1]
  52.          print("Encontrado:")
  53.          mostra_dados(nome, telefone)
  54.          nome = pede_nome()
  55.          telefone = pede_telefone()
  56.          agenda[p] = [nome, telefone]
  57.      else:
  58.          print("Nome não encontrado.")
  59.  
  60. def lista():
  61.      print("\nAgenda\n\n------")
  62.      for e in agenda:
  63.          mostra_dados(e[0], e[1])
  64.      print("------\n")
  65.  
  66. def():
  67.      global agenda
  68.      nome_arquivo = pede_nome_arquivo()
  69.      arquivo = open(nome_arquivo, "r", encoding = "utf-8")
  70.      agenda = []
  71.      for l in arquivo.readlines():
  72.          nome, telefone = l.strip().split("#")
  73.          agenda.append([nome, telefone])
  74.      arquivo.close()
  75.  
  76. def grava():
  77.      nome_arquivo = pede_nome_arquivo()
  78.      arquivo = open(nome_arquivo, "w", encoding = "utf-8")
  79.      for e in agenda:
  80.          arquivo.write("Nome: %s Telefone: %s\n" % (e[0], e[1]))
  81.      arquivo.close()
  82.  
  83. def valida_faixa_inteiro(pergunta, inicio, fim):
  84.      while True:
  85.          try:
  86.                valor = int(input(pergunta))
  87.                if inicio <= valor <= fim:
  88.                    return(valor)
  89.          except ValueError:
  90.                print("Valor inválido, favor digitar entre %d e %d" % (inicio, fim))
  91.  
  92. #-----------------------------------------------------
  93. # Fim funções
  94. #-----------------------------------------------------
  95.  
  96.  
  97. # Função para criar um menu
  98. def menu():
  99.      print("""
  100.   1 - Novo
  101.   2 - Altera
  102.   3 - Apaga
  103.   4 - Lista
  104.   5 - Grava
  105.   6 - Lê
  106.  
  107.   0 - Sai
  108. """)
  109.      return valida_faixa_inteiro("Escolha uma opção: ",0,6)
  110.  
  111. # Fim menu
  112.  
  113. # Inicio estrutura condicional
  114. while True:
  115.      opção = menu()
  116.      if opção == 0:
  117.          break
  118.  
  119. # Se(if) opção for igual a 0, no caso se eu digitar 0 ele vai dar um break, encerrando nosso loop em EWH
  120.  
  121.      elif opção == 1:
  122.          novo()
  123.  
  124. # Se(if) opção for igual a 1, no caso se eu digitar 1 ele vai chamar a função "NOVO"
  125.  
  126.      elif opção == 2:
  127.          altera()
  128. # Se(if) opção for igual a 2, no caso se eu digitar 2 ele vai chamar a função "ALTERA"
  129.  
  130.      elif opção == 3:
  131.          apaga()
  132.  
  133. # Se(if) opção for igual a 3, no caso se eu digitar 3 ele vai chamar a função "APAGA"
  134.  
  135.      elif opção == 4:
  136.          lista()
  137.  
  138. # Se(if) opção for igual a 4, no caso se eu digitar 4 ele vai chamar a função "LISTA"
  139.  
  140.  
  141.      elif opção == 5:
  142.          grava()
  143.  
  144. # Se(if) opção for igual a 5, no caso se eu digitar 5  ele vai chamar a função "GRAVA"
  145.  
  146.      elif opção == 6:
  147.          lê()
  148.  
  149. # Se(if) opção for igual a 6, no caso se eu digitar 6  ele vai chamar a função "LÊ"
  150.  
  151. # Fim estrutura condicional
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement