Programação para Internet II Prof. André Luiz Silva de Moraes Material original de Prof. Marcelo da Silveira Siedler [email protected] SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS Objetivos o Aplicação dos conceitos de programação em sockets. o Identificar e aplicar programação em sockets no desenvolvimento de aplicações para a Internet. o Identificar os protocolos de aplicação em relação à lógica de programação com sockets; Metodologia o Aulas expositivas o Aulas práticas com softwares e soluções à serem desenvolvidas no laboratório. Linguagem de Programação o Python o Linguagem de programação simples, já adotada no curso e bastante aceita para o objetivo da unidade. Avaliação o Provas práticas o Trabalhos individuais e em grupo desenvolvidos e/ou apresentados em aula o Pontualidade na entrega das atividades o Avaliação Individual o 75% de freqüência Roteiro o REVISÃO PYTHON o USANDO LIST E DICS o ESCREVENDO EM ARQUIVOS o ORIENTAÇÃO A OBJETOS EM PYTHON – o o o o INTRODUÇÃO PROGRAMAÇÃO EM SOCKETS - Aplicações Cliente-Servidor - E-Mail - Acesso SSH SOCKETS “Socket é a interface entre a camada de aplicação e a de transporte dentro de uma máquina” JAMES F KUROSE o É a porta na qual os processos enviam e recebem mensagens. Revisão Python Escrever na saída do programa print comando - exemplos: print 'LPWEB II' print 3 ** 50 Comentários # comentário Importar Bilioteca import biblioteca - exemplo: import sys Variáveis • Python possui tipagem dinâmica e forte; • Tipagem dinâmica significa que a variável assume o tipo de acordo com o valor atribuído; • Tipagem forte significa que se uma variável é do tipo inteiro, ela deve ser tratada como um inteiro, ou convertida para ser tratada de outra forma; • Para mudar o tipo de uma variável, devemos declará-la novamente; Variáveis o Tipagem Dinâmica >>> a = 1 >>> type(a) <type 'int'> >>> a = 'flavio' >>> type(a) <type 'str'> o Tipos Nativos o float, int, long, boolean, strings, listas, tuplas e dicionários. Entrada de Dados – teclado • Em Python, a leitura de dados do teclado é feita através das funções raw_input e input. nome = raw_input("Digite seu nome: ") idade = input("Digite sua idade: ") print("Digite seu sexo: ") sexo = sys.stdin.readline() A função input “adivinha” o tipo digitado e retorna. CUIDADO! A função raw_input sempre retorna uma string. Assim funciona, mas você não precisa disso! ;) Operadores • Os operadores do Python: Aritméticos Comparação Lógicos + == and - != or * > not / < % >= <= in is Instruções Condicionais o if – elif – else >>> if nota >= 7: print 'Parabens.' elif nota >= 5: print 'Voce esta na recuperacao!‘ else: print 'Voce foi reprovado.' Exercício o Criar um script que solicite que o usuário digite sua idade, retornando se o mesmo é maior de idade ou não. Instruções de Repetição o while >>> numero = 20 >>> while numero > 10: ... numero= input("Digite um numero: ") ... Digite um numero: 11 Digite um numero: 12 Digite um numero: 2923929 Digite um numero: 9 >>> Exercício o Criar um script que receba um número e imprima todos os números pares entre 1 e o número digitado. Instruções de Repetição o For >>> for var in objeto_iteravel: Exemplo: >>> for numero in [1,2,3,4]: ... print numero, ... 1234 >>> String – Lista de métodos o __len__(): Retorna o tamanho da string; o __getslice__(inicio, fim): Retorna uma substring de inicio até fim. o capitalize(): Retorna a mesma string com a primeira letra em maiúsculo. o upper(): Retorna a mesma string com todas as letras em maiúsculo. o lower(): Retorna a mesma string com todas as letras em minúsculo. String – Lista de métodos o replace(antigo, novo): Retorna a mesma string com o valor novo em todas as ocorrências de antigo. o split([separador]): Retorna uma lista de strings. Caso o separador não seja especificado, a lista será dividida por espaços em branco. Exercício o Criar um script que atribua a uma variável a string ‘Maça, Uva, Laranja, Alface’. o Trocar Alface por Abacaxi o Retornar uma lista de strings com as frutas atribuídas. Estrutura de Dados – List o alunos = [] o alunos.append("Monica") o alunos.append("Cascao") o alunos.append("Cebolinha") o alunos.reverse() o for nome in alunos: o print nome Estrutura de Dados – List alunos = ["Monica", "Cascao", "Cebolinha"] alunos.reverse() tamanho = alunos.__len__() i = 0 while i < tamanho: print(alunos[i]) i += 1 Estrutura de Dados - List o Métodos o append(elemento): adiciona elemento ao fim da lista. o count(elemento): retorna um inteiro contendo a quantidade de vezes que elemento aparece na lista. o reverse(): inverte a ordem dos elementos da lista. o remove(elemento): remove da lista o primeiro elemento encontrado. Trabalhando com Arquivos • Arquivos são objetos do tipo file; • Para a abertura de um arquivo, utilizamos a função open; • A função open funciona como uma fábrica de instâncias. Trabalhando com Arquivos arquivo = open("entrada.txt") Abrindo o arquivo para leitura Imprimindo uma linha do arquivo a cada duas linhas da tela. for linha in arquivo: print(linha) Imprimindo uma palavra por linha for linha in arquivo: linha = linha.replace("\n", "") palavras = linha.split('\t') for palavra in palavras: print(palavra)