View
805
Download
0
Category
Preview:
DESCRIPTION
Citation preview
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
sidney.sousa@ifms.edu.br
Tec. em Sistemas para Internet - IFMS 2
O que veremos nesta aula?
● Comentando código● Manipulando strings● Manipulando listas● Manipulando dicionários
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
Tec. em Sistemas para Internet - IFMS 4
Comentários com múltiplas linhas
# coding=utf8
'''
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
'''
Tec. em Sistemas para Internet - IFMS 5
Criando strings
# coding=utf8
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...
Tec. em Sistemas para Internet - IFMS 6
Pegando o tamanho da string
uma_string = 'Uma string de tamanho mediano...'
print len(uma_string) # 32
Tec. em Sistemas para Internet - IFMS 7
Concatenando strings
# coding=utf8
# 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
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
Tec. em Sistemas para Internet - IFMS 9
Pegando partes da string
# coding=utf8
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]
Tec. em Sistemas para Internet - IFMS 10
Utilizando índices negativos# coding=utf8
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]
Tec. em Sistemas para Internet - IFMS 11
Removendo espaços em branco no início e no fim da string
# coding=utf8
frase = " Por favor, retire estes espaços em branco malditos! "
print frase.strip()
Tec. em Sistemas para Internet - IFMS 12
Particionando uma string
# coding=utf8
frase = "Quero quebrar esta frase em várias palavras"
palavras = frase.split(" ")
for palavra in palavras:
print palavra
Tec. em Sistemas para Internet - IFMS 13
Verificando o início da string
# coding=utf8
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
Tec. em Sistemas para Internet - IFMS 14
Verificando o fim da string
# coding=utf8
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..."
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()
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
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..."
Tec. em Sistemas para Internet - IFMS 18
Convertendo um número em string
numero_em_texto = str(2 ** 1024)
print numero_em_texto[:10]
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]
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]
Tec. em Sistemas para Internet - IFMS 21
Pegando o tamanho da lista
lista = [23, 65, 298, 82, 5]
print len(lista)# 5
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]
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]
Tec. em Sistemas para Internet - IFMS 24
Verificando a ocorrência de um ítem na lista
# coding=utf8
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!'''
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]
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']
Tec. em Sistemas para Internet - IFMS 27
Criando dicionários
# coding=utf8
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}
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
Tec. em Sistemas para Internet - IFMS 29
Removendo ítens do dicionário# coding=utf8
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()
# {}
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."
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
'''
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
'''
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.
Recommended