SlideShare a Scribd company logo
1 of 67
Download to read offline
Introdução ao Python

     Python


                        Márcio Palheta
            marcio.palheta@gmail.com

                                    1
O que é Python?
• Linguagem de altíssimo nível
   – Suporte nativo a estruturas de dados de alto nivel
• Multiplataforma
   – Unix, Windows, Symbian, Solaris, etc...
• Multiparadigma
   – Procedural, OO, funcional
• Opensource
• Dinâmica e Forte
• Joga com outras linguagens
   – (.NET) IronPython, (Java) Jython, C e C++

                                                          2
Por que Python?
•   Aprendizado fácil
•   Sintaxe limpa e de fácil leitura
•   Forte suporte da comunidade
•   Bem documentada
•   Biblioteca
•   Divertida
•   Mais com menos [código]
•   Liberdade




                                       3
Quem usa Python?
•   Google
•   NASA
•   Nokia
•   Gimp/Inkscape/Blender
•   Governo (brasil.gov.br)
•   Portal G1 (g1.globo.com)
•   Entre outras...
                  http://www.python.org/about/success/
               http://www.python.org.br/wiki/EmpresasPython




                                                              4
Instalação do Python - Linux
• Já vem por padrão instalado nas distribuições;
• Opção de instalação:
   – $ sudo apt-get install python
• Execução via terminal:
   – $ python




                                                   5
Instalação do Python
• Windows
  – Download:http://www.python.org/getit/windows/
  – Execute o programa baixado. Ex: python-2.7.3.msi
  – Pacotes instalados:




                                                       6
Interpretador Interativo

    print “Hello, World!”




                            7
Executando arquivos *.py

• Use um editor de texto;
• Escreva o código para
  imprimir uma mensagem




                            • Salve o arquivo:
                            • Helloworld.py



                                            8
Executando arquivos *.py
• No terminal, entre no diretório onde salvou o arquivo
  heloworld.py;
• Digite o comando para execução de arquivos python:
       $ python helloworld.py




                                                          9
Conceitos Básicos
• Case sensitive
                                This ≠ this

• Blocos por endentação
                 se condição:                 se condição:
                      bloco                   bloco

• Tipagem dinâmica

           a=2                  a = “alguma coisa”           a = 2.3

• Tudo é objeto
• Não tem ponto e virgula no final (‘;’)
• Comentários começam com #

                                                                       10
Por dentro da API
• Os comandos mais importantes!

• dir( objeto )
   – Retorna uma lista de atributos e métodos do objeto

• help( objeto)
   – Mostra a documentação do objeto




                                                          11
Variáveis e Tipos Básicos
• Atribuição:
   – nome_da_variavel = valor
• Inteiros, Inteiros Longos, Reais, Strings e Booleanos
    >>> a = 10000000000000000000000000000000000000000005646789467
    >>> type(a)
    <type 'long'>
    >>> a = 4       >>> a = 5.3209   >>> a = True    >>> a = 'texto'
    >>> type(a)     >>> type(a)      >>> b = False   >>> b = "texto"
    <type 'int'>    <type 'float'>   >>> type(a)     >>> type(a)
                                     <type 'bool'>   <type 'str'>
                                     >>> type(b)     >>> type(b)
   Tente usar dir(a) e help(a)       <type 'bool'>   <type 'str'>



                                                                       12
Conversão dos Tipos Básicos
• int(), float(), str(), bool(), long()

   >>> int(3.1415)      >>> float(3)     >>> str(25)      >>> str(True)    >>> bool(1)
   3                    3.0              '25'             'True'           True

   >>> bool(0)       >>> bool(43)      >>> bool('lala')     >>> bool('')
   False             True              True                 False

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

   >>> long(2.56)
   2L                                      Teste no interpretador!


                                                                                         13
CUIDADO!
• Cuidado com os binários, octais e hexadecimais

  >>> a = 0b10 >>> a = 032 >>> a = 0x32
  >>> a        >>> a       >>> a
  2            26          50

       >>> bin(2)        >>> oct(26)          >>> hex(50)
       '0b10'            '032'                '0x32'




                                                            14
Operadores Aritméticos
• +, -, *, /, //, **, %     >>> a = 2    >>> a = 2            >>> 4 // 1.3
                            >>> b = 3    >>> b = 3.5          3.0
   Divisão com números      >>> a + b    >>> a + b            >>> 10 // 1.3
   inteiros resulta em um   5            5.5                  7.0
   número inteiro           >>> a - b    >>> a - b            >>> 10 // 3.3
                            -1           -1.5                 3.0
   // - divisão inteira     >>> a * b    >>> a * b
   ** - exponenciação       6            7.0                  >>> 10%3
   % - resto da divisão     >>> a / b    >>> a / b            1
                            0            0.5714285714285714   >>> 10%2
                            >>> a // b   >>> a // b           0
                            0            0.0                  >>> 5%3
                            >>> a ** b   >>> a ** b           2
   Teste no interpretador   8            11.313708498984761



                                                                         15
Python como calculadora




                          16
Operadores Lógicos
• and, or, not
  >>> True and True               >>> True or True                >>> not True
  True                            True                            False
  >>> True and False              >>> False or True               >>> not False
  False                           True                            True
  >>> False and False             >>> False or False              >>> not 1
  False                           False                           False
  >>> 1 and True                  >>> 1 or False
  True                            1
  >>> 0 and True                  >>> 0 or False
  0                               False

                    >>> not ((a or False) and (False or False))
                    True


                                                                                  17
Operadores Relacionais
• >, <, >=, <=, ==, !=, <>       >>> 2 > 3    >>> 2 == 2   >>> x = 3
                                 False        True         >>> 2 < x < 4
!= e <> significam “diferente”   >>> 2 < 3    >>> 2 == 1   True
                                 True         False        >>> 7 > x > 1
É possível usar vários           >>> 3 >= 3   >>> 3 != 2   True
operadores na relação:           True         True         >>> 3 <= x <4
1<2<=3<4<5>4>3>=2!=1             >>> 4 <= 3   >>> 3 != 3   True
                                 False        False
# - indica um comentário                      >>> 3 <> 3
                                              False
                                              >>> 2 <> 2
                                              False




                                                                           18
Manipulação de Strings
• Podemos representar Strings com (') ou (' ')




                                                 19
Textos em várias linhas




                          20
Operações com Strings
• Operações:
   – + : Concatenação       >>> st = ‘curso '        >>> st = ‘Casa’
                            >>> st + ‘python'        >>> st*3
   – * : Replicação         ‘curso python'           ‘CasaCasaCasa'


   – str[i]: retorna o      >>> st = 'arquivo.mp3'   >>> st = 'arquivo.mp3'
     caracter de índice i   >>> st[0]                >>> st[2:]
                            'a'                      'quivo.mp3'
     da string str;         >>> st[-1]               >>> st[0:-4]
   – str[inicio:fim]        '3'                      'arquivo'
                            >>> st[-4]               >>> st[-3:]
     retorna uma            '. '                     'mp3’
     substring de str
                                                     Teste no interpretador


                                                                              21
Conhecendo as Strings

                                     dir(‘string ou variavel’)

>>> dir('string')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__',
'__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split',
'_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust',
'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
'translate', 'upper', 'zfill']



                                                                                                          22
Métodos de Strings
• split(char)                                  • len(str)
   – Retorna uma lista com os                     – Retorna o tamho da
      elementos separados por                       string str
      char >>> a = '1+2+3+4+5+6'                        >>> a = 'curso de python'
            >>> a.split('+')                            >>> len(a)
            ['1', '2', '3', '4', '5', '6']              15

• strip(chars)
   – Retorna uma string onde                 >>> a = ' !!! STRING DE RETORNO!   !! ! !'
      os chars da direita e da               >>> a.strip(' !')
      esquerda foram                         'STRING DE RETORNO'
      removidos

                                                                                          23
Métodos de Strings
• find(substring)
   – Retorna a posição da primeira ocorrência da substring.
     Caso não seja encontrada, retorna -1
         >>> a = 'curso de python'   >>> a = 'curso de python'
         >>> a.find('de')            >>> a.find('casa')
         6                           -1

• lower(), upper()
   – Retornam uma string em minúsculo/maiúsculo
       >>> a = 'CuRsO dE pYtHoN!'    >>> a = 'CuRsO dE pYtHoN!'
       >>> a.lower()                 >>> a.upper()
       'curso de python!'            'CURSO DE PYTHON!'


                                                                  24
Métodos de Strings


   Procurem mais
métodos de string com
    dir() e help()


                        25
Exercícios
• A partir da string “!! ! a;b;c;d;e;f;gh!#########” gere o resultado:
   – [“a”, “b”, “c”, “d”, “e”, “f”, “g”]

• A partir da string “ring ring! - hello!“ gere o resultado:
   – “hello!”

• Transformar a string “isso deve ser bom” para “Isso Deve Ser Bom”
• Transformar a string “abacate azul” em “4b4c4te 4zul”

  Dica: para os dois últimos, pesquise os métodos de
                    string usando dir()

                                                                     26
Exercícios
• A partir da string “!! ! a;b;c;d;e;f;gh!#########” gere o
  resultado:
   – [“a”, “b”, “c”, “d”, “e”, “f”, “g”]

           string = '!! ! a;b;c;d;e;f;gh!#########'
           print string.strip(' !#h').split(';')




                                                              27
Exercícios
• A partir da string “ring ring! - hello!“ gere o resultado:
   – “hello!”

            string = 'ring ring! - hello!'
            print string[string.find('hello'):]



            string = 'ring ring! - hello!'
            print string[13:]



                                                               28
Exercícios
• Transformar a string “isso deve ser bom” para “Isso Deve Ser
  Bom”

           string = 'isso deve ser bom'
           print string.title()

• Transformar a string “abacate azul” em “4b4c4te 4zul”

           string = 'abacate azul'
           print string.replace('a', '4')



                                                                 29
Difícil?


 É Naadaaaaa




               30
Desvio Condicional
if condicao:
    comandos     >>> a = input('Digite um numero: ')
                 Digite um numero: 4
elif condicao:   >>> if a%2 == 0:
    comandos     ...       print “Par”
                 ... else:
else:            ...       print “Impar”
    comandos     Par




Não precisa de (parêntesis), mas podem ser usados


                                                       31
Desvio Condicional
• Não existe SWITCH/CASE, quando é necessário várias
  comparações, usamos elif’s ou dicionário (explicado mais à
  frente)
• Pode ser escrito em uma linha:
   – SETRUE if condição else SEFALSE
              >>> numero = input('entre com um numero: ')
              entre com um numero: 5
              >>> print 'par' if numero%2 == 0 else 'impar'
              impar




                                                               32
Exercícios
• Leia dois números e imprima o maior deles
• Leia uma letra, se for “M” imprima “Masculino, se for “F”
  imprima “Feminino”, senão imprima “Sexo invalido”.




                          DICA:
           variavel = input() #Para números
           variavel = raw_input() #Para strings

                                                              33
Exercícios
• Leia dois números e imprima o maior deles

                  numero1 = input('Numero 1: ')
                  numero2 = input('Numero 2: ')
                  if numero1 > numero2:
                     print numero1
                  elif numero1 < numero2:
                     print numero2
                  else:
                     print 'iguais'




                                                  34
Exercícios
• Leia uma letra, se for “M” imprima “Masculino, se for “F”
  imprima “Feminino”, senão imprima “Sexo invalido”.

                   letra = raw_input('Sexo: ')
                   if letra == 'M':
                       print 'Masculino'
                   elif letra == 'F':
                       print 'Feminino'
                   else:
                       print 'Sexo invalido'




                                                              35
Loops
• O While é quase igual às outras linguagens:

                      >>> x = 0
  while condição:     >>> while x < 10:
                                print x,
       comandos                 x += 1
  else:
                      0123456789
       comandos




                                                36
Loops
• O While é quase igual às outras linguagens:

                      >>> x = 0
  while condição:     >>> while x < 10:     ELSE no WHILE
                                print x,    ?????????????
       comandos                 x += 1
  else:
                      0123456789
       comandos




                                                            37
Loops
• O else só é executado se não ocorreu nenhum break durando
  o while, ou seja, se o while parar pela condição.
      >>> numero = input('entre com um numero: ')
      entre com um numero: 11
      >>> x = 2
      >>> while x < numero:                         Úúúuuuuhhhh
                if numero%x == 0:                      SHOW!
                     print 'nao é primo'
                     break
                x += 1
          else:
                print numero, 'é primo‘

      11 é primo


                                                                  38
Loops
• O for em python é parecido com o foreach de outras
  linguagens:

  for variavel in sequencia:        >>> for letra in 'string':
                                              print letra
       comandos
  else:                             s
                                    t
       comandos                     r
                                    i
                                    n
                                    g




                                                                 39
Loops
• Trabalhando com listas: [...].

               >>> for elemento in [1,3,3,6,4,2,7]:
                         print elemento*2

               2
               6
               6
               12
               8
               4
               14




                                                      40
Loops
• a função range(numero) retorna uma lista de números
     >>> range(10)                       >>> for i in range(10):
     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]                 print i,

                                         0123456789
     >>> range(5,10)                     >>> for i in range(5,10):
     [5, 6, 7, 8, 9]                                print i,

                                         56789
     >>> range(0,10,2)                   >>> for i in range(0,10,2):
     [0, 2, 4, 6, 8]                                print i,

                                         02468



                                                                       41
Exercícios
• Imprima a tabuada de multiplicação de um número digitado
  pelo usuário;
• Some os números impares de 0 a 100;
• Imprima uma frase digitada pelo usuário, continue lendo e
  imprimindo até o usuário digitar SAIR




                                                              42
Exercícios
• Imprima a tabuada de um número digitado pelo usuário
              numero = input('Entre com um numero: ')
              for i in range(11):
                print numero, 'x', i, '=', numero*i


• Imprima a soma dos números impares de 0 a 100
              soma = 0
              for i in range(1, 100, 2):
                soma += i
              print soma




                                                         43
Exercícios
• Imprima a tabuada de um número digitado pelo usuário
              numero = input('Entre com um numero: ')
              for i in range(11):
                print numero, 'x', i, '=', numero*i


• Imprima a soma dos números impares de 0 a 100
              soma = 0
              for i in range(1, 100, 2):
                soma += i
              print soma


                       sum(range(1,100,2)

                                                         44
Exercícios
• Imprima uma frase digitada pelo usuário, continue lendo e
  imprimindo até o usuário digitar SAIR
               while True:
                frase = raw_input('Frase: ')
                if frase == 'SAIR': break
                print 'FRASE: ', frase


          Não tem problema usar “While
          True” em python! No exemplo o
          “While True” evita repetição de
                     código!




                                                              45
Funções
• Para criar uma função:
   – def nome_da_funcao( parametros ):

• Para retornar algum valor, usamos o return
• Uma função não precisa retornar algo.
• Não existe sobrecarga
              >>> def fat(n):
                        return 1 if n < 2 else fat(n-1)*n

              >>> fat(5)
              120



                                                            46
Funções
• Valor padrão de um parâmetro.
• Substitui a sobrecarga e evita repetição de código
        def funcao(a, b=5):       public void funcao(int a) {
             print 'a =',a          System.out.println('a = '+a);
             print 'b =',b          System.out.println('b = 5');
                                  }
        >>> funcao(2)
        a=2                       public void funcao(int a, int b) {
        b=5                         System.out.println('a = '+a);
        >>> funcao(2,6)             System.out.println('b = '+b);
        a=2                       }
        b=6
        >>> funcao(b=9, a=4)
        a=4
        b=9

                                                                       47
Exercícios
• Faça uma função para calcular o fatorial de um número
  (função não recursiva)
• Faça uma função para verificar se um número é primo ou não




                                                           48
Exercícios
• Faça uma função para calcular o fatorial de um número
  (função não recursiva)

                   def fatorial(n):
                     resultado = 1
                     for i in range(2, n+1):
                        resultado *= i
                     return resultado




                                                          49
Exercícios
• Faça uma função para verificar se um número é primo ou não

                  def primo(n):
                    for i in range(2, n):
                      if n%i == 0:
                          return False
                    return True




                                                           50
Listas
• Não existe vetores em Python, nós usamos listas
• Uma lista guarda uma seqüência de itens
• São identificadas por colchetes “[ ]”
                      >>> lista = [1,2,3,4,5]
                      >>> print lista
                      [1, 2, 3, 4, 5]


• Os itens podem ser acessados como um vetor
                      >>> lista[0]
                      1
                      >>> lista[4]
                      5


                                                    51
Listas
                      Inserindo elementos
• append( obj )                           >>> lista = [1,2,3]
                                          >>> lista.append(0)
   – Insere o objeto no fim da lista      >>> lista
                                          [1, 2, 3, 0]


• insert( posição, obj )
   – Insere o objeto na posição especificada
                                       >>> lista = [1,2,3]
                                       >>> lista.insert(1, 'objeto')
                                       >>> lista
                                       [1, 'objeto', 2, 3]


                                                                       52
Listas
                   Removendo elementos
• remove(obj)                         >>> lista = ['a','b',3]
                                      >>> lista.remove('b')
   – Remove o objeto da lista         >>> lista
                                      ['a', 3]

• pop(posição)                        >>> lista = ['a', 2, 'b', 4, 'c']
                                      >>> lista.pop(0)
   – Remove e retorna o objeto da     'a'
     posição especificada. O pop()    >>> lista
     sem parâmetros retira o último   [2, 'b', 4, 'c']
                                      >>> lista.pop()
     elemento                         'c'
                                      >>> lista
                                      [2, 'b', 4]


                                                                          53
Listas
                       Outros métodos
• count( obj )
   – Retorna a quantidade de elementos “obj” da lista
• index( obj )
   – Retorna a posição do “obj” na lista
• reverse()
   – Inverte a lista colocando os elementos ao contrário
• sort()
   – Ordena a lista
                    Usem dir() e help()

                                                           54
Tuplas
• Definidas por parêntesis “( )” ou objetos divididos por “,”
                >>> tupla = (1,2,3)       >>> tupla = 1,2,3
                >>> tupla                 >>> tupla
                (1, 2, 3)                 (1, 2, 3)


• Parecidos com listas, mas são imutáveis
   >>> lista = [1,2,3]   >>> tupla = (1,2,3)
   >>> lista[0] = 4      >>> tupla[0] = 4
   >>> lista             Traceback (most recent call last):
   [4, 2, 3]              File "<pyshell#40>", line 1, in <module>
                           tupla[0] = 4
                         TypeError: 'tuple' object does not support item assignment



                                                                                  55
Dicionários
• O programador pode definir a chave do item
• Representados por chaves “{ }”

              >>> dicionario = {'chave' : 'item', 2 : 4}
              >>> dicionario['chave']
              'item'
              >>> dicionario[2]
              4



                        Use dir() e help()


                                                           56
Dicionários
• Inserir item
   – dicionario[chave] = obj
• Remover item
   – dicionario.pop(chave)
       • Se não encontrar a chave retorna erro
   – dicionario.pop(chave, retorno)
       • Se não encontrar a chave retorna o valor de retorno
• Remover todos itens
   – dicionario.clear()



                                                               57
Dicionários
• Acessar item
   – dicionario[chave]
      • Se a chave não existir retorna erro
   – dicionario.get(chave)
      • Se a chave não existir retorna None
   – dicionario.get(chave, retorno)
      • Se a chave não existir retorna o valor de retorno
• Verificar se existe item
   – dicionario.has_key(chave)



                                                            58
Exercícios
• Função para calcular série Fibonacci até n
• Imprimir quantos números são maiores que 10 na lista:
   – [1, 4, 15, 26, 3, 6, 10, 13, 5, 3]
• Leia o nome e a nota de 5 alunos e guarde em um dicionário
• Função que receba uma string é imprima em escada, ex:
   –T
   – TE                  DICA: Use a função len(objeto) para
   – TES                       pegar o tamanho da string
   – TEST
   – TESTE

                                                               59
Exercícios
• Calcular série Fibonacci até n

               def fibonacci(n):
                 fibs = [0, 1]
                 for i in range(n-2):
                    fibs.append(fibs[-2] + fibs[-1])
                 return fibs




                                                       60
Exercícios
• Verificar quantos números são maiores que 10 na lista:
   – [1, 4, 15, 26, 3, 6, 10, 13, 5, 3]
              lista = [1, 4, 15, 26, 3, 6, 10, 13, 5, 3]
              soma = 0
              for item in lista:
                 if item > 10:
                    soma += 1
              print soma




                                                           61
Exercícios
• Leia o nome e a nota de 5 alunos e guarde em um dicionário


              notas = {}
              for i in range(5):
                nome = raw_input('nome: ')
                nota = input('nota: ')
                notas[nome] = nota
              print notas




                                                               62
Exercícios
• Função que receba uma string é imprima em escada, ex:
   –T
   – TE
                   def funcao(palavra):
   – TES             for i in range(len(palavra)):
   – TEST               print palavra[:i+1]
   – TESTE




                                                          63
64
Contatos


• Márcio Palheta
  – marcio.palheta@gmail.com
  – @marciopalheta
  – http://sites.google.com/site/marciopalheta




                                                 65
Bibliografia
•   LIVRO: Apress - Beginning Python From Novice to Professional
•   LIVRO: O'Relly - Learning Python
•   http://www.python.org
•   http://www.python.org.br

• Mais exercícios:
  – http://www.python.org.br/wiki/ListaDeExercicios

• Documentação do python:
   – http://docs.python.org/

                                                               66
Introdução ao Python

     Python


            Márcio Palheta
            marcio.palheta@gmail.com

                                  67

More Related Content

What's hot

What's hot (20)

Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Seguranca de rede
Seguranca de redeSeguranca de rede
Seguranca de rede
 
Barramentos
BarramentosBarramentos
Barramentos
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
JAVA - Matrizes
JAVA - MatrizesJAVA - Matrizes
JAVA - Matrizes
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
 
CÁLCULO DE SUB-REDES DE FORMA PRÁTICA
CÁLCULO DE SUB-REDES DE FORMA PRÁTICACÁLCULO DE SUB-REDES DE FORMA PRÁTICA
CÁLCULO DE SUB-REDES DE FORMA PRÁTICA
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Bits bytes
Bits bytesBits bytes
Bits bytes
 
03 mer2
03 mer203 mer2
03 mer2
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 

Viewers also liked

Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteMarcio Palheta
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasMarcio Palheta
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoMarcio Palheta
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceMarcio Palheta
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 
Capítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosCapítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosMarcio Palheta
 
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasCapítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasMarcio Palheta
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoMarcio Palheta
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundMarcio Palheta
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - FragmentsMarcio Palheta
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONMarcio Palheta
 

Viewers also liked (11)

Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telas
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Capítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosCapítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizados
 
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasCapítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSON
 

Similar to Introdução ao Python

Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!Danilo J. S. Bellini
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfMarioAthayde
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfEduardoChicoJooJoo
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaBonoBee
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Afinal, o que é uma linguagem de programação?
Afinal, o que é uma linguagem de programação?Afinal, o que é uma linguagem de programação?
Afinal, o que é uma linguagem de programação?Harlley Oliveira
 
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...Curso de Programação
 
Python e seus desafios
Python e seus desafiosPython e seus desafios
Python e seus desafiosJhonathan Davi
 

Similar to Introdução ao Python (20)

Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!(2018-07-14) [Just Python] Números no Python!
(2018-07-14) [Just Python] Números no Python!
 
Python
PythonPython
Python
 
Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdf
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Haskell
HaskellHaskell
Haskell
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Afinal, o que é uma linguagem de programação?
Afinal, o que é uma linguagem de programação?Afinal, o que é uma linguagem de programação?
Afinal, o que é uma linguagem de programação?
 
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...
Curso de programação para iniciantes: Afinal, o que é uma linguagem de progra...
 
Ruby learning
Ruby learningRuby learning
Ruby learning
 
Python e seus desafios
Python e seus desafiosPython e seus desafios
Python e seus desafios
 

Introdução ao Python

  • 1. Introdução ao Python Python Márcio Palheta marcio.palheta@gmail.com 1
  • 2. O que é Python? • Linguagem de altíssimo nível – Suporte nativo a estruturas de dados de alto nivel • Multiplataforma – Unix, Windows, Symbian, Solaris, etc... • Multiparadigma – Procedural, OO, funcional • Opensource • Dinâmica e Forte • Joga com outras linguagens – (.NET) IronPython, (Java) Jython, C e C++ 2
  • 3. Por que Python? • Aprendizado fácil • Sintaxe limpa e de fácil leitura • Forte suporte da comunidade • Bem documentada • Biblioteca • Divertida • Mais com menos [código] • Liberdade 3
  • 4. Quem usa Python? • Google • NASA • Nokia • Gimp/Inkscape/Blender • Governo (brasil.gov.br) • Portal G1 (g1.globo.com) • Entre outras... http://www.python.org/about/success/ http://www.python.org.br/wiki/EmpresasPython 4
  • 5. Instalação do Python - Linux • Já vem por padrão instalado nas distribuições; • Opção de instalação: – $ sudo apt-get install python • Execução via terminal: – $ python 5
  • 6. Instalação do Python • Windows – Download:http://www.python.org/getit/windows/ – Execute o programa baixado. Ex: python-2.7.3.msi – Pacotes instalados: 6
  • 7. Interpretador Interativo print “Hello, World!” 7
  • 8. Executando arquivos *.py • Use um editor de texto; • Escreva o código para imprimir uma mensagem • Salve o arquivo: • Helloworld.py 8
  • 9. Executando arquivos *.py • No terminal, entre no diretório onde salvou o arquivo heloworld.py; • Digite o comando para execução de arquivos python: $ python helloworld.py 9
  • 10. Conceitos Básicos • Case sensitive This ≠ this • Blocos por endentação se condição: se condição: bloco bloco • Tipagem dinâmica a=2 a = “alguma coisa” a = 2.3 • Tudo é objeto • Não tem ponto e virgula no final (‘;’) • Comentários começam com # 10
  • 11. Por dentro da API • Os comandos mais importantes! • dir( objeto ) – Retorna uma lista de atributos e métodos do objeto • help( objeto) – Mostra a documentação do objeto 11
  • 12. Variáveis e Tipos Básicos • Atribuição: – nome_da_variavel = valor • Inteiros, Inteiros Longos, Reais, Strings e Booleanos >>> a = 10000000000000000000000000000000000000000005646789467 >>> type(a) <type 'long'> >>> a = 4 >>> a = 5.3209 >>> a = True >>> a = 'texto' >>> type(a) >>> type(a) >>> b = False >>> b = "texto" <type 'int'> <type 'float'> >>> type(a) >>> type(a) <type 'bool'> <type 'str'> >>> type(b) >>> type(b) Tente usar dir(a) e help(a) <type 'bool'> <type 'str'> 12
  • 13. Conversão dos Tipos Básicos • int(), float(), str(), bool(), long() >>> int(3.1415) >>> float(3) >>> str(25) >>> str(True) >>> bool(1) 3 3.0 '25' 'True' True >>> bool(0) >>> bool(43) >>> bool('lala') >>> bool('') False True True False >>> float(233333333333337777777777778888888888999999999999933334421L) 2.3333333333333778e+56 >>> long(2.56) 2L Teste no interpretador! 13
  • 14. CUIDADO! • Cuidado com os binários, octais e hexadecimais >>> a = 0b10 >>> a = 032 >>> a = 0x32 >>> a >>> a >>> a 2 26 50 >>> bin(2) >>> oct(26) >>> hex(50) '0b10' '032' '0x32' 14
  • 15. Operadores Aritméticos • +, -, *, /, //, **, % >>> a = 2 >>> a = 2 >>> 4 // 1.3 >>> b = 3 >>> b = 3.5 3.0 Divisão com números >>> a + b >>> a + b >>> 10 // 1.3 inteiros resulta em um 5 5.5 7.0 número inteiro >>> a - b >>> a - b >>> 10 // 3.3 -1 -1.5 3.0 // - divisão inteira >>> a * b >>> a * b ** - exponenciação 6 7.0 >>> 10%3 % - resto da divisão >>> a / b >>> a / b 1 0 0.5714285714285714 >>> 10%2 >>> a // b >>> a // b 0 0 0.0 >>> 5%3 >>> a ** b >>> a ** b 2 Teste no interpretador 8 11.313708498984761 15
  • 17. Operadores Lógicos • and, or, not >>> True and True >>> True or True >>> not True True True False >>> True and False >>> False or True >>> not False False True True >>> False and False >>> False or False >>> not 1 False False False >>> 1 and True >>> 1 or False True 1 >>> 0 and True >>> 0 or False 0 False >>> not ((a or False) and (False or False)) True 17
  • 18. Operadores Relacionais • >, <, >=, <=, ==, !=, <> >>> 2 > 3 >>> 2 == 2 >>> x = 3 False True >>> 2 < x < 4 != e <> significam “diferente” >>> 2 < 3 >>> 2 == 1 True True False >>> 7 > x > 1 É possível usar vários >>> 3 >= 3 >>> 3 != 2 True operadores na relação: True True >>> 3 <= x <4 1<2<=3<4<5>4>3>=2!=1 >>> 4 <= 3 >>> 3 != 3 True False False # - indica um comentário >>> 3 <> 3 False >>> 2 <> 2 False 18
  • 19. Manipulação de Strings • Podemos representar Strings com (') ou (' ') 19
  • 20. Textos em várias linhas 20
  • 21. Operações com Strings • Operações: – + : Concatenação >>> st = ‘curso ' >>> st = ‘Casa’ >>> st + ‘python' >>> st*3 – * : Replicação ‘curso python' ‘CasaCasaCasa' – str[i]: retorna o >>> st = 'arquivo.mp3' >>> st = 'arquivo.mp3' caracter de índice i >>> st[0] >>> st[2:] 'a' 'quivo.mp3' da string str; >>> st[-1] >>> st[0:-4] – str[inicio:fim] '3' 'arquivo' >>> st[-4] >>> st[-3:] retorna uma '. ' 'mp3’ substring de str Teste no interpretador 21
  • 22. Conhecendo as Strings dir(‘string ou variavel’) >>> dir('string') ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] 22
  • 23. Métodos de Strings • split(char) • len(str) – Retorna uma lista com os – Retorna o tamho da elementos separados por string str char >>> a = '1+2+3+4+5+6' >>> a = 'curso de python' >>> a.split('+') >>> len(a) ['1', '2', '3', '4', '5', '6'] 15 • strip(chars) – Retorna uma string onde >>> a = ' !!! STRING DE RETORNO! !! ! !' os chars da direita e da >>> a.strip(' !') esquerda foram 'STRING DE RETORNO' removidos 23
  • 24. Métodos de Strings • find(substring) – Retorna a posição da primeira ocorrência da substring. Caso não seja encontrada, retorna -1 >>> a = 'curso de python' >>> a = 'curso de python' >>> a.find('de') >>> a.find('casa') 6 -1 • lower(), upper() – Retornam uma string em minúsculo/maiúsculo >>> a = 'CuRsO dE pYtHoN!' >>> a = 'CuRsO dE pYtHoN!' >>> a.lower() >>> a.upper() 'curso de python!' 'CURSO DE PYTHON!' 24
  • 25. Métodos de Strings Procurem mais métodos de string com dir() e help() 25
  • 26. Exercícios • A partir da string “!! ! a;b;c;d;e;f;gh!#########” gere o resultado: – [“a”, “b”, “c”, “d”, “e”, “f”, “g”] • A partir da string “ring ring! - hello!“ gere o resultado: – “hello!” • Transformar a string “isso deve ser bom” para “Isso Deve Ser Bom” • Transformar a string “abacate azul” em “4b4c4te 4zul” Dica: para os dois últimos, pesquise os métodos de string usando dir() 26
  • 27. Exercícios • A partir da string “!! ! a;b;c;d;e;f;gh!#########” gere o resultado: – [“a”, “b”, “c”, “d”, “e”, “f”, “g”] string = '!! ! a;b;c;d;e;f;gh!#########' print string.strip(' !#h').split(';') 27
  • 28. Exercícios • A partir da string “ring ring! - hello!“ gere o resultado: – “hello!” string = 'ring ring! - hello!' print string[string.find('hello'):] string = 'ring ring! - hello!' print string[13:] 28
  • 29. Exercícios • Transformar a string “isso deve ser bom” para “Isso Deve Ser Bom” string = 'isso deve ser bom' print string.title() • Transformar a string “abacate azul” em “4b4c4te 4zul” string = 'abacate azul' print string.replace('a', '4') 29
  • 31. Desvio Condicional if condicao: comandos >>> a = input('Digite um numero: ') Digite um numero: 4 elif condicao: >>> if a%2 == 0: comandos ... print “Par” ... else: else: ... print “Impar” comandos Par Não precisa de (parêntesis), mas podem ser usados 31
  • 32. Desvio Condicional • Não existe SWITCH/CASE, quando é necessário várias comparações, usamos elif’s ou dicionário (explicado mais à frente) • Pode ser escrito em uma linha: – SETRUE if condição else SEFALSE >>> numero = input('entre com um numero: ') entre com um numero: 5 >>> print 'par' if numero%2 == 0 else 'impar' impar 32
  • 33. Exercícios • Leia dois números e imprima o maior deles • Leia uma letra, se for “M” imprima “Masculino, se for “F” imprima “Feminino”, senão imprima “Sexo invalido”. DICA: variavel = input() #Para números variavel = raw_input() #Para strings 33
  • 34. Exercícios • Leia dois números e imprima o maior deles numero1 = input('Numero 1: ') numero2 = input('Numero 2: ') if numero1 > numero2: print numero1 elif numero1 < numero2: print numero2 else: print 'iguais' 34
  • 35. Exercícios • Leia uma letra, se for “M” imprima “Masculino, se for “F” imprima “Feminino”, senão imprima “Sexo invalido”. letra = raw_input('Sexo: ') if letra == 'M': print 'Masculino' elif letra == 'F': print 'Feminino' else: print 'Sexo invalido' 35
  • 36. Loops • O While é quase igual às outras linguagens: >>> x = 0 while condição: >>> while x < 10: print x, comandos x += 1 else: 0123456789 comandos 36
  • 37. Loops • O While é quase igual às outras linguagens: >>> x = 0 while condição: >>> while x < 10: ELSE no WHILE print x, ????????????? comandos x += 1 else: 0123456789 comandos 37
  • 38. Loops • O else só é executado se não ocorreu nenhum break durando o while, ou seja, se o while parar pela condição. >>> numero = input('entre com um numero: ') entre com um numero: 11 >>> x = 2 >>> while x < numero: Úúúuuuuhhhh if numero%x == 0: SHOW! print 'nao é primo' break x += 1 else: print numero, 'é primo‘ 11 é primo 38
  • 39. Loops • O for em python é parecido com o foreach de outras linguagens: for variavel in sequencia: >>> for letra in 'string': print letra comandos else: s t comandos r i n g 39
  • 40. Loops • Trabalhando com listas: [...]. >>> for elemento in [1,3,3,6,4,2,7]: print elemento*2 2 6 6 12 8 4 14 40
  • 41. Loops • a função range(numero) retorna uma lista de números >>> range(10) >>> for i in range(10): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print i, 0123456789 >>> range(5,10) >>> for i in range(5,10): [5, 6, 7, 8, 9] print i, 56789 >>> range(0,10,2) >>> for i in range(0,10,2): [0, 2, 4, 6, 8] print i, 02468 41
  • 42. Exercícios • Imprima a tabuada de multiplicação de um número digitado pelo usuário; • Some os números impares de 0 a 100; • Imprima uma frase digitada pelo usuário, continue lendo e imprimindo até o usuário digitar SAIR 42
  • 43. Exercícios • Imprima a tabuada de um número digitado pelo usuário numero = input('Entre com um numero: ') for i in range(11): print numero, 'x', i, '=', numero*i • Imprima a soma dos números impares de 0 a 100 soma = 0 for i in range(1, 100, 2): soma += i print soma 43
  • 44. Exercícios • Imprima a tabuada de um número digitado pelo usuário numero = input('Entre com um numero: ') for i in range(11): print numero, 'x', i, '=', numero*i • Imprima a soma dos números impares de 0 a 100 soma = 0 for i in range(1, 100, 2): soma += i print soma sum(range(1,100,2) 44
  • 45. Exercícios • Imprima uma frase digitada pelo usuário, continue lendo e imprimindo até o usuário digitar SAIR while True: frase = raw_input('Frase: ') if frase == 'SAIR': break print 'FRASE: ', frase Não tem problema usar “While True” em python! No exemplo o “While True” evita repetição de código! 45
  • 46. Funções • Para criar uma função: – def nome_da_funcao( parametros ): • Para retornar algum valor, usamos o return • Uma função não precisa retornar algo. • Não existe sobrecarga >>> def fat(n): return 1 if n < 2 else fat(n-1)*n >>> fat(5) 120 46
  • 47. Funções • Valor padrão de um parâmetro. • Substitui a sobrecarga e evita repetição de código def funcao(a, b=5): public void funcao(int a) { print 'a =',a System.out.println('a = '+a); print 'b =',b System.out.println('b = 5'); } >>> funcao(2) a=2 public void funcao(int a, int b) { b=5 System.out.println('a = '+a); >>> funcao(2,6) System.out.println('b = '+b); a=2 } b=6 >>> funcao(b=9, a=4) a=4 b=9 47
  • 48. Exercícios • Faça uma função para calcular o fatorial de um número (função não recursiva) • Faça uma função para verificar se um número é primo ou não 48
  • 49. Exercícios • Faça uma função para calcular o fatorial de um número (função não recursiva) def fatorial(n): resultado = 1 for i in range(2, n+1): resultado *= i return resultado 49
  • 50. Exercícios • Faça uma função para verificar se um número é primo ou não def primo(n): for i in range(2, n): if n%i == 0: return False return True 50
  • 51. Listas • Não existe vetores em Python, nós usamos listas • Uma lista guarda uma seqüência de itens • São identificadas por colchetes “[ ]” >>> lista = [1,2,3,4,5] >>> print lista [1, 2, 3, 4, 5] • Os itens podem ser acessados como um vetor >>> lista[0] 1 >>> lista[4] 5 51
  • 52. Listas Inserindo elementos • append( obj ) >>> lista = [1,2,3] >>> lista.append(0) – Insere o objeto no fim da lista >>> lista [1, 2, 3, 0] • insert( posição, obj ) – Insere o objeto na posição especificada >>> lista = [1,2,3] >>> lista.insert(1, 'objeto') >>> lista [1, 'objeto', 2, 3] 52
  • 53. Listas Removendo elementos • remove(obj) >>> lista = ['a','b',3] >>> lista.remove('b') – Remove o objeto da lista >>> lista ['a', 3] • pop(posição) >>> lista = ['a', 2, 'b', 4, 'c'] >>> lista.pop(0) – Remove e retorna o objeto da 'a' posição especificada. O pop() >>> lista sem parâmetros retira o último [2, 'b', 4, 'c'] >>> lista.pop() elemento 'c' >>> lista [2, 'b', 4] 53
  • 54. Listas Outros métodos • count( obj ) – Retorna a quantidade de elementos “obj” da lista • index( obj ) – Retorna a posição do “obj” na lista • reverse() – Inverte a lista colocando os elementos ao contrário • sort() – Ordena a lista Usem dir() e help() 54
  • 55. Tuplas • Definidas por parêntesis “( )” ou objetos divididos por “,” >>> tupla = (1,2,3) >>> tupla = 1,2,3 >>> tupla >>> tupla (1, 2, 3) (1, 2, 3) • Parecidos com listas, mas são imutáveis >>> lista = [1,2,3] >>> tupla = (1,2,3) >>> lista[0] = 4 >>> tupla[0] = 4 >>> lista Traceback (most recent call last): [4, 2, 3] File "<pyshell#40>", line 1, in <module> tupla[0] = 4 TypeError: 'tuple' object does not support item assignment 55
  • 56. Dicionários • O programador pode definir a chave do item • Representados por chaves “{ }” >>> dicionario = {'chave' : 'item', 2 : 4} >>> dicionario['chave'] 'item' >>> dicionario[2] 4 Use dir() e help() 56
  • 57. Dicionários • Inserir item – dicionario[chave] = obj • Remover item – dicionario.pop(chave) • Se não encontrar a chave retorna erro – dicionario.pop(chave, retorno) • Se não encontrar a chave retorna o valor de retorno • Remover todos itens – dicionario.clear() 57
  • 58. Dicionários • Acessar item – dicionario[chave] • Se a chave não existir retorna erro – dicionario.get(chave) • Se a chave não existir retorna None – dicionario.get(chave, retorno) • Se a chave não existir retorna o valor de retorno • Verificar se existe item – dicionario.has_key(chave) 58
  • 59. Exercícios • Função para calcular série Fibonacci até n • Imprimir quantos números são maiores que 10 na lista: – [1, 4, 15, 26, 3, 6, 10, 13, 5, 3] • Leia o nome e a nota de 5 alunos e guarde em um dicionário • Função que receba uma string é imprima em escada, ex: –T – TE DICA: Use a função len(objeto) para – TES pegar o tamanho da string – TEST – TESTE 59
  • 60. Exercícios • Calcular série Fibonacci até n def fibonacci(n): fibs = [0, 1] for i in range(n-2): fibs.append(fibs[-2] + fibs[-1]) return fibs 60
  • 61. Exercícios • Verificar quantos números são maiores que 10 na lista: – [1, 4, 15, 26, 3, 6, 10, 13, 5, 3] lista = [1, 4, 15, 26, 3, 6, 10, 13, 5, 3] soma = 0 for item in lista: if item > 10: soma += 1 print soma 61
  • 62. Exercícios • Leia o nome e a nota de 5 alunos e guarde em um dicionário notas = {} for i in range(5): nome = raw_input('nome: ') nota = input('nota: ') notas[nome] = nota print notas 62
  • 63. Exercícios • Função que receba uma string é imprima em escada, ex: –T – TE def funcao(palavra): – TES for i in range(len(palavra)): – TEST print palavra[:i+1] – TESTE 63
  • 64. 64
  • 65. Contatos • Márcio Palheta – marcio.palheta@gmail.com – @marciopalheta – http://sites.google.com/site/marciopalheta 65
  • 66. Bibliografia • LIVRO: Apress - Beginning Python From Novice to Professional • LIVRO: O'Relly - Learning Python • http://www.python.org • http://www.python.org.br • Mais exercícios: – http://www.python.org.br/wiki/ListaDeExercicios • Documentação do python: – http://docs.python.org/ 66
  • 67. Introdução ao Python Python Márcio Palheta marcio.palheta@gmail.com 67