Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Python Aula 03
Hello
orld
Python Aula 03
print -Hello
orld.
/0emplo1.py
Python Aula 03
2ipos e opera3es
4amos )er um trecho de c5di6o em Python!
Python Aula 03
C5di6o Base
Python Aula 03
Python Aula 03
Python Aula 03
>
Python Aula 03
Python Aula 03
10
Python Aula 03
11
Python Aula 03
12
Python Aula 03
13
Python Aula 03
1,
/0emplo1
Python Aula 03
11
Ms tipos das )ari)eis n;o precisam ser inGormadosJ Python desco:re o tipo da )ari)el por conta pr5pria!
Python Aula 03
17
9 9
Ms tipos das )ari)eis n;o precisam ser inGormadosJ Python desco:re o tipo da )ari)el por conta pr5pria!
Python Aula 03
18
Python Aula 03
1>
Python Aula 03
1?
Python Aula 03
20
hitespace
9 Tmportante para identa;o e no)as linhas
9
Sse \ para Ruando Gor para uma pr50ima linha prematuramente.
9 /m Python
Python Aula 03
21
Comentrios
Con)en;oB 4ocQ pode deGinir uma -documenta;o. em strin6 como primeira linha de RualRuer no)a Gun;o Rue )ocQ deGinir. Muito importante para o desen)ol)edor* crHtico para o usurio!
Python Aula 03
22
Conhecendo a lin6ua6em...
Python Aula 03
23
Conhecendo a lin6ua6em...
Python Aula 03
2,
9 Tnteiros Won6os
1.23* 3.,e%10
9 Mpera3es )lidasB
a:s* etc.
C* D* XX * DD * po#* /0emplo1
Python Aula 03
21
C* D* XX * DD * po#*
Python Aula 03
/0emplo1
27
2ipos Bsicos
/0emplo1.py
Python Aula 03
28
2ipos Bsicos
9Itrin6s
9
-a:c. ou "a:c$
9httpBEEdocs.python.or6EreGerenceEe0pressions.htmlUsummary
/0emplo1.py
Python Aula 03
2>
Comandos :sicos
9 Al6uns comandos :sicos Rue podem aZudar
no Hnicio!
9 9 9
dirKelementL % todos os atri:utos e mPtodos Rue est;o associados a elemento. typeKelementL - Vesco:rir o tipo do o:Zeto! import % importe m5dulos para uso no seu c5di6o!
Python Aula 03
2?
/0ercHcio 01
9 Yaa um pro6rama Rue pea 2 nAmeros e um
real.
9 9 9
Calcule e mostreB M produto do do:ro do primeiro com a metade do se6undo A soma do triplo do primeiro com o terceiro M terceiro ele)ado ao cu:o
Python Aula 03
30
Atri:ui;o
... 4amos entender como Gunciona atri:ui;o!
Python Aula 03
31
Atri:ui;o
9 Atri:ui;o de uma )ari)el em Python si6niGica
9 9
Atri:ui;o cria reGerQncias e n;o c5pias! TnGerQncia do tipo da reGerQncia :aseado no tipo de dado atri:uHdo
Python Aula 03
32
Atri:ui;o
9 Wem:re%se Rue Python a tipa6em P din_mica!
9
Veclarar )ari)eis sem atri:uH%las ir le)antar um erro!
Python Aula 03
33
0 = y = < = 2.0
Python Aula 03
3,
Atri:ui;o
9 9
0 = y n;o si6niGica Rue )ocQ Ge< uma c5pia de y! 0 = y o Rue realmente Ga< P 0 reGerencia ao o:Zeto Rue y reGerencia!
Python Aula 03
31
Atri:ui;o
9 Mas e se Gi<ermos isso ?! ^ual ser o )alor de 0 ?
XXX 0 = -casa. XXX y = 0 XXX 0 = -Ga<enda. XXX print 0
Python Aula 03
37
Vo mesmo Zeito Rue n5s esper)amos! Vados 9 XXX 0 = -casa. Ucria 3* 0 reGerencia ao o:Zeto strin6 nati)os s;o imut)eis! KItrin6* Tnteiros* Gloat* -casa. comple0osL.
XXX y = 0 strin6 -casa. U Cria )aria)el y* reGerencia ao o:Zeto XXX y = -Ga<enda. UCria reGerencia ao o:Zeto strin6 -Ga<enda. XXX print 0 reGerencia -casa. XXX casa U @enhum eGeito em 0* ainda
Python Aula 03
38
Python Aula 03
3>
9 Wistas
li = a1*2*3* "a:c$b
9 2uplas
9 Itrin6s
st = -Hello
orld. st = "Hello
3?
orld$
Python Aula 03
/0emplos2
9 Yracionamento 9 Mperador in
9
, in li
e matri<es!
,0
/0emplos2
Python Aula 03
,1
Mperac3es em Wistas
9 Mperador C *
9 9 9 9 9 9
D
orld. Kconcatena;oL a = -Hello. C [3] D , Krepeti;oL
lenKL % retorna um inteiro com o tamanho da seRuQncia! popKL % retira o Altimo elemento da lista Kconceito de pilhas!L appendKL % adiciona um elemento ao Ginal da lista!
list[ ] ! 3
/0emplos2
,2
Mperac3es em Wistas
9 ^ual ser o )alor de
XXX a = a1*2*3b XXX : = a XXX a.appendK,L XXX print :
:?
Python Aula 03
,3
Mperac3es em Wistas
:?
9 Iurpresa!
XXX : = a1*2*3*,b
,,
Mperac3es em Wistas
Python Aula 03
,1
Mperac3es em Wistas
9 Para Ga<er c5pias de listas
9 9 9 9 9 9
a = :aBb K2 c5pias independentesL a = : Kos 2 reGerenciam o mesmo o:ZetoL
,7
2uplas 0 Wistas
9 Wistas s;o mais lentas porPm mais poderosas Rue
tuplas
9 9 9 9
Wistas podem ser modiGicadas e tem di)ersos operadores Rue podem ser utili<ados 2uplas s;o imut)eis e tem menos Guncionalidades!
/0emplos2
Python Aula 03
,8
,>
/0ercHcio 02
Python Aula 03
,?
Itrin6s
9 Yormata;o e con)ers;o de Itrin6s 9 Ssam os mesmos operadores :sicos de lista 9 Multi%Itrin6s* Itrin6s com aspas simples e duplas 9 Caracteres Ipeciais e strKL e unicodeKL
/0emplos2
Python Aula 03
10
Itrin6s
9 2am:Pm uma seRuQncia e P Tmut)el!
9 9 9 9 9
-,2. C 1 Kerro!L Sse -,2. C strK1L GloatKL* intKL %X strin6 para numPro
9 Atri:ui;o
I = "spam$ Ia0b = "0$ /[[M!!! Itrin6s s;o imut)eis! Itrin6 %X Wista %X Itrin6 K.ZoinL
9 Yormata;o de strin6
/0emplos2
Python Aula 03
11
12
/0ercHcio 03
9 Dica: help(random) - mdulo para 9 Yaa um pro6rama Rue permita ao usurio 9 Dica: Procure pela documentao do
help()
Python Aula 03
di6itar o nome e em se6uida mostrar ao usurio de trs pra Grente somente em letras maiAsculas.
13
Vicionrios
Sm -hash map. pythonico!
Python Aula 03
1,
Vicionrios
9 /strutura de dados em Gorma de cole3es onde os
9 9 9 9
Cha)es podem ser RuaisRuer o:Zetos do tipo imut)el 4alores podem ser de RualRuer tipo Sm dicionrio pode arma<enar diGerentes tipos de )alores e P mutvel!
/0emplos3.py
Python Aula 03
11
Vicionrios
9 Vicionrios n;o s;o ordenados!
9 9 9 9
Yunciona como -hashin6. Sma no)a cha)e pode aparecer em RualRuerr lu6ar
9 Al6ums mPtodosB
has`deyK"e66s$L * clearKL * del da"dey$b * deysKL* )aluesKL* itemsKL* 6etKL * updateKL copyKL Ga<er c5pias de dicionrios ! KWem:re%se Rue dicionario P mut)el!L
/0emplos3.py
Python Aula 03
17
ArRui)os
Como P Gcil manipular um arRui)o!
Python Aula 03
18
ArRui)os
9 Apenas uma linha para a:rir um arRui)o!
9 9 9 9
Gile = openK-data.* "r$L tiposB r* a* #
/0emplos3.py
Python Aula 03
1>
Booleanos
/0press3es l56icas
Python Aula 03
1?
/0press3es l56icas
9 +rue e ,alse s;o constantes em Python
9 9 9 9 9
Yalse B 0* @one* ab * '+ * 0.0 2rueB 4alores @umPricos e0ceto 0* o:Zeto n;o )a<ios Sm dicionrio pode arma<enar diGerentes tipos de )alores e P mutvel!
/0emplos3.py
Python Aula 03
70
/0press3es l56icas
9 #one P similar ao @SWW em lin6ua6em C
9 9 9
W = a@oneb D 100 Kdeclara uma lista de 100 items @one L
not %X in)ers;o l56ica Ktrue %X Galse * Galse %X trueL DDCasos especiaisB /le retorna o )alor de uma das su:%e0press3es!
9 isinstanceKelement*typeL
9
/0emplos3.py
Python Aula 03
71
/0ercHcios 0,
/0emplos3
Python Aula 03
72
/0ercHcios 01
/0emplos3
Python Aula 03
73
Tnstru3es compostas
Python Aula 03
7,
Ylu0o de Controle
9 4rias e0press3es Python para controlar o Glu0o do
pro6rama. 2odos eles Ga<em uso de testes condicionais :ooleanos.
9 9 9
Python Aula 03
71
Tnstru3es iG
9 @;o esRueam da identa;o em :locos! 9 / do KBL ap5s a e0press;o :ooleana!
/0emplos,
Python Aula 03
77
Tnstru3es iG
/0emplos,.py
Python Aula 03
78
Tnstru;o assert
9 M uso de assert permite )eriGicar se al6o P
9
assertKnum:er`oG`players \ 1L
Python Aula 03
7>
Tnstru3es #hile
para o Hnicio do loop mais pr50imo Rue a en)ol)e e pular para a pr50ima itera;o. Ruer Rue se Gaa nada Kinstru;o )a<iaL
9 4ocQ pode usar o comando pass Ruando )ocQ n;o 9 4ocQ pode o o :loco else
do loop para Ruando se Ruer e0ecutar um c5di6o Ruando se sai normalmente do loop Ksem ser por comando :readL
/0emplos,
Python Aula 03
7?
Tnstru3es #hile
/0emplos,
Python Aula 03
80
Klistas* tuplas* strin6 ou RuaisRuer outros o:Zetos cuZa a lin6ua6em considere como um -iterator.L items!
9 4rias maneiras de iterar so:re um conZunto de 9 2am:Pm possui o :loco else Ruando se sai
normalmente do loop Ksimilar ao #hileL
ran6eKL % [etorna uma lista de nAmeros Rue )aria de 0 a ao nAmero passado como par_metro. 0ran6eKL % [etorna uma lista como ran6eKL s5 Rue li:era o item Ruando Gor reRuisitado! Mais eGiciente* porPm apenas com /0emplos, items do mesmo tipo e sem suporte f slicin6* repeti;o e concatena;o.
Python Aula 03
81
Tnstru3es Gor
/0emplos,.py
Python Aula 03
82
Tnstru;o <ip
9<ipKL P :astante poderoso* pode unir seRuQncias 9Permite tam:Pm Gacilitar a constru;o de
dHcionarios! onde retorna uma lista de tuplas Rue se distri:uem em pares os items paralelos e0traHdos dessas seRuQncias.
0 = dictK<ipKdes*)alsLL
/0emplos,.py
Python Aula 03
83
Compreens;o de listas
Python Aula 03
8,
Compreens;o de listas
9 Yuncionalidade muito poderosa da lin6ua6em
Python
9 9
]era uma lista no)a aplicando uma Gun;o para cada elemento da lista ori6inal. Muito usado por pro6ramadores Python! K/conomia de c5di6o!L
81
Compreens;o de listas
9 Permite
tam:Pm o uso de Giltros Kdeteminam se uma determina e0press;o de)e ser e0ecutada so:re um mem:ro da listaL
/0emplos,.py
Python Aula 03
87
Compreens;o de listas
9 4ocQ tam:Pm pode aninhar compreens;o de listas! 9 ae0pression Gor name in ae0pression Gor
name in listbb
/0emplos,.py
Python Aula 03
88
/0ercHcios 01
9 Crie
duas listas com nAmeros de 0 a ?* em:aralhe as listas e sorteie um nAmero de cada um para Gormar uma de<ena. [epita a opera;o 1 )e<es* assim como a Me6a Iena. Caso a de<ena caia como 00 Gaa o sorteio no)amente atP sair outra com:ina;o. Vepois e0i:a as de<enas sorteadas. os nAmeros Hmpares entre 1 e 10 Kusando compreens;o de listas!L
Python Aula 03
8>
/0ercHcios 01
Python Aula 03
8?
/0ercHcios 01
Python Aula 03
>0
^uicdIort
! . /scolher um pi)g inicial 0J ". Colocar todos itens com cha)e menor Rue a de 0 f esRuerda de 0* Gormando uma seRhQncia I1J #. Colocar todos itens com cha)e maior Rue a de 0 f direita de 0* Gormando uma seRhQncia I2J $. Tsto Geito* o mesmo processo P aplicado fs seRhQncias I1 e I2* Rue por sua )e< produ<ir;o no)os se6mentosJ %. M processo de)e ser aplicado sucessi)amente fs seRhQncias enRuanto elas ti)erem tamanho i 1J
Python Aula 03
>1
^uicdIort
9 4ocQ pensaria assim...
def partition(list, l, e, g): if list == []: return (l, e, g) else: head = list[0] if head < e[0]: return partition(list[1:], l + [head], e, g) elif head > e[0]: return partition(list[1:], l, e, g + [head]) else: return partition(list[1:], l, e + [head], g)
Python Aula 03
>2
^uicdIort
9 A6ora Rue )ocQ sa:e compreens;o de listas*
pode Ga<er assim!
def qsort(L): if len(L) <= 1: return L return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + qsort( [ ge for ge in L[1:] if ge >= L[0] ] ) [ L[0] ]
)ocQ
+ \
9/
Python Aula 03
>3
Mrdena;o
9 Mas
um pro6ramador Pythonico* ainda Garia mais eGiciente!
list.sort()
para ordena;o de seRuQncias! Mais eGiciente* hH:rido com comple0idade no pior caso de nlogn-
Python Aula 03
>,
9 @;o
[eGerQncias
Python Aula 03
>7
Python Bsico
Marcel Pinheiro Caraciolo
Python Aula 03
>8