SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Google’s Python Class
GDG Feira de Santana
Bem vindo!
Introdução
Assumo que você já sabe
um pouco de lógica de
programação...
Downloads
● www.python.org
● http://winpython.github.io/
Material de apoio
https://github.com/gdgfsa/python3-exercises
Hello World
python hello.py
Vamos dar uma olhada...
Um pouco de teoria...
● Dinâmica
● Interpretada
● Orientada a objetos
● Não requer ;
● sensível a minúsculas e maiúsculas
● Comentários: #
● Indentação marca os blocos
● Arquivos .py
Funções
# Defines a "repeat" function that takes 2 arguments.
def repeat(s, exclaim):
"""
Returns the string 's' repeated 3 times.
If exclaim is true, add exclamation marks.
"""
result = s + s + s # can also use "s * 3" which is faster (Why?)
if exclaim:
result = result + '!!!'
return result
Nomeando as coisas
● Não use palavras reservadas. (if, else, while, etc.)
● Pode começar com uma letra seguido de um número ou _
● _ no início tem um uso especial
● Constantes usam maiúsculas: PI
● Nomes compostos usa-se _: user_list
● Classes usa CamelCase: AdminUser
● Mais recomendações no guia de estilo oficial:
https://www.python.org/dev/peps/pep-0008
Help!
● docs.python.org
● StackOverflow.com
● Quora.com
● help()
● dir()
String
s = 'hi'
print(s[1]) ## i
print(len(s)) ## 2
print( s + ' there') ## hi there
String
pi = 3.14
##text = 'The value of pi is ' + pi ##
NO, does not work
text = 'The value of pi is ' + str(pi) ##
yes
String
raw = r'thistn and that'
print(raw) ## thistn and that
multi = """It was the best of times.
It was the worst of times."""
String
● s.lower(), s.upper(): todas minúsculas, todas maiúsculas
● s.strip(): remove espaços do início e final da string
● s.isalpha()/s.isdigit()/s.isspace()...: faz diversos testes na string
● s.startswith('other'), s.endswith('other'): começa com, termina com
● s.find('other'): procura a primeira ocorrência da string ou expressão
regular
● s.replace('old', 'new'): retorna uma nova string com a substituição de
todas as ocorrências de old por new.
● s.split('delim'): retorna uma lista de substrings separadas por um
delimitador
● s.join(list): recebe uma lista e retorna uma string juntando todos os
elementos
String Slice
Operador %
# % operator
text = "%d little pigs come out or I'll %s and %s and
%s" % (3, 'huff', 'puff', 'blow down')
# add parens to make the long-line work:
text = ("%d little pigs come out or I'll %s and %s and
%s" %
(3, 'huff', 'puff', 'blow down'))
Listas
colors = ['red', 'blue', 'green']
print(colors[0]) ## red
print( colors[2]) ## green
print( len(colors)) ## 3
Listas
b = colors ## Does not copy the list
Listas
squares = [1, 4, 9, 16]
sum = 0
for num in squares:
sum += num
print( sum ) ## 30
Listas
list = ['larry', 'curly', 'moe']
if 'curly' in list:
print('yay')
Listas
## print the numbers from 0 through 99
for i in range(100):
print(i)
Listas
## Access every 3rd element in a list
i = 0
while i < len(a):
print(a[i])
i = i + 3
Listas
● list.append(elem): adiciona um elemento ao final da lista.
● list.insert(index, elem) : insere o elemento no índice, deslocando o restante para a
frente.
● list.extend(list2): adiciona elementos da list2 ao final de list. Operador + e += fazem
algo similar.
● list.index(elem): procura o elemento a partir do início e retorn o índice. Lança um
ValueError se não existe. Semelhante a usar o operador “in”, mas não lança erro.
● list.remove(elem): procura a primeira instância do elemento e remove da lista
(lança ValueError se não encontrar)
● list.sort(): ordena a lista.
● list.reverse(): inverte a ordem dos elementos da lista.
● list.pop(index): remove e retorna o elemento na posição index. Retorna o último
elemento se não tiver argumento.
Listas
list = ['larry', 'curly', 'moe']
list.append('shemp') ## append elem at end
list.insert(0, 'xxx') ## insert elem at index 0
list.extend(['yyy', 'zzz']) ## add list of elems at end
print(list) ## ['xxx', 'larry', 'curly', 'moe', 'shemp', 'yyy', 'zzz']
print(list.index('curly')) ## 2
list.remove('curly') ## search and remove that element
list.pop(1) ## removes and returns 'larry'
print(list) ## ['xxx', 'moe', 'shemp', 'yyy', 'zzz']
Listas
list = ['a', 'b', 'c', 'd']
print(list[1:-1]) ## ['b', 'c']
list[0:2] = 'z' ## replace ['a', 'b'] with ['z']
print(list) ## ['z', 'c', 'd']
Tuplas
tuple = (1, 2, 'hi')
print(len(tuple)) ## 3
print(tuple[2]) ## hi
tuple[2] = 'bye' ## NO, tuples cannot be changed
tuple = (1, 2, 'bye') ## this works
tuple = ('hi',) ## size-1 tuple
(x, y, z) = (42, 13, "hike")
print(z) ## hike
(err_string, err_code) = Foo() ## Foo() returns a length-2 tuple
List Comprehensions
nums = [1, 2, 3, 4]
squares = [ n * n for n in nums ] ## [1, 4, 9, 16]
strs = ['hello', 'and', 'goodbye']
shouting = [ s.upper() + '!!!' for s in strs ]
## ['HELLO!!!', 'AND!!!', 'GOODBYE!!!']
Dicionários
Dicionários
dict = {}
dict['a'] = 'alpha'
dict['g'] = 'gamma'
dict['o'] = 'omega'
print(dict) ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}
Dicionários
print(dict['a']) ## Simple lookup, returns 'alpha'
dict['a'] = 6 ## Put new key/value into dict
'a' in dict ## True
## print(dict['z']) ## Throws KeyError
if 'z' in dict: print(dict['z']) ## Avoid KeyError
print(dict.get('z')) ## None (instead of KeyError)
Dicionários
## By default, iterating over a dict iterates over its keys.
## Note that the keys are in a random order.
for key in dict: print(key)
## prints a g o
## Exactly the same as above
for key in dict.keys(): print(key)
## Get the .keys() list:
print(dict.keys()) ## ['a', 'o', 'g']
Dicionários
## Likewise, there's a .values() list of values
print(dict.values()) ## ['alpha', 'omega', 'gamma']
## Common case -- loop over the keys in sorted order,
## accessing each key/value
for key in sorted(dict.keys()):
print(key, dict[key])
Dicionários
## .items() is the dict expressed as (key, value) tuples
print(dict.items()) ## [('a', 'alpha'), ('o', 'omega'),
('g', 'gamma')]
## This loop syntax accesses the whole dict by looping
## over the .items() tuple list, accessing one (key, value)
## pair on each iteration.
for k, v in dict.items(): print(k, '>', v)
## a > alpha o > omega g > gamma
hash = {}
hash['word'] = 'garfield'
hash['count'] = 42
s = 'I want %(count)d copies of %(word)s' % hash # %d for
int, %s for string
# 'I want 42 copies of garfield'
var = 6
del var # var no more!
list = ['a', 'b', 'c', 'd']
del list[0] ## Delete first element
del list[-2:] ## Delete last two elements
print(list) ## ['b']
dict = {'a':1, 'b':2, 'c':3}
del dict['b'] ## Delete 'b' entry
print(dict) ## {'a':1, 'c':3}
Arquivos
# Echo the contents of a file
f = open('foo.txt', 'rU') #r->read,w->write,a->append,
U->universal
for line in f: ## iterates over the lines of the file
print(line,) ## trailing , so print does not add an
end-of-line char
## since 'line' already includes the end-of
line.
f.close()
Arquivos
● f.readlines(): uma lista em memória de todo o conteúdo. Os elementos
dessa lista são as linhas do arquivo.
● f.read(): retorna uma string com todo o conteúdo do arquivo.
● f.write(string): escreve a string no arquivo.
● print(string, file=f): usa a função print para escrever no arquivo f.
Arquivos Unicode
import codecs
f = codecs.open('foo.txt', 'rU', 'utf-8')
for line in f:
# here line is a *unicode* string
Mantenha contato!
Meetup: https://www.meetup.com/pt-BR/gdgfsa/
Facebook: https://www.facebook.com/fsagdg/
Material completo (em inglês):
https://developers.google.com/edu/python

Mais conteúdo relacionado

Mais procurados

Apresentação j query5
Apresentação j query5Apresentação j query5
Apresentação j query5douglasgrava
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
Programando em python conjuntos
Programando em python   conjuntosProgramando em python   conjuntos
Programando em python conjuntossamuelthiago
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 
Sobre programas e funções: pensando em abstração
Sobre programas e funções: pensando em abstraçãoSobre programas e funções: pensando em abstração
Sobre programas e funções: pensando em abstraçãoArthur Xavier
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarCRISLANIO MACEDO
 
Introdução a python módulo b
Introdução a python   módulo bIntrodução a python   módulo b
Introdução a python módulo bJader Gabriel
 
Lista Encadeada: Inserção no Início
Lista Encadeada: Inserção no InícioLista Encadeada: Inserção no Início
Lista Encadeada: Inserção no InícioElaine Cecília Gatto
 
Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesLuis Gustavo Almeida
 

Mais procurados (20)

Resolução lista2
Resolução lista2Resolução lista2
Resolução lista2
 
Haskell aula3 listas
Haskell aula3 listasHaskell aula3 listas
Haskell aula3 listas
 
Apresentação j query5
Apresentação j query5Apresentação j query5
Apresentação j query5
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Programando em python conjuntos
Programando em python   conjuntosProgramando em python   conjuntos
Programando em python conjuntos
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Sobre programas e funções: pensando em abstração
Sobre programas e funções: pensando em abstraçãoSobre programas e funções: pensando em abstração
Sobre programas e funções: pensando em abstração
 
PHP 5.3 - Arrays
PHP 5.3 - ArraysPHP 5.3 - Arrays
PHP 5.3 - Arrays
 
Php curl - Coleta de dados na web
Php curl - Coleta de dados na webPhp curl - Coleta de dados na web
Php curl - Coleta de dados na web
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Python aula 2
Python aula 2Python aula 2
Python aula 2
 
Introdução a python módulo b
Introdução a python   módulo bIntrodução a python   módulo b
Introdução a python módulo b
 
Lista Encadeada: Inserção no Início
Lista Encadeada: Inserção no InícioLista Encadeada: Inserção no Início
Lista Encadeada: Inserção no Início
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e Routes
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 

Semelhante a Google's Python Class Intro

Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Pythondmmartins
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Programando em python tuplas e strings
Programando em python   tuplas e stringsProgramando em python   tuplas e strings
Programando em python tuplas e stringssamuelthiago
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfEduardoChicoJooJoo
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayDilan Nery Lopes
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando CVinícius Hax
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listassamuelthiago
 
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
 

Semelhante a Google's Python Class Intro (20)

Python 02
Python 02Python 02
Python 02
 
Python
PythonPython
Python
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
05 listas
05 listas05 listas
05 listas
 
Programando em python tuplas e strings
Programando em python   tuplas e stringsProgramando em python   tuplas e strings
Programando em python tuplas e strings
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDay
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
python
pythonpython
python
 
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)
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 

Mais de Romualdo Andre

Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Romualdo Andre
 
Dúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço públicoDúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço públicoRomualdo Andre
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017Romualdo Andre
 
Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Romualdo Andre
 
Facilite a vida com guava
Facilite a vida com guavaFacilite a vida com guava
Facilite a vida com guavaRomualdo Andre
 
Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Romualdo Andre
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros PassosRomualdo Andre
 
Introdução JavaScript e DOM
Introdução JavaScript e DOMIntrodução JavaScript e DOM
Introdução JavaScript e DOMRomualdo Andre
 
Corrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCVCorrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCVRomualdo Andre
 
O programador e o super carro
O programador e o super carroO programador e o super carro
O programador e o super carroRomualdo Andre
 
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de KohonenIdentificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de KohonenRomualdo Andre
 
Exercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos EvolutivosExercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos EvolutivosRomualdo Andre
 
Uso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutasUso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutasRomualdo Andre
 
Introdução ao JavaScript e DOM
Introdução ao JavaScript e DOMIntrodução ao JavaScript e DOM
Introdução ao JavaScript e DOMRomualdo Andre
 

Mais de Romualdo Andre (20)

Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
 
Dúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço públicoDúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço público
 
Tendências 2018
Tendências 2018Tendências 2018
Tendências 2018
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017
 
Codelab HTML e CSS
Codelab HTML e CSSCodelab HTML e CSS
Codelab HTML e CSS
 
Império JavaScript
Império JavaScriptImpério JavaScript
Império JavaScript
 
Angular 2 Básico
Angular 2 BásicoAngular 2 Básico
Angular 2 Básico
 
Codelab: TypeScript
Codelab: TypeScriptCodelab: TypeScript
Codelab: TypeScript
 
Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016
 
Facilite a vida com guava
Facilite a vida com guavaFacilite a vida com guava
Facilite a vida com guava
 
Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
 
Introdução JavaScript e DOM
Introdução JavaScript e DOMIntrodução JavaScript e DOM
Introdução JavaScript e DOM
 
Corrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCVCorrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCV
 
O programador e o super carro
O programador e o super carroO programador e o super carro
O programador e o super carro
 
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de KohonenIdentificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
 
Exercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos EvolutivosExercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos Evolutivos
 
Uso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutasUso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutas
 
Introdução ao JavaScript e DOM
Introdução ao JavaScript e DOMIntrodução ao JavaScript e DOM
Introdução ao JavaScript e DOM
 
Introdução ao XML
Introdução ao XMLIntrodução ao XML
Introdução ao XML
 

Último

Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 

Último (20)

Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 

Google's Python Class Intro

  • 1. Google’s Python Class GDG Feira de Santana
  • 3. Introdução Assumo que você já sabe um pouco de lógica de programação...
  • 7. Vamos dar uma olhada...
  • 8. Um pouco de teoria... ● Dinâmica ● Interpretada ● Orientada a objetos ● Não requer ; ● sensível a minúsculas e maiúsculas ● Comentários: # ● Indentação marca os blocos ● Arquivos .py
  • 9. Funções # Defines a "repeat" function that takes 2 arguments. def repeat(s, exclaim): """ Returns the string 's' repeated 3 times. If exclaim is true, add exclamation marks. """ result = s + s + s # can also use "s * 3" which is faster (Why?) if exclaim: result = result + '!!!' return result
  • 10. Nomeando as coisas ● Não use palavras reservadas. (if, else, while, etc.) ● Pode começar com uma letra seguido de um número ou _ ● _ no início tem um uso especial ● Constantes usam maiúsculas: PI ● Nomes compostos usa-se _: user_list ● Classes usa CamelCase: AdminUser ● Mais recomendações no guia de estilo oficial: https://www.python.org/dev/peps/pep-0008
  • 11. Help! ● docs.python.org ● StackOverflow.com ● Quora.com ● help() ● dir()
  • 12. String s = 'hi' print(s[1]) ## i print(len(s)) ## 2 print( s + ' there') ## hi there
  • 13. String pi = 3.14 ##text = 'The value of pi is ' + pi ## NO, does not work text = 'The value of pi is ' + str(pi) ## yes
  • 14. String raw = r'thistn and that' print(raw) ## thistn and that multi = """It was the best of times. It was the worst of times."""
  • 15. String ● s.lower(), s.upper(): todas minúsculas, todas maiúsculas ● s.strip(): remove espaços do início e final da string ● s.isalpha()/s.isdigit()/s.isspace()...: faz diversos testes na string ● s.startswith('other'), s.endswith('other'): começa com, termina com ● s.find('other'): procura a primeira ocorrência da string ou expressão regular ● s.replace('old', 'new'): retorna uma nova string com a substituição de todas as ocorrências de old por new. ● s.split('delim'): retorna uma lista de substrings separadas por um delimitador ● s.join(list): recebe uma lista e retorna uma string juntando todos os elementos
  • 17. Operador % # % operator text = "%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down') # add parens to make the long-line work: text = ("%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down'))
  • 18. Listas colors = ['red', 'blue', 'green'] print(colors[0]) ## red print( colors[2]) ## green print( len(colors)) ## 3
  • 19. Listas b = colors ## Does not copy the list
  • 20. Listas squares = [1, 4, 9, 16] sum = 0 for num in squares: sum += num print( sum ) ## 30
  • 21. Listas list = ['larry', 'curly', 'moe'] if 'curly' in list: print('yay')
  • 22. Listas ## print the numbers from 0 through 99 for i in range(100): print(i)
  • 23. Listas ## Access every 3rd element in a list i = 0 while i < len(a): print(a[i]) i = i + 3
  • 24. Listas ● list.append(elem): adiciona um elemento ao final da lista. ● list.insert(index, elem) : insere o elemento no índice, deslocando o restante para a frente. ● list.extend(list2): adiciona elementos da list2 ao final de list. Operador + e += fazem algo similar. ● list.index(elem): procura o elemento a partir do início e retorn o índice. Lança um ValueError se não existe. Semelhante a usar o operador “in”, mas não lança erro. ● list.remove(elem): procura a primeira instância do elemento e remove da lista (lança ValueError se não encontrar) ● list.sort(): ordena a lista. ● list.reverse(): inverte a ordem dos elementos da lista. ● list.pop(index): remove e retorna o elemento na posição index. Retorna o último elemento se não tiver argumento.
  • 25. Listas list = ['larry', 'curly', 'moe'] list.append('shemp') ## append elem at end list.insert(0, 'xxx') ## insert elem at index 0 list.extend(['yyy', 'zzz']) ## add list of elems at end print(list) ## ['xxx', 'larry', 'curly', 'moe', 'shemp', 'yyy', 'zzz'] print(list.index('curly')) ## 2 list.remove('curly') ## search and remove that element list.pop(1) ## removes and returns 'larry' print(list) ## ['xxx', 'moe', 'shemp', 'yyy', 'zzz']
  • 26. Listas list = ['a', 'b', 'c', 'd'] print(list[1:-1]) ## ['b', 'c'] list[0:2] = 'z' ## replace ['a', 'b'] with ['z'] print(list) ## ['z', 'c', 'd']
  • 27. Tuplas tuple = (1, 2, 'hi') print(len(tuple)) ## 3 print(tuple[2]) ## hi tuple[2] = 'bye' ## NO, tuples cannot be changed tuple = (1, 2, 'bye') ## this works tuple = ('hi',) ## size-1 tuple (x, y, z) = (42, 13, "hike") print(z) ## hike (err_string, err_code) = Foo() ## Foo() returns a length-2 tuple
  • 28. List Comprehensions nums = [1, 2, 3, 4] squares = [ n * n for n in nums ] ## [1, 4, 9, 16] strs = ['hello', 'and', 'goodbye'] shouting = [ s.upper() + '!!!' for s in strs ] ## ['HELLO!!!', 'AND!!!', 'GOODBYE!!!']
  • 30. Dicionários dict = {} dict['a'] = 'alpha' dict['g'] = 'gamma' dict['o'] = 'omega' print(dict) ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}
  • 31. Dicionários print(dict['a']) ## Simple lookup, returns 'alpha' dict['a'] = 6 ## Put new key/value into dict 'a' in dict ## True ## print(dict['z']) ## Throws KeyError if 'z' in dict: print(dict['z']) ## Avoid KeyError print(dict.get('z')) ## None (instead of KeyError)
  • 32. Dicionários ## By default, iterating over a dict iterates over its keys. ## Note that the keys are in a random order. for key in dict: print(key) ## prints a g o ## Exactly the same as above for key in dict.keys(): print(key) ## Get the .keys() list: print(dict.keys()) ## ['a', 'o', 'g']
  • 33. Dicionários ## Likewise, there's a .values() list of values print(dict.values()) ## ['alpha', 'omega', 'gamma'] ## Common case -- loop over the keys in sorted order, ## accessing each key/value for key in sorted(dict.keys()): print(key, dict[key])
  • 34. Dicionários ## .items() is the dict expressed as (key, value) tuples print(dict.items()) ## [('a', 'alpha'), ('o', 'omega'), ('g', 'gamma')] ## This loop syntax accesses the whole dict by looping ## over the .items() tuple list, accessing one (key, value) ## pair on each iteration. for k, v in dict.items(): print(k, '>', v) ## a > alpha o > omega g > gamma
  • 35. hash = {} hash['word'] = 'garfield' hash['count'] = 42 s = 'I want %(count)d copies of %(word)s' % hash # %d for int, %s for string # 'I want 42 copies of garfield'
  • 36. var = 6 del var # var no more! list = ['a', 'b', 'c', 'd'] del list[0] ## Delete first element del list[-2:] ## Delete last two elements print(list) ## ['b'] dict = {'a':1, 'b':2, 'c':3} del dict['b'] ## Delete 'b' entry print(dict) ## {'a':1, 'c':3}
  • 37. Arquivos # Echo the contents of a file f = open('foo.txt', 'rU') #r->read,w->write,a->append, U->universal for line in f: ## iterates over the lines of the file print(line,) ## trailing , so print does not add an end-of-line char ## since 'line' already includes the end-of line. f.close()
  • 38. Arquivos ● f.readlines(): uma lista em memória de todo o conteúdo. Os elementos dessa lista são as linhas do arquivo. ● f.read(): retorna uma string com todo o conteúdo do arquivo. ● f.write(string): escreve a string no arquivo. ● print(string, file=f): usa a função print para escrever no arquivo f.
  • 39. Arquivos Unicode import codecs f = codecs.open('foo.txt', 'rU', 'utf-8') for line in f: # here line is a *unicode* string
  • 40. Mantenha contato! Meetup: https://www.meetup.com/pt-BR/gdgfsa/ Facebook: https://www.facebook.com/fsagdg/ Material completo (em inglês): https://developers.google.com/edu/python