Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani



Documentos relacionados
Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Introdução à Linguagem

Organização de programas em Python. Vanessa Braganholo

Python: Comandos Básicos. Claudio Esperança

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Python Funções. Introdução à Programação SI1

2 Orientação a objetos na prática

Prof. Esp. Adriano Carvalho

Componentes da linguagem C++

e à Linguagem de Programação Python

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Introdução aos cálculos de datas

Introdução à Programação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Linguagens de programação

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Programação Básica em Arduino Aula 2

Fábio Rodrigues Jorge.

CURSO DE PROGRAMAÇÃO EM JAVA

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Criando um script simples

2 echo "PHP e outros.";

Treinamento Python/Zope/Plone. terça-feira, 4 de agosto de 15

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Algoritmos e programação

Resumo da Matéria de Linguagem de Programação. Linguagem C

Algoritmos com VisuAlg

PYTHON LISTAS. Introdução à Programação SI2

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

BC0501 Linguagens de Programação

Algoritmos em Javascript

Python. Introdução à Programação SI1 - BSI

Lição 1 - Criação de campos calculados em consultas

Noções sobre Objetos e Classes

JSP - ORIENTADO A OBJETOS

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Programação Elementar de Computadores Jurandy Soares

CURSO B SICO DE PERL

Scriptlets e Formulários

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Estruturas de controle no nível de sentença

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Sintaxe Básica de Java Parte 1

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Python Condicionais e Loops. Introdução à Programação SI1

Programação: Estruturas de seleção

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

Programação WEB I Estruturas de controle e repetição

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Programação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Roteiro do Programa e Entrada/Saída

Aula 4: adivinhe o número

OPERADORES E ESTRUTURAS DE CONTROLE

Estruturas de entrada e saída

Tutorial de Matlab Francesco Franco

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

IFTO LÓGICA DE PROGRAMAÇÃO AULA 02

Introdução ao FORTRAN (Parte I)

UFRPE Prof. Gustavo Callou

JavaScript (ou JScript)

Orientação a Objetos

Excel Planilhas Eletrônicas

QUITETURA AVANÇADA DE SISTEMAS

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Ruby. Simplicidade e produtividade

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

5 Apresentando a linguagem C

Manual para conversão de Teses e Dissertações em PDF

Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim

Curso de Programação Computadores

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Programação online em Java

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Microsoft Excel 2007

Java Como Programar, 8/E

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

INF 1005 Programação I

Fundamentos de Programação II. Introdução à linguagem de programação C++

Introdução ao Javascript

OPENOFFICE PLANILHA SEMANA 4

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Probabilidade e Estatística I Antonio Roque Aula 8. Introdução ao Excel

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

AMBIENTE DE PROGRAMAÇÃO PYTHON

Aluísio Eustáquio da Silva

Transcrição:

Minicurso de Python Aula 1 Raphael Lupchinski Marcelo Millani

Introdução Python é uma linguagem de programação poderosa e fácil de aprender Possui estruturas de dados eficientes e de alto nível, além de suporte à OO. É uma linguagem ideal para scripting dada a sua sintaxe elegante (muito açúcar sintático) e o fato de ser uma linguagem interpretada. É completamente Open Source. Possui uma extensa documentação na web para dar suporte aos iniciantes.

Características Interpretada Identação define escopo (sem necessidade dos famigerados {} ) Tipagem dinâmica (os tipos das variáveis não precisam ser explicitados, podendo variar durante a execução ou compilação) Tipagem forte (a variável mantém seu tipo até sofrer uma nova atribuição)

Identação O escopo, em Python, é definido pela identação do comando: 1 if n < 30: 2 print ( n is too low! ) 3 else: 4 print ( n is good enough! )

Programas em Python Um programa Python é uma coleção de arquivos.py Podem ser organizados em módulos ou pacotes Pacote Script.py import Modulo.py Modulo.py

Vamos começar! Abra no Ubuntu o terminal e digite python (sem as aspas) Você notará o prompt primário (>>>), pedindo operações. O prompt secundário (...) aparece nas linhas secundárias da instrução. Faça o teste: >>> print hello world!

Se virando... Para obter ajuda interativa: >>> help() Para obter ajuda sobre algum objeto: >>> help(object) Propriedades dos objetos: >>> dir(object) Tipos dos objetos: >>> type(object) Documentação extra online (sugerido): http://docs.python.org/tutorial/index.html

Expressões matemáticas Possui sintaxe semelhante a outras linguagens (C-like) O interpretador age como uma calculadora. Execute estes comandos e analise os resultados: >>> 2+2 >>> 3-5 >>> 2**3 >>> 5/4 >>> 5/float(4) >>> 5/_ O que podemos concluir sobre o retorno?

Expressões matemáticas Possui sintaxe semelhante a outras linguagens (C-like) O interpretador age como uma calculadora. Execute estes comandos e analise os resultados: >>> 2+2 #soma simples: 4 >>> 3-5 #subtração simples: -2 >>> 2**3 #exponenciação: 8 >>> 5/4 #divisão inteira: 1 >>> 5/float(4) #divisão real: 1.25 >>> 5/_ #5/(5/float(4)): 4.0 O que podemos concluir sobre o retorno? Exceto quando explicitado, retorna um inteiro

Variáveis Existe o suporte para a criação de variáveis sem tipo específico (tipagem dinâmica). Execute os seguintes comandos e analise os resultados: >>> a = 2 >>> a >>> b = 3 >>> b/a >>> a = 2.0 >>> b/a >>> b//a >>> a,b = 8,2 >>> a >>> b

Variáveis Existe o suporte para a criação de variáveis sem tipo específico (tipagem dinâmica). Execute os seguintes comandos e analise os resultados: >>> a = 2 >>> a # 2 >>> b = 3 >>> b/a # 1 >>> a = 2.0 >>> b/a # 1.5 >>> b//a # 1.0 (ignora a parte fracionária) >>> a,b = 8,2 >>> a # 8 >>> b # 2

Outros detalhes Existe suporte para números complexos: (real+imagj) >>> a = 1.3+0.8j >>> a.real 1.3 >>> a.imag 0.8 Não é um tipo convertível para int ou float, mas podemos aplicar abs(a) para convertê-lo.

Outros detalhes É possível importarmos módulos com operações prontas, já disponíveis na biblioteca padrão do Python. >>> import math >>> math.pi 3.1415926535897931 >>> math.degrees(_) 180.0 >>> math.cos(3*math.pi) -1.0

Exercício Abra um editor de texto (gedit é um bom começo), e crie um arquivo.py Resolva o exercício proposto Teste seu programa no terminal escrevendo: $ python meuprograma.py Faça um programa que calcula o IMC do usuário. (imc = massa/altura^2) Para os inputs, utilize o comando var = raw_input( texto ) Não se esqueça das conversões para int e float Para os outputs, utilize print var

Strings Além de números, Python manipula bem strings. >>> name = Raphael Podem ser expressadas de diversas maneiras, sendo contidas com aspas simples ou duplas. >>> aspas simples >>> aspas duplas Ao utilizar um caracter na string idêntico aos caracteres que contiverem a string, use um backslash ( \ ) >>> Don\ t judge me!

Operações em Strings Strings podem ser concatenadas utilizando o operador + >>> texto = palavr + a >>> texto palavra Strings podem ser replicadas utilizando o operador * >>> novo = < + texto*2 + > >>> novo <palavrapalavra> O tamanho de uma string pode ser obtido com a função len() >>> len(novo) 15

Indexação Assim como em C, Python gera índices para os caracteres de suas strings: >>> word = abóbora >>> word[3] b Podemos acessar fatias da string com o operador : >>> word[3:6] #seleciona [3,6) bor >>> word[4:] #seleciona [4,len(word)) ora É impossível modificar o conteúdo de uma string, mas é possível criar uma nova ;)

Mais indexação É necessário entender como funciona a indexação de elementos. A indexação em Python é bem diferente daquela vista em C. Se a string for, por exemplo, python, temos os seguintes índices: string[-6-5 -4-3 -2-1 0 1 2 3 4 5] p y t h o n p y t h o n Qualquer outro índice gera um out of boundaries

Listas É capaz de agrupar elementos de tipos diferentes. >>> a = [] #a é uma lista vazia >>> b = [1, foo, 4**2, string ] >>> b [1, foo, 16, string ] O acesso aos elementos funciona igual aos acesso em strings >>> b[:2] [1, foo ] Ao contrário das strings, listas são mutáveis

Operações sobre listas Caso não seja possível (ou recomendado) trabalhar com uma lista, para evitar alteração dos dados, podemos utilizar a sua cópia rasa: >>> a = [1, foo, 4**2, string ] >>> a[:] [1, foo, 16, string ] Teste as seguintes funções no terminal, e analise os resultados: >>> a[1:1] = [ new, element ] >>> a[:0] = a >>> a[0:2] = []

Operações sobre listas Caso não seja possível (ou recomendado) trabalhar com uma lista, para evitar alteração dos dados, podemos utilizar a sua cópia rasa: >>> a = [1, foo, 4**2, string ] >>> a[:] [1, foo, 16, string ] Teste as seguintes funções no terminal, e analise os resultados: >>> a[1:1] = [ new, element ] # Inserção >>> a[:0] = a # Replicação >>> a[0:2] = [] # Deleção

Mais operações sobre listas Podemos também aninhar listas >>> a = [1, 2] >>> b = [0, a, 3] >>> b [0, [1, 2], 3] >>> len(a) # deve retornar quanto aqui? >>> len(b) # e aqui? Ainda assim é possível acessar todos os elementos: >>> b[1][0] + b[1][1] 3

Controle de fluxo (finalmente) Começaremos pelo if: 1 x = int(input( insira um inteiro: )) 2 if x < 0: 3 print x é negativo 4 elif x == 0: 5 print x é zero 6 else: 7 print x é maior que zero Bem simples, não?

Operações booleanas Como visto no slide anterior, temos algumas operações booleanas: ==, <=, >=, <>, <, >,!=, is, and, or, not Temos também o operador de pertinência in if e in lista: print pertence Assim como encadeamento if 1 < x < 10: print x entre 1 e 10

Controle de fluxo (IF) Exercício: Pegue o seu código, que calculava o IMC de um usuário, e classifique-o segunda esta tabela: IMC X < 18.5 Classificação Abaixo do peso 18.5 < X < 25 Peso normal 25 < X < 30 Sobrepeso 30 < X < 35 Obesidade grau I 35 < X < 40 Obesidade grau II X > 40 Obesidade grau III

Controle de fluxo (and on...) E então for: 1 a = [ atirar, de, bazooka ] 2 for x in a: 3 print x, len(x) Ao contrário do for em C, o for em Python itera em progressão aritmética pelos elementos contidos em a. Qual seria o resultado do código acima?

A função range() Quando se faz por necessário a iteração sobre uma sequência de números, o comando range(n) é bem vindo! >>> range(8) # range(a): 0 até a-1 [0, 1, 2, 3, 4, 5, 6, 7] Existe polimorfismo aqui, diferenciado pela quantidade de parâmetros: >>> range(3,8) # range(a,b): a até b-1 [3, 4, 5, 6, 7] >>> range(2,10,3) # range(a,b,c): a até b-1, inc c [2, 5, 8]

Exercício Elabore um método que recebe como entrada um número n e imprima na tela somente os números primos menores que n. Dica: use o comando for aqui, e faça uma iteração sobre os elementos utilizando a função range()

Controle de fluxo (and on and on...) E então while: 1 a = [ atirar, de, bazooka ] 2 x = 0 3 while x < len(a): 4 print a[x], len(a[x]) 5 x += 1 Bem semelhante ao while em C. Qual seria o resultado do código acima?

Funções! É chegada a hora! Definir uma função é simples, basta utilizar a palavra def. 1 def myfunc(n): 2 print O argumento passado vale:, n O def é seguido do nome da função e a lista de parâmetros (entre parênteses). Após gerar uma função, a identação é necessária.

Exercício Faça um programa que recebe um inteiro n pelo teclado e imprime os números da sequência de Fibonacci menores que n. Lembrando: Para o input use: x = input() Para o output use: print x

Mais sobre funções Funções que não geram retorno (return), podem ser chamadas de métodos, e seu valor de retorno é none: Tente usar o comando print seguido de uma função sem retorno. Altere o funcionamento do método criado anteriormente (Fibonacci), fazendo com que ele retorne uma lista com os valores da sequência menores que n. Dica: para inserir elementos em uma lista, use o comando: lista.append(elemento_novo)

Por hoje é isso Veremos na próxima aula: Argumentos default em funções Número variado de argumentos Funções lambda Estruturas de dados Ferramentas de programação funcional Tuplas, sequências e dicionários Técnicas de iteração Módulos And so on... Resolver os certificados!

Obrigado pela participação! Raphael Lupchinski Marcelo Millani