Universidade Brasília – 22 de Maio 2017

1 Universidade Brasília – 22 de Maio 2017Como escrever um...
Author: Flávio Carrilho Fortunato
0 downloads 2 Views

1 Universidade Brasília – 22 de Maio 2017Como escrever um Algoritmo Estruturado Módulo VII: Funções & Bibliotecas Versão 1.3 Faculdade de Comunicação –UnB PCLLA/FAC/UnB Benedito Medeiros Neto Universidade Brasília – 22 de Maio 2017

2 PROGRAMAÇÃO DE COMPUTADORES, LÓGICAL, LINGUAGEM E APLICAÇÕES/EADM_I - Introdução ao Pensamento Computacional e Conceitos;        M_II -  Ambientes de Ensino: Linguagem Python (Lista de Exercício/NM);                                                                                             M_III -  Tomadas de decisões (Lista de Exercício/MN);                                                                 M_IV -  Lógica da Programação e Algoritmos (Lista de Exercício/BMN);                                                                                               M_V - Estruturas:  laços, listas e fila (Lista de Exercícios/MN);                                                                                      M_VI - Strings: dados textuais e matrizes (Lista de Exercícios/MN);                                                                                           M_VII - Funções e Bibliotecas (Lista de Exercícios/BMN);                                                                                           M_VIII - Armazenamento de dados e arquivos (Marília).  

3 PROGRAMAÇÃO DE COMPUTADORES, LÓGICAL, LINGUAGEM E APLICAÇÕES/EADA Sala de aula invertida ou flipped classroom é uma das metodologias educacionais que mais estão revolucionando o aprendizado. Desde que o professores de química Jonathan Bergmann e Aaron Sams colocaram em prática pela primeira vez nas salas de aula da Woodland Park High School, em Woodland Park, Colorado (Estados Unidos), a metodologia foi sendo implantada progressivamente. Dica com 40 ferramentas para Sala de Aula Invertida - Infográfico MARCELO CLARO FEVEREIRO 2017 https://www.moodlelivre.com.br/tutoriais-e-dicas/2090-dica-com-40-ferramentas-para-sala-de-aula-invertida- infografico .  

4 Como desenvolver Programas para Computadores utilizando FUNÇÕES E BIBLIOTECASVI

5 PROGRAMAÇÃO DE COMPUTADORES, LÓGICAL, LINGUAGEM E APLICAÇÕES/EADEste novo modelo de ensino propõe inverter o ensino tradicional onde os alunos estudam a parte teórica em casa através de vídeos, apresentações, recursos tecnológicos, etc e em seguida em sala de aula levante dúvidas, reproduza o conhecimento em trabalhos individuais e/ou de forma colaborativa. Criar videoaulas, fóruns, questionários interativos e apresentações; avaliar as tarefas para acompanhar o progressodos alunos, facilitar o desenvolvimento de trabalhos em grupo, utilizar ferramentas para comunicação entre ambos e divulgar o que se aprendeu... .  

6 Como desenvolver Programas para Computadores utilizando FUNÇÕES E BIBLIOTECASMÓDULO VI

7 FUNÇÕES EM PYTHON (CIC/UnB – Download Tutorial)Sumário Chamadas de funções Conversão entre tipos Coerção entre tipos Funções matemáticas Composição Adicionando novas funções Definições e uso Fluxo de execução Parâmetros e argumentos Variáveis e parâmetros são locais Diagramas da pilha Funções com resultados

8 + FUNÇÕES M_VII - Funções e bibliotecas (Lista de Exercícos/BMN);Na programação, funções são blocos de código que realizam determinadas tarefas que normalmente precisam ser executadas diversas vezes dentro de uma aplicação. Quando surge essa necessidade, para que várias instruções não precisem ser repetidas, elas são agrupadas em uma função, à qual é dado um nome e que poderá ser chamada/executada em diferentes partes do programa.                                                                                          

9 + FUNÇÕES  A sintaxe de uma função é definida por três partes: nome, parâmetros e corpo def hello(meu_nome): print('Olá',meu_nome) hello('Fabio') Olá Fabio var_nome 'Fabio'                                                                                

10 + FUNÇÕES def hello(meu_nome,idade):print('Olá',meu_nome,'\nSua idade é:',idade) hello('Fabio',28) Olá Fabio Sua idade é:28 

11 EXEMPLOS DE FUNÇÕES EM PYTHON (P3)# Definir uma FUNÇÃO # Funções usadas no Programa P3 # Benedito Medeiros Neto, FAC/UnB, 29/10/16  def order():     print(" Would you like make you order? ")     print("Please") order()  def wait():     print("Please! Wait 15 minutes") wait()  def enjoy():     print("Enjoy your food")  enjoy()

12 + FUNÇÕES Funções nativas do Python maior_numero = max(1, 2, 3)maior_letra = max('a', 'b', 'c') print(maior_numero) print(maior_letra) Funções disponíveis em módulos import math exponencial = math.exp(3) print(exponencial)

13 LISTA DE EXERCÍCIO EXERCÍCIO 17 – UMA SIMPLES CALCULADORA (4 OPERAÇÕES/Func.) EXERCÍCIO 16 – TRABALHANDO COM 2 FUÇÕES (Entrar com 3 Numeros, verificar se é um Triângulo, caso seja, qual é tipo X. Apresentar os lados do triângulo na ordem crescente) EXERCÍCIO 13 – PESQUISA NO SITE DA FAC (100 tag, urllib). Uma biblioteca aplicada à Comunicação (Ensino ou Pesquisa) EXERCÍCIO 18 – ENVIANDO VÁRIOS (10 Endereços, smtplib) Uma biblioteca aplicada à Comunicação (Ensino ou Pequisa)

14 LISTA: EXERCÍCIO 17 EXERCÍCIO 17 – UMA SIMPLES CALCULADORA(Com 4 OPERAÇÕES/Func.) SAÍDA: Apresentar o resultado SAÍDA: Qual o formato? Definir em conjunto com os Estudantes. Sómente na forma de Inteiros, ponto flutuante, ou ambas SAÍDA: Como uma simples Calculadora

15 LISTA: EXERCÍCIO 17 EXERCÍCIO 17 – UMA SIMPLES CALCULADORA(Com 4 OPERAÇÕES/Func.) ENTRADA: Entrar com dois números QQ ENTRADA: Criticar a entrada PROCESSO: Fazer a operação solicitada (usar função com parâmetros)

16 LISTA: EXERCÍCIO 16 EXERCÍCIO 16 – TRABALHANDO COM 2 FUÇÕES: USAR:EXERCÍCIO 06 – Tipo de Triângulo, como uma função EXERCÍCIO 15 – Menor e Maior número

17 LISTA: EXERCÍCIO 16 EXERCÍCIO 16 – TRABALHANDO COM 2 FUÇÕES:SAÍDA – Tipo de Triângulo, como uma função, apresentar os lados do Triângulo na ordem crescente. Mostrar os lados do triãngulo de alguma forma gráfica ENTRADA – Entrar com 3 números, criticar a Entrada dos números.

18 LISTA: EXERCÍCIO 16 EXERCÍCIO 16 – TRABALHANDO COM 2 FUÇÕES:Algoritmo: Entrada dos numeros Critica dos números Verifica o tipo do triângulo Coloca os lados na ordem crescente Apresenta os lados do triânulo fim do Algoritmo

19 TESTE O PROGRAMA/Func. Passo 1: Abri o Python (3.5. ou 2.7.) que você já instalou na TAREFA anterior Passo 2: Digite o primeiro comando, exatamente como foi escrito, veja o afastamento (Cuidado com os Editores de Textos) Passo 3: Use EDI, Rode e veja o resultado, está correto? Passo 4: Digite o próximo comando, testado, cada comando do P1, e ver cada resultado Passo 5: Saia do Python

20 + BIBLIOTECAS As bibliotecas oferecem diversas facilidades ao resolver problemas diários enquanto desenvolvemos uma aplicação. Centenas de bibliotecas. Ex: - Nativas – math Smtplib (Lista de Exercícios, pg. 321) time - Externas - Urlib (Lista de Exercícios) PIL (Biblioteca de Imagem Python, pg. 333) Sdl (Simple DirectMedia Layer)

21 Superando Erros Comuns de Novatos do PythonAbsolutamente todo mundo comete erros de codificação – mesmo aquele colega que esteva programando pelos últimos 30 anos. Ninguém gosta de cometer erros e algumas pessoas não gostam de assumi-los, mas todos cometem. Então você não deve sentir muito mal quando cometer um erro. Simplesmente conserte-o e continue sua vida. (Livro Texto, pg. 336) :

22 EXERCÍCIO 13 SAÍDA – Presença da TAG (palavra) no site da FACMostrar as TAGs em uma tabela, com a respectivas frequências ENTRADA – Entrar com 100 tags (palavras para verificar), Criticar a Entrada das palavras (ortografia).

23 EXERCÍCIO 13 # Alternativa I import urllib.request try:x = urllib.request.urlopen('http://www.fac.unb.br/graduacao/jornalismo') saveFile = open('/tmp/fac.txt','w') saveFile.write(str(x.read())) saveFile.close() except Exception as e: print(str(e))

24 EXERCÍCIO 13 import urllib.requestx = urllib.request.urlopen('http://www.fac.unb.br/graduacao/jornalismo') saveFile = open('/tmp/fac.txt','w') saveFile.write(str(x.read())) saveFile.close() if 'unb' in open('/tmp/fac.txt').read(): print ("A palavra que você procura existe no texto") else: print ("A palavra que você procura não existe no texto")

25 EXERCÍCIO 13 import urllib.request# ALATERNATIVA II #Esse código está funcionando, ele faz a leitura do texto da url passada na url.librequest. Após a #leitura e salvar em um arquivo, o mesmo verifica se foram encontradas ocorrencias da palavra e a #quantidade que se repete, nesse caso coloquei a palavra alylson, ou seja, imprime 0 ocorrencias e #informa que a palavra que procura não existe no texto import urllib.request x = urllib.request.urlopen('http://www.fac.unb.br/graduacao/jornalismo') saveFile = open('/tmp/fac.txt','w') saveFile.write(str(x.read())) saveFile.close()

26 EXERCÍCIO 13 with open("/tmp/fac.txt", "r") as f:searchlines = f.readlines() count = 0 for i, line in enumerate(searchlines): if 'alylson' in line: count = count + 1; print("Foram encontradas", count, "ocorrências!") if count == 0: print("A palavra que você procura não existe no texto.") else: print("A palavra que você procura existe no texto.")

27 EXERCÍCIO 13 (testado) # ALTERNATIVA III#EXEMPLO P/ EXERCÍCIO 13 - Benedito Medeiros Neto - # Alyslson Monteiro - 21/05/17 import urllib.request x = urllib.request.urlopen('http://www.fac.unb.br/graduacao/jornalismo') #saveFile = open('/tmp/fac.txt','w') arquivo = open("conteudoSITE.txt", "w") arquivo.write(str(x.read())) arquivo.close()

28 EXERCÍCIO 13 (testado) – Cont.nova_palavra = str(input("Escolha uma nova palavra: ")) print(nova_palavra) with open("conteudoSITE.txt", "r") as f: searchlines = f.readlines() count = 0 for i, line in enumerate(searchlines): if nova_palavra in line: count = count + 1; print("Foram encontradas", count, "ocorrências!") if count == 0: print("A palavra que você procura não existe no texto.") else: print("A palavra que você procura existe no texto.")

29 LISTA: EXERCÍCIO 18 EXERCÍCIO 18 – Enviando um E-mail para 10 pessoas:ENTRADA: Entrar com um originador e 10 destinatário ENTRADA: Criticar a entrada ( correto) PROCESSO: Fazer a operação solicitada (usar biblioteca smtplib)

30 LISTA: EXERCÍCIO 18 EXERCÍCIO 18 –Enviando um E-mail – Capítulo 16Entendo o processo de enviar usando o Python. Disponibilidade de um servidor SMTP (Simple Transfer Protocol) Entendendo O que Acontece Quando Você Envia Um

31 LISTA: EXERCÍCIO 18 # Conhecendo os atores da Internet import socketmyhost = socket.gethostbyname("localhost") print(myhost) mysite = socket.gethostbyname("www.filosofiacienciaarte.org") myaddr = socket.gethostbyaddr("localhost") print(myaddr) myaddrport = socket.getaddrinfo("localhost", 110) print(myaddrport) myaddrport2 = socket.getaddrinfo("google.com", 80) print(myaddrport2)

32 EXERCÍCIO 18 # ALTERNATIVA I import smtplibsmtp = smtplib.SMTP('localhost', 25) # De forma genérica. Tenta HELO primeiro. smtp.helo() de = para = msg = """From: %s To: %s Subject: Buteco Open Source de teste do Buteco Open Source.""" % (de, ', '.join(para)) msg) smtp.quit()

33 EXERCÍCIO 18 (Testado) # Exemplo P/ EXERCÍCIO 18 Benedito Medeiros Neto import smtplib toaddr = fromaddr = msg="Teste de envio de msg" print(toaddr, fromaddr, msg) username = password = 'medeirostestesmtp1' server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username,password) server.sendmail(fromaddr, toaddr, msg) print("Mensagem Enviada") server.quit()

34 TESTE O PROGRAMA (Func.)Passo 1: Abri o Python (3.5. ou 2.7.) que você já instalou na TAREFA anterior Passo 2: Digite o primeiro comando, exatamente como foi escrito, veja o afastamento Passo 3: Veja o resultado, está correto? Passo 4: Digite o próximo comando. cada comando do P1, e ver cada resultado Passo 5: Saia do Python

35 EDITOR DE PROGRAMAS - IDLEPasso 1: Abrir IDLE - Ambiente de Desenvolvimento integrado. Digite help >>>help() Passo 2: Digite o primeiro comando de P1. Rode (run) P1 Passo 3: Salve P1. Veja onde o Computador vai salvar o arquivo "PrimeiroProg.py" Passo 4: Digite P1 inteiro, e salve P1. Depois rode o programa P1 Passo 5: Sair do IDLE (exit ou .....)

36 FUNÇÕES & BIBLIOTECAS M_VII - Funções e bibliotecas (Lista de Exercícios/BMN): Exercício 17 – CALCULADORA – UMA PROGRAMA PARA UMA CALCULADORA (4 OPERAÇÕES/Func.) Exercício 16 – TRIÂNGULO E LADOS (Funções) - TRABALHANDO COM 2 FUÇÕES (Entrar com 3 Numeros, verificar ser for um Triângulo tipo X. Apresentar os lados do triângulo na ordem crescente) Exercício 13 – Buscando 100 TAG em um site. Usando urllib (Biblioteca) Exercício 18 – Enviando um para 10 pessoas. Usando smtplib (Biblioteca)                                                                                         

37 Novo EDITOR – PyCharm CEPasso 1: Abrir PyCharm - Ambiente de Desenvolvimento integrado. Passo 2: Digite o primeiro comando de P1. Rode (run) P1 Passo 3: Salve P1. Veja onde o Computador vai salvar o arquivo "PrimeiroProg.py" Passo 4: Digite P1 inteiro, e salve P1. Depois rode o programa P1 Passo 5: Sair do PyCharm (exit ou .....)

38 BUSCAR PROGRAMS NA WEB Passo 1: Consultar as diversas Bibliotecas de Programas e Grupos de Trabalho Colaborativos (Software Livre) Passo 2: Fazer o download do fonte .py. Exemplo o livro Programar em Python para Leigos oferece código-fonte dos exemplos em procurando pelo título do livro. Passo 3: Testar todas as funcionalidades do programa (Função ou Biblioteca) e fazer a customização necessária ou que você deseja

39 Lidando com Erros Sabendo Porque Python Não Entende VocêExaminando as Fontes dos Erros b.1) Classificando quando os erros ocorrem b.2) Distinguindo tipos de erros Capturando exceções c.1) Manipulando exceções básicas c.2) Manipulando exceções mais mais especificas c.3) Manipulação de exceções aninhadas Levantando Exceções

40 +LISTA DE FUNC. BIBLI. EXERCÍCIO AA – Função aplicada à Comunicação:EXERCÍCIO BB – Função aplicada na Comunicação: EXERCÍCIO CC – Uma função que pode melhorar o seu desempenho na programa para a área de Comunicação EXERCÍCIO DD – Mostra uma aplicação de uma biblioteca do Livro Texto, aplicação nas área da Comunicação

41 EXEMPLO DE FUNC/BIBLI - AAFunção aplicada na Comunicação: Escolhendo uma função e aplicando na Área de Comunicação, parte pratica: Criando Aplicações Rapidamente Usando um IDE (pg.334) =>https://wiki.python.org/moin/PythonEditors

42 EXEMPLO DE FUNC/BIBLI - BBFunção aplicada à Comunicação: Usando XML a Seu Favor (pg. 335) =>

43 EXEMPLO DE FUNC/BIBLI CCFunção aplicada na Comunicação: Escolhendo uma função e aplicando: Checando a Sua Sintaxe com Maior Facilidade Página 334 =>

44 EXEMPLO DE FUNC/BIBLI - DDEXERCÍCIO DD – Função aplicada na Comunicação: Escolhendo uma função e aplicando: Superando Erros Comuns de Novatos do Python (pg. 336). Todo mundo comete erros de codificação. Ninguém gosta de cometer erros e algumas pessoas não gostam de assumí- los.

45 EXEMPLO DE FUNC/BIBLI - EEPrettyTable (Fazendo uma Boa Apresentação de Dados Tabulares Usando o PrettyTable) (pg. 360) Os comunicadores precisam de algo que seja organizado de uma forma que os humanos entendam e que seja visualmente atraente Vendo o Mundo Usando o Google Maps

46 EXEMPLO DE FUNC/BIBLI - FFInteragindo com Bancos de Dados Usando o SQLAIchemy (http://www.sqlalchemy.org/ ) (pg. 358): SQLDR – Sistema de Banco de Dados Relacional, usa tabelas que são organizadas em registros e campos. SQLDR basei-se em uma linguagem especial chamada SQL – Structured Query language, para acessar os registros individuais.

47 EXEMPLO DE FUNC/BIBLI - GGManipulando Imagens Usando o PyQtGraph (http://www.pyqtgraph.org/ ) (pg. 361) Os auxiliam as pessoas …. Para usá-lo, você precisa destes itens instalados em seu sistema: Python versão 2.7 ou acima ….