Click here to load reader

Introdução a Python

  • View
    149

  • Download
    1

Embed Size (px)

Text of Introdução a Python

Introduo a linguagem Python 2.7Universidade Federal de Lavras Departamento de Cincia da Computao Ben Hur Bahia do Nascimento

Sobre os slides Esse slide foi feito por Ben Hur Bahia do Nascimento {bh [ at ] comp.ufla.br}, baseado nas obras citadas como bibliografia no fim do arquivo e pode ser distribudo gratuitamente, sob a licena:

Licena Creative Commons Atribuio-Uso NoComercial-compartilhamento pela mesma Licena 2.5 Brasil. Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-ncsa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Python: Criador e Origem A linguagem foi criada por Guido von Russom. O nome Python teve a sua origem no grupo humorstico britnico Monty Python criador do programa Monty Python's Flying Circus, embora muitas pessoas faam associao com o rptil do mesmo nome (em portugus, pton ou pito).

O que Python?

uma linguagem de programao de altssimo nvel

Suporte nativo a estruturas de dados de alto nvel

Interpretada (compilvel tambm)Imperativa Multiparadigma

Orientada a objetos, Procedural e Funcional

Possui tipagem dinmica e fortePossui Garbage Colector (Gerenciador de Memria)

A linguagem Case Sensitive Interage com outras linguagens

IronPython (.NET), Jython(Java), C e C++

Por que usar Python? Sintaxe limpa, concisa e de fcil leitura Mais com menos cdigo Fcil aprendizado Forte suporte da comunidade Documentao extensa Biblioteca padro enorme

Quem usa Python? Google NASA Nokia Gimp/Inkscape/Blender Governo (brasil.gov.br) Portal G1(g1.globo.br) utilizada em vrios processos no Linux. http://www.python.org.br/wiki/EmpresasPython http://www.python.org/about/success/

Interpretao e Compilao

Modo interativo

chamar o interpretador e executar cdigo em tempo real. Salve o arquivo com extenso *.py, entre no terminal e v na pasta do arquivo e digite python .py

dir() e help() Os comandos mais teis, pois facilitam a descoberta das funcionalidades das funes e mtodos para objetos. dir(objeto) Retorna uma lista de atributos e mtodos do objeto

print help(objeto) Mostra a documentao do objeto

Tipos-classe Tipos e classes, em Python, so unificados. No h declarao de tipo, mas uma inferncia de tipo.

type() retorna o tipo da varivel. Os tipos possuem mtodos prprios. As variveis podem mudar de tipo em tempo de execuo. Existem: inteiro, inteiro longo, ponto flutuante, string, booleano, octal e hexadecimal.

Tipos-classe: Nmeros

varivel = algum valor>>> really_long = 99999999999999999999 #20 9s >>> type(really_long) >>> a = True >>> b = False >>> type(a) >>> type(b)

>>> a = 1 >>> type(a)

Tentem usar dir(a) e help(a)

>>> a = 'texto' >>> b = "texto" >>> type(a) >>> type(b)

Converses bsicas de tipo int(), float(), str(), bool(), long()>>> int(2.71) 2 >>> bool(1) True >>> float(5) 5.0 >>> bool(0) False >>> str(255) '255' >>> str(True) 'True'

>>> bool(43) True

>>> bool('') False

>>> bool(sou verdadadeiro') True

>>> long(2.56) 2L

>>> float(233333333333337777777777778888888888999999999999933334421L) 2.3333333333333778e+56

Testem no interpretador!

Tipos-classe: Operadores Aritmticos Padres: + - * / Diviso inteira: a / b -> sendo a E b inteiros. Diviso inteira: a // b -> sendo a OU b float Diviso float: a / b -> sendo a OU b float Exponenciao: base ** exp Mdulo: a % b -> resto da diviso de a por b

Tipos-classe: StringsStrings: strings padres so imutveis:banda1 = Led Zeppelin #String simples banda2 = Rachmaninov #String simples linhas=Essa e uma string em multiplas linhas. >>> print linhas Essa e uma string em multiplas linhas

Tipos-classe: Strings -> Operaes +(concatenao) e *(multiplicao) >>> banda = Arctic >>> banda + Monkeys! Arctic Monkeys! >>> banda * 3 ArcticArcticArctic

Tipos-classe: Strings -> Mtodos Utilizando os mtodos replace(),strip() faa: Troque onde houver cachorro por macaco e vice-versa:animais=Os macacos vivem coando as costas. Se fosse um cachorro, morderia.

Traduza essa mensagem:msg=02 42tr0n4ut42 ch3g4r4m.

Tipos-classe: Strings

Tipos-classe: Strings Operador % usado para fazer interpolao de strings. A interpolao mais eficiente no uso de memria do que a concatenao convencional.>>> qtdDinheiros = 23 >>> print Eu tenho %d dinheiros! % qtdDinheiros Eu tenho 23 dinheiros! >>> print Eu tenho %x hexas! % qtdDinheiros Eu tenho 17 hexas! >>> print Eu tenho %o octais! % qtdDinheiros Eu tenho 27 octais!

Tipos-classe: Strings mutveis Strings da classe UserString so mutveis:from UserString import MutableString >>> a = MutableString( Pascal =) ) >>> print a Pascal =) >>> a[-1] = ( >>> print a Pascal =(

Tipos-classe: Strings Smbolos usados na interpolao: %s: string. %d: inteiro. %o: octal. %x: hexadecimal. %f: real. %e: real exponencial. %%: sinal de percentagem.

Tipos-classe: ListasLista: so colees heterogneas de objetos, que podem ser de qualquer tipo, inclusive outras listas. Sintaxe: = []L = [ Douglas Adams, oi, [3.14,2.71],1]

So mutveis, podendo ser alteradas a qualquer momento. Listas podem ser fatiadas da mesma forma que as strings, mas como as listas so mutveis, possvel fazer atribuies a itens da lista.

Tipos-classe: Listas -> MtodosAlguns mtodos/operaes em listas:>>> lista = [Anem] >>> lista.append(1.9) >>> lista [Anem, 1.9] >>> lista.remove(Anem) >>> lista [1.9] >>> lista.append(0.7) >>> lista.append(58) >>> lista [1.9, 0.7, 58]>>> lista.sort() >>> lista [0.7, 1.9, 58] >>> lista.reverse() >>> lista [58, 1.9, 0.7] >>> lista[1:] [1.9, 0.7]

Tipos-classe: Listas -> MtodosAlguns mtodos/operaes em listas:>>> lista.pop() #Implementa filas e pilhas 0.7 >>> lista [58, 1.9] >>> lista.pop(0) #ndice 58 >>> lista = [1,2,3] >>> lista.insert(1,intruso) # posio especfica >>> lista [1, intruso, 2, 3]

Tipos-classe: TuplasSemelhantes as listas, porm so imutveis: no se pode acrescentar, apagar ou fazer atribuies aos itens. Utilidade: aloca memria de forma contnua, melhorando desempenho. Indicado para utilizao matemtica. Sintaxe: = ()tuplita = (142857,Chico Buarque,uRichard Dawkins) tupra = 'Michael Jackson', "Howlin' Wolf", 'John Coltrane'

A funo list() transforma uma tupla em lista A funo tuple() transforma uma lista em tupla

Tipos-classe: Tuplas -> Mtodosalguns

mtodos: count() : conta quantos itens existe do valor passado como paramtro(serve para lista tambm): a = 1,1,3,3,4 a.count(1) >> 2 index() : retorna a primeira posio que o valor passado como paramentro aparece. a.index(3) >>2

Tipos-classe: Dicionrios Um dicionrio uma lista de associaes compostas por uma chave nica e estruturas correspondentes. Dicionrios so mutveis, tais como as listas. A chave precisa ser de um tipo imutvel, geralmente so usadas strings, mas tambm podem ser tuplas ou tipos numricos. J os itens dos dicionrios podem ser tanto mutveis quanto imutveis. O dicionrio do Python no fornece garantia de que as chaves estaro ordenadas.

Tipos-classe: Dicionrios

Tipos-classe: Dicionrios -> Mtodos Exemplo de dicionrio:>>> dic = {pi: 3.1415, 42: Douglas Adams} >>> dic[pi] 3.1415 >>> dic[42] Douglas Adams >>> dic[python] = massa! >>> dic[python] massa >>> # se a chave no existir, retorna booleano False >>> dic.pop(pi,False) 3.1415 >>> dic.pop(pi,False) False >>> for chave,valor in dic.iteritems(): ... print chave,=>,valor python => massa! 42 => Douglas Adams

Tipos-classe: Dicionrios -> Mtodos>>> dic.get(42,Caso no existir retorne essa string) Douglas Adams >>> dic[42] Douglas Adams >>> dic.items() [(python,massa), (42, Douglas Adams)] >>> dic.keys() [python,42] >>> dic.values() [massa, Douglas Adams] >>> dic.has_key(python) True >>> dic.clear() >>> dic {}

Tipos-classe: Booleanos Em Python existe as palavras reservadas True e False para tipo booleano. Porm, muitas coisas em Python so considerados booleanos bool() : verifica se a varivel verdadeira ou falsa: Qualquer valor diferente de zeros e vazios considerado verdadeiro.

Tipos-classe: Booleanos>>> bool(0) False >>> bool(0.0) False >>> bool() False >>> bool() False >>> bool([]) False >>> bool(()) False >>> bool({}) FalseTodo o resto considerado verdadeiro, True

Tipos-classe: Booleanos -> Operadores Booleanos and,or,not,is e in >>> True and True True >>> True or False True >>> 4 in [1,4] True >>> a=1; b=a >>> a is b True

>>> 1 or False 1 >>> 0 or False False >>> not True False >>> not 1 False

Tipos-classe: Booleanos -> Operadores Relacionais >, =, >> 1>> 2>3 False >>> 3>=3 True >>> 4>> x=3 >>> 2> all(1,5.5) True >>> any(0,1) True

Sintaxe: Blocos

O uso de barra invertida (\) e vrgula (,) permitem continuar um cdigo em outras linhas. Para comentrios: #. E a linha ser ignorada, com exceo de comentrios funcionai