Codigo Limpo - Usando Funcoes e Modulos em Python - Luan C. Redmann

78 visualizações

Publicada em

Código limpo: usando funções e módulos em Python por Luan C. Redmann

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Codigo Limpo - Usando Funcoes e Modulos em Python - Luan C. Redmann

  1. 1. Código limpo: Usando módulos e funções em Python LuanC. Redmann luandacostaredmann@gmail.com
  2. 2. R$ 76,80 (www.amazon.com.br)
  3. 3. O que é código limpo?
  4. 4. “Gosto do meu código elegante e eficiente. A lógica deve ser direta para dificultar o encobrimento de bugs, as dependências mínimas para facilitar a manutenção, o tratamento de erro completo de acordo com uma estratégia clara e o desempenho próximo do mais eficiente de modo a não incitar as pessoas a tornarem o código confuso com otimizações sorrateiras. O código limpo faz bem apenas uma coisa.” (STROUSTRUP, Bjarne)
  5. 5. 1 print(“Olá, mundo!")
  6. 6. oCodigoRuim = open("Ryuuzaki.py", "r")
  7. 7. 1 print("E aí, migs! Eu sou o Ryuuzaki. Estou aqui para ajudá-lo em sua vida escolar.") 2 nome = input("Para começar, me diga o seu nome: ") 3 print("%s, será um prazer ser útil a você! Baseado na sua média escolar, aritmeticamente te direi se você passou de ano ou não. Vamos lá?" % nome) 4 m_escolar = float(input("Eu preciso saber qual é a média que a sua escola exige para você ser aprovado (separar com ponto as casas decimais): ")) 5 print("Okay, %s. Para evitar confusão, estou anotando tudo que você digita. Resumirei tudo no final." % nome) 6 mat = input("Para prosseguir, digite o nome da matéria: ") 7 print("Certo. Funciona assim: você me informa as notas dos quatro bimestres, e eu digo sua média e sua situação.") 8 N1 = float(input("Naquele mesmo esquema de separar as casas decimais por vírgula, me diga. Qual foi sua nota em %s no primeiro bimestre? " % mat)) 9 N2 = float(input("E no segundo? ")) 10 N3 = float(input("Qual foi sua nota no terceiro bimestre? ")) 11 N4 = float(input("No quarto? ")) 12 m_aluno = (N1 + N2 + N3 + N4) / 4 13 print("Você obteve média %.1f" % m_aluno) 14 if m_aluno >= m_escolar:
  8. 8. 15 print("Parabéns, %s! Você foi aprovado em %s <3" % (nome, mat)) 16 s = "aprovado" 17 else: 18 s = "reprovado" 19 input("Aperte enter para continuar. ") 20 print("Como prometido, aqui estão todas as informações que você digitou: ") 21 print("") 22 print(" —> Discente: %s " % nome) 23 print(" —> Nota do primeiro bimestre: %.1f" % N1) 24 print(" —> Nota do segundo bimestre: %.1f" % N2) 25 print(" —> Nota do terceiro bimestre: %.1f" % N3) 26 print(" —> Nota do quarto bimestre: %.1f" % N4) 27 print(" —> Média exigida: %.1f" % m_escolar) 28 print(" —> Média obtida pelo discente: %.1f" % m_aluno) 29 print(" —> Situação: %s" % s) 30 print("nRyuuzaki fica feliz em ser útil. Me acorde a hora que quiser!") 31 print("Criado e desenvolvido por Luan da Costa Redmann, em 2015.")
  9. 9. oCodigoRuimMelhorado = open("Ryuuzaki.py", "r")
  10. 10. 1 # Se apresenta 2 print("E aí, migs! Eu sou o Ryuuzaki. Estou aqui para ajudá-lo em sua vida escolar.") 3 # Pega as informações básicas 4 nome = input("Para começar, me diga o seu nome: ") 5 print("%s, será um prazer ser útil a você! Baseado na sua média escolar, aritmeticamente te direi se você passou de ano ou não. Vamos lá?" % nome) 6 m_escolar = float(input("Eu preciso saber qual é a média que a sua escola exige para você ser aprovado (separar com ponto as casas decimais): ")) 7 print("Okay, %s. Para evitar confusão, estou anotando tudo que você digita. Resumirei tudo no final." % nome) 8 mat = input("Para prosseguir, digite o nome da matéria: ") 9 print("Certo. Funciona assim: você me informa as notas dos quatro bimestres, e eu digo sua média e sua situação.") 10 # Pega as notas 11 N1 = float(input("Naquele mesmo esquema de separar as casas decimais por ponto, me diga. Qual foi sua nota em %s no primeiro bimestre? " % mat)) 12 N2 = float(input("E no segundo? ")) 13 N3 = float(input("Qual foi sua nota no terceiro bimestre? ")) 14 N4 = float(input("No quarto? "))
  11. 11. 15 # Começa a calcular 16 m_aluno = (N1 + N2 + N3 + N4) / 4 17 print("Você obteve média %.1f" % m_aluno) 18 if m_aluno >= m_escolar: 19 print("Parabéns, %s! Você foi aprovado em %s <3" % (nome, mat)) 20 s = "aprovado" 21 else: 22 s = "reprovado" 23 input("Aperte enter para continuar. ") 24 # Resume as informações e mostra ao usuário 25 print("Como prometido, aqui estão todas as informações que você digitou: ") 26 print("") 27 print(" —> Discente: %s " % nome) 28 print(" —> Nota do primeiro bimestre: %.1f" % N1) 29 print(" —> Nota do segundo bimestre: %.1f" % N2) 30 print(" —> Nota do terceiro bimestre: %.1f" % N3) 31 print(" —> Nota do quarto bimestre: %.1f" % N4) 32 print(" —> Média exigida: %.1f" % m_escolar)
  12. 12. 33 print(" —> Média obtida pelo discente: %.1f" % m_aluno) 34 print(" —> Situação: %s" % s) 35 # Se despede e encerra a execução 36 print("nRyuuzaki fica feliz em ser útil. Me acorde a hora que quiser!") 37 print("Criado e desenvolvido por Luan da Costa Redmann, em 2015.")
  13. 13. oCodigoBom = open("Ryuuzaki.py", "r")
  14. 14. 1 def apresentar(): 2 print("E aí, migs! Eu sou o Ryuuzaki. Estou aqui para ajudá-lo em sua vida escolar.") 3 4 def pegarNome(): 5 nome = input("Para começar, me diga o seu nome: ") 6 print("%s, será um prazer ser útil a você! Baseado na sua média escolar, aritmeticamente te direi se você passou de ano ou não. Vamos lá?" % nome) 7 return nome 8 9 def pegarMediaEscolar(nome): 10 media = float(input("Eu preciso saber qual é a média que a sua escola exige para você ser aprovado (separar com ponto as casas decimais): ")) 11 print("Okay, %s. Para evitar confusão, estou anotando tudo que você digita. Resumirei tudo no final." % nome) 12 return media 13 14 def pegarMateria(): 15 materia = input("Para prosseguir, digite o nome da matéria: ")
  15. 15. 16 print("Certo. Funciona assim: você me informa as notas dos quatro bimestres, e eu digo sua média e sua situação.") 17 return materia 18 19 def pegarNotas(materia): 20 notas = [] 21 notas.append(float(input("Naquele mesmo esquema de separar as casas decimais por ponto, me diga. Qual foi sua nota em %s no primeiro bimestre? " % materia))) 22 notas.append(float(input("E no segundo? "))) 23 notas.append(float(input("Qual foi sua nota no terceiro bimestre? "))) 24 notas.append(float(input("No quarto? "))) 25 return notas 26 27 def exibirMedia(notas): 28 media_aluno = sum(notas) / 4 29 print("Você obteve média %.1f" % media_aluno) 30 return media_aluno 31
  16. 16. 32 def testarSituacao(media_escolar, media_aluno, nome, materia): 33 if media_aluno >= media_escolar: 34 print("Parabéns, %s! Você foi aprovado em %s <3" % (nome, materia)) 35 situacao = "aprovado" 36 else: 37 situacao = "reprovado" 38 input("Aperte enter para continuar. ") 39 return situacao 40 41 def resumirInformacoes(info): 42 print("Como prometido, aqui estão todas as informações que você digitou: ") 43 print("") 44 print(" —> Discente: %s " % info[0]) 45 print(" —> Matéria: %s " % info[2]) 46 print(" —> Nota do primeiro bimestre: %.1f" % info[3][0]) 47 print(" —> Nota do segundo bimestre: %.1f" % info[3][1]) 48 print(" —> Nota do terceiro bimestre: %.1f" % info[3][2]) 49 print(" —> Nota do terceiro bimestre: %.1f" % info[3][3])
  17. 17. 50 print(" —> Média exigida: %.1f" % info[1]) 51 print(" —> Média obtida pelo discente: %.1f" % info[4]) 52 print(" —> Situação: %s" % info[5]) 53 54 def despedir(): 55 print("nRyuuzaki fica feliz em ser útil. Me acorde a hora que quiser!") 56 print("Criado e desenvolvido por Luan da Costa Redmann, em 2015.") 57 58 # Método principal 59 apresentar() 60 nome = pegarNome() 61 media_escolar = pegarMediaEscolar(nome) 62 materia = pegarMateria() 63 notas = pegarNotas(materia) 64 media_aluno = exibirMedia(notas) 65 situacao = testarSituacao(media_escolar, media_aluno, nome, materia) ? informacoes = [nome, media_escolar, materia, notas, media_aluno, situacao] 67 resumirInformacoes(informacoes)
  18. 18. 68 despedir()
  19. 19. Fazendo o milagre
  20. 20. Obrigado pela atenção!
  21. 21. /redmannCodes

×