Você está na página 1de 20

Curso Python Parte 1

Prof. Ilton L Barbacena

2014

O Que Python?
Python uma linguagem de programao de alto nvel , interpretada, imperativa, orientada a objetos, funcional, de tipagem dinmica e forte. Foi lanada por Guido van Rossum em 1991. Atualmente possui um modelo de desenvolvimento comunitrio, aberto e gerenciado pela organizao sem fins lucrativos Python Software Foundation. Apesar de vrias partes da linguagem possurem padres e especificaes formais, a linguagem como um todo no formalmente especificada. O padro de fato a implementao CPython. A linguagem foi projetada com a filosofia de enfatizar a im2portncia do esforo do programador sobre o esforo computacional. Prioriza a legibilidade do cdigo sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padro e por mdulos e frameworks desenvolvidos por terceiros. O nome Python teve a sua origem no grupo humorstico britnico Monty Python,6 criador do programa Monty Python's Flying Circus, embora muitas pessoas faam associao com o rptil do mesmo nome (em portugus, pton ou pito).
2 / 20

Caractersticas do Python
Trata-se de uma linguagem interpretada , orientada a objetos e de propsito geral. Python uma linguagem expressiva, em que fcil traduzir o raciocnio em um algoritmo e escalvel (modulus, classes, controle de excees); Usa a endentao para controle dos blocos. No existe { ... } ou begin .... end; Quase nenhum uso de palavras-chave voltadas para a compilao; Coletor de lixo para gerenciar automaticamente o uso da memria; Suporta mltiplos paradigmas de programao: sobrecarga de operadores, herana mltipla, etc ; Possui uma biblioteca padro imensa, que contm classes, mtodos e funes para realizar essencialmente qualquer tarefa, desde acesso a bancos de dados, a interfaces grficas com o usurio. Linguagem gratuita e multi-plataforma (nativa no linux); Possui uma comunidade ativa e vibrante, espalhada por todo o mundo;

3 / 20

O que necessrio?
Uma implementao da linguagem http://www.python.org
Implementao pronta para baixar (windows) ;

Python nativo no linux; Um editor de textos Qualquer editor serve Ambiente IDLE que inclui um editor Includo na distribuio windows

4 / 20

Python: Site oficial


Site oficial da linguagem:
http://www.python.org/.

Site oficial da comunidade brasileira:


http://www.pythonbrasil.com.br/

Perguntas frequentes:
http://www.pythonbrasil.com.br/moin.cgi/PerguntasFrequentes/SobrePython

Comunidade:
http://br.groups.yahoo.com/group/python-brasil

5 / 20

Python: Tela principal

Python no Ubuntu (nativo) $ sudo apt-get install geany idle $ idle

Python no Windows (https://www.python.org/downloads/ )


Idle aps a instalao

Help() => https://docs.python.org/2.7/tutorial/

6 / 20

Python: prompt como calculadora


>>> 10 10 >>> # Um comentrio precedido do caractere "#" >>> 10-15 # Comentrios podem aparecer tambm aps cdigo -5 >>> 10*3 30 >>> 10/3 3 >>> 10/3. # real 3.3333333333333335 >>> 10/-3 # Diviso inteira retorna o piso -4 >>> 10%3 # Resto de diviso inteira simbolizado por % 1 >>> (1+2j)/(1+1j) (1.5+0.5j) >>> word = "Help" + 'A' >>> word 'HelpA >>> word[0:2] 'He >>> word[2:4] 'lp >>> word[-1] #ultimo caracter 'A'

# comentrio

A partir deste caractere tudo a direita ignorado em python;

7 / 20

Python: F1
Abra o Python no Windows Clique em F1

8 / 20

Qual a melhor interface p/ Python?


Comando ou Prompt Nativo no linux;
Necessrio uso de editores de textos e linhas de comandos para executar no prompt;

Disponvel ao instalar no windows; Interface grfica ou IDE


PyCharm WingIDE Komodo IDE Eclipse + PyDev Geany

A escolha pessoal
http://www3.ifrn.edu.br/~jurandy/fdp/doc/aprenda-python/capitulo_08.html

9 / 20

Entrada e Sada padro em Python?


>>> print " Atltico Mineiro" Atltico Mineiro >>> print ' Atltico Mineiro' Atltico Mineiro >>> nome = 'Mineiro' >>> print 'Atltico' + nome AtlticoMineiro >>> print 'Atltico ' + nome Atltico Mineiro >>> a = 5.7 >>> print 'Atltico ' + nome, a Atltico Mineiro 5.7 >>> >>> nome = raw_input("Entre com seu nome: ") Entre com seu nome: Ilton >>> nome 'Ilton' >>> type(nome) <type 'str'> >>> idade = input("Entre com sua idade: ") Entre com sua idade: 55 >>> type(idade) <type 'int'> >>>

Strings e documentao (""" ou ''') >>> variavel = """Tudo daqui pra frente documentao""" >>> print variavel Tudo daqui pra frente documentao >>> 10 / 20

http://www.joinville.udesc.br/portal/professores/alexandre/materiais/c3_minicurso.pdf

Nmeros em Python?
INTEIRO
>>> 1234 1234 >>> 99999999L 99999999L >>> (16-3*2)/2 5 >>> 7 / 2 3 >>> 7 % 2 1 >>> 077 #octal 63 >>> 0xFF #hexa 255

REAL
>>> 1.234 1.234 >>> 123.4e-2 1.234 >>> 7.0 / 2 3.5 >>> 2.0**3 8.0 >>> round(9.6) 10

COMPLEXO
>>> complex(2, -1) (2-1j) >>> 1j * 1J (-1+0j) >>> a = 3.0 + 4.0j >>> a.real 3.0 >>> a.imag 4.0 >>> abs(a) 5.0

11 / 20

Atribuio e Igualdade em Python?


Atribuio
>>> valor = 9.5 >>> a, b, c = 2, 6 , 88 >>> b 6 >>> c 88 >>> a 2 >>> x=y=77 >>> y 77 >>>

Igualdade True ou False


>>> x = 7 >>> teste = (x == 7) >>> teste True >>> teste = (x is 7) >>> teste True >>> teste = x is 8 >>> teste False >>> >>> x = 15 >>> TESTE = x < 5 or (x > 10 and x <= 20) >>> TESTE True >>> a = 0x20 >>> a >> 2 # rotaciona 2 casas para a direita 8

12 / 20

Operadores em Python?
Operadores lgicos or and Operadores relacionais -< -> - <= - >=

Operadores lgicos bit a bit | & Desocamento de Bits >> <<

13 / 20

Alguns mtodos em Python?


>>> dir() # escopo global ['TESTE', '__builtins__', '__doc__', '__name__', '__package__', 'a', 'b', 'c', 'idade', 'nome', 'teste', 'valor', 'variavel', 'x', 'y'] >>> dir (__builtins__) # mostra os mtodos builtins
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']

>>> help(round) Help on built-in function round in module __builtin__: round(...) round(number[, ndigits]) -> floating point number Round a number to a given precision in decimal digits (default 0 digits). This always returns a floating point number. Precision may be negative.

14 / 20

Alguns mtodos em Python?


>>> help(max) Help on built-in function max in module __builtin__: max(...) max(iterable[, key=func]) -> value max(a, b, c, ...[, key=func]) -> value With a single iterable argument, return its largest item. With two or more arguments, return the largest argument. >>> help(hex) Help on built-in function hex in module __builtin__: hex(...) hex(number) -> string

Return the hexadecimal representation of an integer or long integer. >>> x = 0x41 >>> b = hex(x) >>> b '0x41' >>> type(x) <type 'int'> >>> type(b) <type 'str'> >>>

15 / 20

String em Python?
>>> a = "teste '3'..." >>> a "teste '3'..." >>> b = 'teste \'2\'...' >>> b "teste '2'..." >>> c = '''"teste '4'..." foi escrito no quadro''' >>> c '"teste \'4\'..." foi escrito no quadro' >>> x = """Esta string apresenta mais de uma linha.""" >>> x 'Esta string\napresenta mais\nde uma linha.' >>> print x Esta string apresenta mais de uma linha. >>> >>> len(x) 40 >>> m = ' # lista vazia >>> len(m) 0 >>> m = m + x >>> len(m) 40 >>> print m Esta string apresenta mais de uma linha. >>> n = 'fla ' >>> 3*n 'fla fla fla ' >>> opcao = 'flamengo' >>> opcao.upper() 'FLAMENGO' >>>

16 / 20

Alguns Mtodos para String?


>>> opcao = flamengo >>> opcao.

Ao digitar o ponto vai abrir uma janela para Escolha do mtodo associado ao objeto opcao.
Use a seta para escolher o mtodo e no esquecer de colocar () no final Exemplo -> upper()

>>> opcao.upper() 'FLAMENGO >>> b.bit_length() 9 >>> b = 5678. >>> b.as_integer_ratio() (5678, 1)

>>> opcao = 'Interpolacao_Linear' >>> x = opcao.upper() >>> x 'INTERPOLACAO_LINEAR' >>> m = x.find('ne') >>> m -1 >>> n = x.find('LI') >>> n 13 >>> n = x.find('TE') >>> n 2 >>> x.split('_') ['INTERPOLACAO', 'LINEAR'] >>>

17 / 20

Python: Listas
>>> a = ['vida', "Botafogo", 100, 1234., 6+3j] >>> a ['vida', 'Botafogo', 100, 1234.0, (6+3j)] >>> a[0] 'vida' >>> a[2] 100 >>> a[:2] ['vida', 'Botafogo'] >>> a[3:] [1234.0, (6+3j)] >>> a[1][3] 'a' >>> a[1:-2] ['Botafogo', 100] >>> a[0:2] = [] #remover >>> a [100, 1234.0, (6+3j)] >>> a[1:1] = ['Carne', 300] #incluir >>> a [100, 'Carne', 300, 1234.0, (6+3j)] >>> len(a) # qtde de elementos 5 >>> q = [2, 3] >>> p = [1, q, 4] >>> print p [1, [2, 3], 4] >>> len(p) 3 >>> p[1] [2, 3] >>> p[1][0] 2 >>> p[1].append('flamengo') >>> p [1, [2, 3, 'flamengo'], 4] >>> p.append('33') >>> p [1, [2, 3, 'flamengo'], 4, '33'] >>>

Listas so conjuntos ordenados de dados. Em python, estes conjuntos podem conter vrios tipos de dados misturados, visto que tudo em Python objeto. Assim, alm de tipos de dados bsicos como inteiros, decimais e caracteres, as listas podem conter qualquer outro objeto da linguagem.
>>> l = [] #vazia >>> l1 = [1, 2, 3, 'a', 'd', l] >>> l1 [1, 2, 3, 'a', 'd', []] >>> l2 = list("abracadabra") #converte string em lista >>> l2 ['a', 'b', 'r', 'a', 'c', 'a', 'd', 'a', 'b', 'r', 'a'] >>> l.append(1) # adiciona elemento na lista >>> l [1] >>> l.append(3) >>> l [1, 3] >>> l1 [1, 2, 3, 'a', 'd', [1, 3]] >>> l1 [1, 2, 3, 'a', 'd', [1, 3]] >>> l1.remove(2) >>> l1 [1, 3, 'a', 'd', [1, 3]] >>> l1 [1, 3, 'a', 'd', [1, 3]] >>> l1.pop(2) #remove o objeto na posio 2 e retorna a' 'a' >>> l1 [1, 3, 'd', [1, 3]] >>>> help (l1)

http://www3.ifrn.edu.br/~jurandy/fdp/doc/aprenda-python/capitulo_08.html

18 / 20

Python: Listas
Sub-listas aninhadas
>>> lista = [30, 40, 8.5] >>> lista[1] = [100, 200] >>> lista [30, [100, 200], 8.5] >>> lista[1][0] 100 >>> len(lista) 3

Alguns mtodos
append, count, extend, index, insert, pop, remove, reverse, sort
>>> b = ['Maria', 45, 45.7, 'Flu', 'Marta', 45] >>> b.count(45) 2 >>> b.count('M') 0 >>> b.count('Flu') 1 >>>

19 / 20

Referncia
http://www3.ifrn.edu.br/~jurandy/fdp/doc/aprenda-python/ http://www.dcc.ufrj.br/~fabiom/mab225/ http://www.async.com.br/projects/pnp/pnp.pdf http://www.dcc.ufrj.br/~fabiom/mab225/tutorialpython.pdf http://pt.wikipedia.org/wiki/Python http://www3.ifrn.edu.br/~jurandy/fdp/doc/aprendapython/capitulo_08.html http://www.joinville.udesc.br/portal/professores/alexandre/ma teriais/c3_minicurso.pdf

20 / 20