33
Tecnologia em Sistemas para Internet - IFMS Vamos aprender algo diferente? Introdução à linguagem Python (parte 2) Tópicos em Programação Prof.º Msc. Sidney Roberto de Sousa [email protected]

Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tecnologia em Sistemas para Internet - IFMS

Vamos aprender algo diferente?Introdução à linguagem Python (parte 2)

Tópicos em ProgramaçãoProf.º Msc. Sidney Roberto de Sousa

[email protected]

Page 2: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 2

O que veremos nesta aula?

● Comentando código● Manipulando strings● Manipulando listas● Manipulando dicionários

Page 3: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 3

Comentários simples

# Eu sou um comentario de uma linha!

frase = "Esta linha de codigo nao foi comentada!"

#outra_frase = "Esta linha de codigo foi comentada"

numero = 2 ** 8 # Comentario explicativo 

Page 4: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 4

Comentários com múltiplas linhas

# coding=utf­8

'''

Comentários com múltiplas linhas são delimitados por três acentos agudos.

Na verdade, os três acentos agudos servem para delimitar uma string, 

como você verá logo a seguir nesta aula. Porém, como a linguagem 

Python não possui uma forma própria para se criar comentários de 

múltiplas linhas, os programadores Python utilizam esta forma alternativa

para resolver o problema (dado que isto não gera um erro sintático).

Esta forma de criar comentários foi aprovada pelo Guido van Rossum, 

como você pode verificar no twit do link abaixo.

https://twitter.com/gvanrossum/status/112670605505077248

'''

Page 5: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 5

Criando strings

# coding=utf­8

uma_string = 'Isto é uma string!'

# Isto é uma string!

outra_string = "Isto também é uma string!"

# Isto também é uma string!

mais_uma_string = "'Eu também sou uma string!'"

# 'Eu também sou uma string!'

uma_nova_string = '''Acredite, eu sou uma string!'''

# Acredite, eu sou uma string!

vixi_mais_uma_string = """E eu não poderia deixar de ser uma string..."""

# E eu não poderia deixar de ser uma string...

Page 6: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 6

Pegando o tamanho da string

uma_string = 'Uma string de tamanho mediano...'

print len(uma_string) # 32

Page 7: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 7

Concatenando strings

# coding=utf­8

# Aprendendo Python!

print "Aprendendo" + " " + " Python!"

primeira_parte = "Manipulando"

segunda_parte = " "

terceira_parte = "strings"

# Manipulando strings

print primeira_parte + segunda_parte + terceira_parte

frase_completa = "".join([primeira_parte, segunda_parte, terceira_parte])

# Manipulando strings

print frase_completa

Page 8: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 8

Indexação de strings em Python

O l á m u n d o !0 1 2 3 4 5 6 7 8 9-9 -8 -7 -6 -5 -4 -3 -2 -1

Page 9: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 9

Pegando partes da string

# coding=utf­8

frase = "Pegando partes da string original"

# Pegando

print frase[0:7]

# Pegando

print frase[:7]

# partes da string

print frase[8:24]

# partes da string original

print frase[8:]

# Imprime apenas os caracteres cujo índice for divisível por 3, na sequência positiva 

# (esquerda para a direita):

# Paoaedsi in

print frase[::3]

Page 10: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 10

Utilizando índices negativos# coding=utf­8

frase = "Pegando partes da string original"

# O décimo caractere da direita para a esquerda:

# g

print frase[­10]

# string origina

print frase[18:­1]

# Exibe os oito últimos caracteres da string:

# original

print frase[­8:]

'''

Exibe todos os caracteres da frase cujo índice seja divisível por ­1, 

na sequência negativa (direita para a esquerda).

Como efeito, exibe a string invertida:

lanigiro gnirts ad setrap odnageP

'''

print frase[::­1]

Page 11: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 11

Removendo espaços em branco no início e no fim da string

# coding=utf­8

frase = " Por favor, retire estes espaços em branco malditos!     "

print frase.strip()

Page 12: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 12

Particionando uma string

# coding=utf­8

frase = "Quero quebrar esta frase em várias palavras"

palavras = frase.split(" ")

for palavra in palavras:

    print palavra

Page 13: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 13

Verificando o início da string

# coding=utf­8

preco = raw_input("Digite o valor em reais (R$): ")

while not preco.startswith("R$"):

    print "Você deve digitar um valor em reais!"

    preco = raw_input("Digite o valor em reais (R$): ")

print preco

Page 14: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 14

Verificando o fim da string

# coding=utf­8

pergunta = raw_input("Digite uma pergunta: ")

while not pergunta.endswith("?"):

    print "Você deve digitar uma pergunta!"

    pergunta = raw_input("Digite uma pergunta: ")

print "Não sei..."

Page 15: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 15

Convertendo casos

texto = "Eu sou um texto simples."

# eu sou um texto simples.

print texto.lower()# EU SOU UM TEXTO SIMPLES.

print texto.upper()

Page 16: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 16

Verificando a ocorrência de uma substring

texto = "Eu vivo no Mato Grosso do Sul!"

tem_mato_no_texto = "Mato" in texto# True

tem_mato_no_texto = "mato" in texto.lower()# True

tem_mato_no_texto = not "Sul" in texto# False

Page 17: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 17

Verificando a ocorrência de uma substring com expressões regulares

import re

texto = "A Ana comeu banana... mas que sacana!"

encontrados = re.findall("ana", texto, re.IGNORECASE)

# ['Ana', 'ana', 'ana']

encontrados = re.findall("...ana\.\.\.", texto, re.IGNORECASE)

# ['banana...']

encontrados = re.findall("...ana!", texto, re.IGNORECASE)

# ['sacana!']

encontrados = re.findall("\sana\s", texto, re.IGNORECASE)

# [' Ana ']

if re.search("comeu", texto):

    print "Comeram banana na frase..."

Page 18: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 18

Convertendo um número em string

numero_em_texto = str(2 ** 1024)

print numero_em_texto[:10]

Page 19: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 19

Criando uma lista

lista = [1, "segundo elemento", True, None]

for elemento in lista:

    print elemento

lista = range(10)

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Page 20: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 20

Adicionando itens na lista

lista = []

for elemento in range(5):

    lista.append(elemento ** 2)

print lista# [0, 1, 4, 9, 16]

lista.insert(2, ­657)

print lista# [0, 1, ­657, 4, 9, 16]

Page 21: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 21

Pegando o tamanho da lista

lista = [23, 65, 298, ­82, 5]

print len(lista)# 5

Page 22: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 22

Acessando os ítens de uma lista

lista = [23, 65, 298, ­82, 5]

print lista[2]# 298

print lista[­2]# ­82

print lista[::­1]# [5, ­82, 298, 65, 23]

Page 23: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 23

Removendo ítens de uma lista

lista = [23, 65, 298, ­82, 298, 5, 23]

# [23, 65, 298, ­82, 298, 5, 23]

lista.remove(298)

# [23, 65, ­82, 298, 5, 23]

lista.pop(2)

# [23, 65, 298, 5, 23]

quantidade = lista.count(23)

for _ in range(quantidade):

    lista.remove(23)

print lista# [65, 298, 5]

Page 24: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 24

Verificando a ocorrência de um ítem na lista

# coding=utf­8

lista = [23, 65, 298, ­82, 298, 5, 23]

try:    indice = lista.index(45)

    print "O elemento 45 está na posição %d da lista!"%indiceexcept ValueError:    print "O elemento 45 não está na lista."try:    indice = lista.index(298)

    print "O elemento 298 está na posição %d da lista!"%indiceexcept ValueError:    print "O elemento 298 não está na lista."'''O elemento 45 não está na lista.O elemento 298 está na posição 2 da lista!'''

Page 25: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 25

Reagrupando os ítens de uma lista

lista = [23, 65, 298, ­82, 298, 5, 23]

lista.sort()

# [­82, 5, 23, 23, 65, 298, 298]

lista.reverse()

# [298, 298, 65, 23, 23, 5, ­82]

Page 26: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 26

Concatenando listas

lista1 = [23, 65, 298, ­82, 298, 5, 23]

lista2 = ["um", "dois", "tres"]

lista1.extend(lista2)

print lista1

# [23, 65, 298, ­82, 298, 5, 23, 'um', 'dois', 'tres']

Page 27: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 27

Criando dicionários

# coding=utf­8

dicionario_idades = {"Luzia" : 45, "Sidney" : 27, "Suelen" : 27, "Amauri" : 37}

dicionario_idades["Juca"] = 1

print dicionario_idades

# {'Suelen': 27, 'Luzia': 45, 'Juca': 1, 'Amauri': 37, 'Sidney': 27}

dicionario_quadrados = {x: x ** 2 for x in range(11)}

print dicionario_quadrados

# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

# Se a chave for uma string simples, o dicionário pode ser criado como abaixo:

dicionario_registros = dict(martelo = 17, chave = 2, alicate = 45)

print dicionario_registros

# {'chave': 2, 'alicate': 45, 'martelo': 17}

Page 28: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 28

Acessando os ítens de um dicionário

dicionario_idades = {"Luzia" : 45, "Sidney" : 27, "Amauri" : 37}

print dicionario_idades["Sidney"]

# 27

for chave,valor in dicionario_idades.iteritems():

    # Imprime os pares chave ­> valor

    print "%s ­> %d"%(chave,valor)

for chave in dicionario_idades.keys():

    # Imprime cada chave do dicionario

    print chave

for valor in dicionario_idades.values():

    # Imprime cada valor do dicionario

    print valor

Page 29: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 29

Removendo ítens do dicionário# coding=utf­8

dicionario_idades = {"Luzia" : 45, "Sidney" : 27, "Suelen" : 27, "Amauri" : 37}

del dicionario_idades["Sidney"]

# {'Suelen': 27, 'Luzia': 45, 'Amauri': 37}

dicionario_idades.pop("Luzia")

# {'Suelen': 27, 'Amauri': 37}

# Removendo todos os ítens do dicionário

dicionario_idades.clear()

# {}

Page 30: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 30

Desempilhando ítens de um dicionário

dicionario_idades = {"Luzia" : 45, "Sidney" : 27, "Suelen" : 27, "Amauri" : 37}

item = dicionario_idades.popitem()

try:

    while item:

        print item

        # Se o dicionario estiver vazio, popitem lançará uma exceção,

        # a qual tratamos logo abaixo.

        item = dicionario_idades.popitem()

except KeyError:

    print "Sem mais itens."

Page 31: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 31

Criando um dicionário "on the fly"

for chave, valor in enumerate(['zero', 'um', 'dois']):

    print chave, valor

'''

0 zero

1 um

2 dois

'''

Page 32: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 32

Transformando duas listas em um dicionário

paises = ['Brasil', 'Argentina', 'Uruguai', 'Venezuela', 'Peru']

nacionalidades = ['brasileiro', 'argentino', 'uruguaio', 'venezuelano', 'peruano']

for pais, nacionalidade in zip(paises, nacionalidades):

    print "O %s e natural de que pais?\nR: %s\n"%(nacionalidade, pais)'''

O brasileiro e natural de que pais?

R: Brasil

O argentino e natural de que pais?

R: Argentina

O uruguaio e natural de que pais?

R: Uruguai

O venezuelano e natural de que pais?

R: Venezuela

O peruano e natural de que pais?

R: Peru

'''

Page 33: Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)

Tec. em Sistemas para Internet - IFMS 33

Referências

pa-pe-pi-po-pure Python Text Processing. Disponível em http://www.slideshare.net/rodsenra/papepipopure-python-text-processing. Acessado em 1 de maio de 2013.

Strings. Disponível em http://docs.python.org/release/1.5.1p1/tut/strings.html. Acessado em 1 de maio de 2013.

Data Structures. Disponível em http://docs.python.org/2/tutorial/datastructures.html. Acessado em 2 de maio de 2013.