Title | Apostila em PDF Programação em Python orientação a objetos - Curso PY-14 da Caelum. |
---|---|
Author | ISABEL LEAL |
Course | Programação em Python |
Institution | Universidade de Pernambuco |
Pages | 221 |
File Size | 4.2 MB |
File Type | |
Total Downloads | 73 |
Total Views | 149 |
Apostila em PDF Programação em Python orientação a objetos - Curso PY-14 da Caelum....
Caelum
Sumário
Sumário 1ComoaprenderPython
1
1.1Oqueérealmenteimportante?
1
1.2Sobreosexercícios
1
1.3Tirandodúvidaseindoalém
2
2OqueéPython
3
2.1Python
3
2.2BreveHistória
3
2.3Interpretador
4
2.4Qualversãoutilizar?
5
2.5Download
6
2.6Cpython,Jython,IronPython?
6
2.7PEP-Oquesãoepraqueservem
7
2.8Ondeusareobjetivos
7
2.9Primeiroprograma
8
2.10ModoInterativo
8
2.11ModoScript
9
2.12Exercício:Modificandooprograma
11
2.13Oquepodedarerrado?
11
3Variáveisetiposembutidos
14
3.1Tiposembutidos(built-ins)
14
3.2Variáveis
15
3.3Parasabermais:Nomesdevariáveis
16
3.4Instruções
17
3.5OperadoresAritméticos
18
3.6Strings
19
3.7Entradadousuário
20
3.8Constantes
22
3.9Comandoif
25
Sumário
Caelum
3.10Convertendoumastringparainteiro
26
3.11Ocomandoelif
27
3.12Exercícios-Jogodaadivinhação
28
3.13Comandowhile
30
3.14Exercícios-Jogocomwhile
32
3.15Comandofor
34
3.16Exercícios-Utilizandoofornojogo
35
4IntroduçãoaoPycharm
37
4.1IDE
37
4.2Pycharm
38
4.3DownloadeInstalaçãodoPyCharm
39
4.4CriandoumProjeto
40
4.5Executandocódigo
42
4.6PrincipaisAtalhos
43
5Estruturadedados
44
5.1Exercícios:JogodaForca
48
5.2Sequências
51
5.3Conjuntos
56
5.4Dicionários
57
5.5Exercícios:Estruturadedados
59
6Funções
63
6.1Oqueéumafunção?
63
6.2ParâmetrosdeFunção
64
6.3Funçãocomretorno
65
6.4Retornandomúltiplosvalores
66
6.5Exercícios:Funções
67
6.6Númeroarbitráriodeparâmetros(*args)
68
6.7Númeroarbitráriodechaves(**kwargs)
69
6.8Exercício-*argse**kwargs
70
6.9Exercício-Funçãojogar()
71
6.10Móduloseocomandoimport
72
7Arquivos
73
7.1Escritadeumarquivo
73
7.2Fechandoumarquivo
74
7.3Escrevendopalavrasemnovaslinhas
74
7.4Exercícios
75
Caelum
Sumário
7.5Lendoumarquivo
76
7.6Lendolinhaporlinhadoarquivo
77
7.7Gerandoumnúmeroaleatório
78
7.8Exercícios-Leituradearquivos
79
7.9Parasabermais-comandowith
81
7.10Melhorandonossocódigo
81
7.11Exercício-RefatorandoojogodaForca
82
8OrientaçãoaObjetos
89
8.1Funcionalidades
90
8.2Exercício:Criandoumaconta
91
8.3ClasseseObjetos
92
8.4Construtor
94
8.5Métodos
96
8.6Métodoscomretorno
97
8.7Objetossãoacessadosporreferência
98
8.8Métodotransfere
100
8.9Continuandocomatributos
101
8.10Tudoéobjeto
103
8.11Composição
104
8.12Parasabermais:outrosmétodosdeumaclasse
106
8.13Exercício:PrimeiraclassePython
107
9Modificadoresdeacessoemétodosdeclasse
110
9.1Encapsulamento
113
9.2Atributosdeclasse
117
9.3Métodosdeclasse
120
9.4Parasabermais-Slots
121
9.5Exercícios:
123
10PycharmeOrientaçãoaobjetos
126
10.1CriandoumProjeto
126
10.2Criandoumaclasse
128
10.3Executandocódigo
130
10.4Criandométodos
132
10.5Exercício-CriandoprojetobanconoPyCharm
133
11HerançaePolimorfismo
137
11.1Repetindocódigo?
137
11.2Reescritademétodos
140
Sumário
Caelum
11.3Invocandoométodoreescrito
142
11.4Parasabermais-MétodosMágicos
145
11.5Polimorfismo
145
11.6DuckTyping
149
11.7Exercício:HerançaePolimorfismo
150
11.8ClassesAbstratas
153
11.9Exercícios-classesabstratas
156
12HerançaMúltiplaeInterfaces
158
12.1Problemadodiamante
160
12.2Mix-ins
163
12.3Parasabemais-Tkinter
164
12.4Exercícios-Mix-Ins
165
12.5Interfaces
167
12.6(Opcional)Exercícios-InterfaceseclassesAbstratas
170
13ExceçõeseErros
175
13.1Exceçõesetiposdeerros
180
13.2TratandoExceções
182
13.3Levantandoexceções
183
13.4DefinirumaExceção
184
13.5Parasabermais:finally
185
13.6ÁrvoredeExceções
186
13.7Exercícios:Exceções
187
13.8OutrosErros
190
13.9Parasabermais-depuradordoPython
190
14Collections
191
14.1UserList,UserDicteUserString
191
14.2Parasabermais
193
14.3Collectionsabc
195
14.4ConstruindoumContainer
197
14.5Sized
198
14.6Iterable
198
14.7Exercício:CriandonossaSequência
202
15Apêndice-Python2ouPython3?
206
15.1Quaisasdiferenças?
206
15.2Afunçãoprint()
207
15.3Afunçãoinput()
207
Caelum
Sumário
15.4Divisãodecimal
207
15.5Herança
208
16Apêndice-Instalação
209
16.1InstalandooPythonnoWindows
209
16.2InstalandooPythonnoLinux
213
16.3InstalandooPythonnoMacOS
213
16.4OutrasformasdeutilizaroPython
213
Versão:24.8.11
CAPÍTULO1
COMOAPRENDERPYTHON
1.1OQUEÉREALMENTEIMPORTANTE? Muitoslivros,aopassardoscapítulos,mencionamtodososdetalhesdalinguagem,juntamentecomseus princípios básicos. Isso acaba criando muita confusão, em especial porque o estudante não consegue diferenciarexatamenteoqueéessencialaprendernoinício,daquiloquepodeserdeixadoparaestudar maistarde. Se uma classe abstrata deve ou não ter ao menos um método abstrato, se o if somente aceita argumentosbooleanosetodososdetalhessobreclassesinternas,realmentenãodevemserpreocupações para aquele cujo objetivo primário é aprender Python. Esse tipo de informação será adquirida com o tempoenãoénecessárianoinício. Nestecurso,separamosessasinformaçõesemquadrosespeciais,jáquesãoinformaçõesextras.Ou então,apenascitamosemalgumexercícioedeixamosparaoleitorprocurarinformaçõesadicionais,se fordeseuinteresse. Porfim, faltamencionar algosobrea prática,que devesertratada seriamente:todos osexercícios são muitoimportantes e os desafiospodem ser feitosapós o términodo curso. De qualquermaneira, recomendamosaosalunosestudarememcasaepraticarembastantecódigoevariações.
Agoraéamelhorhoradeaprenderalgonovo
Se você está gostando dessa apostila, certamente vai aproveitar os cursos onlinequelançamosnaplataforma Alura.Vocêestudaaqualquermomento coma qualidadeCaelum.Programação,Mobile,Design,Infra,Front-Ende Business,entreoutros!Ex-estudantedaCaelumtem10%dedesconto,sigaolink! ConheçaaAluraCursosOnline.
1.2SOBREOSEXERCÍCIOS 1COMOAPRENDERPYTHON
1
Os exercícios do curso variam, de práticos até pesquisas na internet, ou mesmo consultas sobre assuntosavançadosemdeterminadostópicos,paraincitaracuriosidadedoaprendiznatecnologia. Existe também, em determinados capítulos, uma série de desafios. Eles focam mais no problema computacionalquenalinguagem,porémsãoumaexcelenteformadetreinarasintaxee,principalmente, familiarizar o aluno com as bibliotecas padrões do Python, além de proporcionar um ganho na velocidadededesenvolvimento.
1.3TIRANDODÚVIDASEINDOALÉM Paratirardúvidasdeexercícios,oudePythonemgeral,recomendamosofórumdoGUJRespostas: http://www.guj.com.br Lásuadúvidaserárespondidaprontamente.OGUJfoifundadopordesenvolvedoresdaCaelume hojecontacommaisdeummilhãodemensagens. Oprincipalrecursooficialparaencontrardocumentação,tutoriaiseatémesmolivrossobrePythoné aPythonSoftwareFoundation(PSF): https://www.python.org/ DestacamostambémapáginadacomunidadenoBrasil: https://python.org.br/ Hátambémfórunsoficiaisdacomunidade: https://python-forum.io/(inglês) https://python.org.br/lista-de-discussoes/(português) Foraisso,sinta-seàvontadeparaentraremcontatocomseuinstrutorparatirartodasasdúvidasque surgiremduranteocurso. Seoquevocêestábuscandosãolivrosdeapoio,sugerimosconheceraeditoraCasadoCódigo: https://www.casadocodigo.com.br/ Hátambémcursosonlinequevãoajudá-loairalém,commuitainteraçãocomosinstrutores: https://www.alura.com.br/
2
1.3TIRANDODÚVIDASEINDOALÉM
CAPÍTULO2
OQUEÉPYTHON
2.1PYTHON Python é uma linguagem de programação interpretada, orientada a objetos, de alto nível e com semântica dinâmica. A simplicidade do Python reduz a manutenção deum programa. Python suporta módulosepacotes,queencorajaaprogramaçãomodularizadaereusodecódigos. É uma das linguagens que mais tem crescido devido sua compatibilidade (roda na maioria dos sistemasoperacionais)ecapacidadedeauxiliaroutraslinguagens.Programascomo Dropbox, Reddit e InstagramsãoescritosemPython.Pythontambéméalinguagemmaispopularparaanálisededadose conquistouacomunidadecientífica. Masantesquevocêsepergunteoquecadaumadessascoisasrealmentesignifica,vamoscomeçara desbravar o mundo Python e entender como funciona essa linguagem de programação que tem conquistadocadavezmaisadeptos.
VocêpodetambémfazerocursodatadessaapostilanaCaelum
Querendoaprenderaindamaissobre?Esclarecerdúvidasdosexercícios?Ouvir explicaçõesdetalhadascomuminstrutor? A Caelum oferece o curso data presencial nas cidades de São Paulo, Rio de JaneiroeBrasília,alémdeturmasincompany. ConsulteasvantagensdocursoPythoneOrientaçãoaObjetos
2.2BREVEHISTÓRIA Pythonfoicriadaem1990porGuidoVanRossumnoCentrodeMatemáticaStichting(CWI,veja http://www.cwi.nl) na Holanda como uma sucessora da linguagem ABC. Guido é lembrado como o principalautordePython,masoutrosprogramadoresajudaramcommuitascontribuições. AlinguagemABCfoidesenhadaparausodenãoprogramadores,maslogodeiníciomostroucertas 2OQUEÉPYTHON
3
limitaçõeserestrições.Amaiorreclamaçãodosprimeirosalunos nãoprogramadoresdessalinguagem era a presença de regras arbitrárias que as linguagens de programação haviam estabelecido tradicionalmente-muitacoisadebaixonívelaindaerafeitaenãoagradouopúblico. Guidoentãoselançounatarefadecriarumalinguagemdescriptsimplesquepossuíssealgumasdas melhores propriedades da ABC. Listas Python, dicionários, declarações básicas e uso obrigatório de indentação-conceitosqueaprenderemosnestecurso-diferenciamPythondalinguagemABC.Guido pretendia que Python fosse uma segunda linguagem para programadores C ou C++ e não uma linguagemprincipalparaprogramadores-oquemaistardesetornouparaosusuáriosdePython. Em1995,GuidocontinuouseutrabalhoemPythonnaCorporationforNationalResearchInitiatives (CNRI, veja http://www.cnri.reston.va.us/) in Reston, Virginia onde ele lançou outras versões da linguagem. Emmaiode2000,GuidoeotimeprincipaldePythonsemudaramparaaBeOpen.comparaformar otimeBeOpenPythonLabs.Emoutubrodomesmoano,otimedaPythonLabssemoveuparaaDigital Creations(hoje,ZopeCorporation,vejahttp://www.zope.org/).Em2001,aPythonSoftwareFoundation (PSF,vejahttp://www.python.org/psf/),umaorganizaçãosemfinslucrativos,foiformadaespecialmente paramanteralinguagemehojepossuisuapropriedadeintelectual.AZopeCorporationéummembro patrocinadordaPSF. TodososlançamentosdePythonsãodecódigoaberto(vejahttp://www.opensource.org).
2.3INTERPRETADOR Vocêprovavelmentejáouviuou leuemalgumlugar quePythonéuma linguageminterpretadaou uma linguagem de script. Em certo sentido, também é verdade que Python é tanto uma linguagem interpretadaquantoumalinguagemcompilada.UmcompiladortraduzlinguagemPythonemlinguagem demáquina-códigoPythonétraduzidoemumcódigointermediárioquedeveserexecutadoporuma máquinavirtualconhecidacomoPVM(PythonVirtualMachine).ÉmuitosimilaraoJava-háaindaum jeito de traduzir programas Python em bytecode Java para JVM (Java Virtual Machine) usando a implementaçãoJython. O interpretador faz esta 'tradução' em tempo real para código de máquina, ou seja, em tempo de execução.Já ocompiladortraduz oprograma inteiroemcódigo demáquinade umasóvez eentãoo executa,criandoumarquivoquepodeserrodado(executável).Ocompiladorgeraumrelatóriodeerros (casoselesexistam)eointerpretadorinterrompeatraduçãoquandoencontraumprimeiroerro. Em geral, o tempo de execução de um código compilado é menor que um interpretado já que o compilado é inteiramente traduzido antes de sua execução. Enquanto o interpretado é traduzido instrução por instrução. Python é uma linguagem interpretada mas, assim como Java, passa por um processodecompilação.UmcódigofonteJavaéprimeiramentecompiladoparaum bytecode edepois 4
2.3INTERPRETADOR
interpretadoporumamáquinavirtual. Mas devemos compilarscript Python? Como compilar? Normalmente, não precisamos fazer nada disso porque o Python está fazendo isso para nós, ou seja, ele faz este passo automaticamente. Na verdade,éointerpretadorPyhton,oCPython.AdiferençaéqueemJavaémaisclaraessaseparação,o programadorcompilaedepoisexecutaocódigo. CPythonéumaimplementaçãodalinguagemPython.Parafacilitaroentendimento,imaginequeé um pacote que vem com um compilador e um interpretador Python (no caso, uma Máquina Virtual Python) além de outras ferramentas para usar e manter o Python. CPython é a implementação de referência(aquevocêinstaladositehttp://python.org).
2.4QUALVERSÃOUTILIZAR? Para quem está começando, a primeira dúvida na hora da instalação é qual versão do Python devemosbaixar.Aqui,dependedoquese desejafazer.OPython3 aindapossuialgumasdesvantagens emrelaçãoaversão2,comoosuportedebibliotecas(queémaisreduzido)epelofatodamaioriadas distribuições Linuxe oMacOS ainda utilizarema versão2 como padrãoem seus sistemas.Porém, o Python3émaismaduroemaisrecomendávelparaouso. ExistemcasosqueexigemoPython2aoinvésdoPython3comoimplementaralgoemumambiente que o programador não controla ou quando precisa utilizar algum pacote/módulo específico que não possui versão compatível com Python3. Vale ressaltar para quem deseja utilizar uma implementação alternativa do Python, como o IronPython ou Jython, que o suporte ao Python3 ainda é bastante limitado. Atualmenteexisteaferramenta 2to3quepermitequecódigoPython3sejageradoapartirdecódigo Python2. Há também a ferramenta 3to2, que visa converter o código Python3 de volta ao código Python2. No entanto, é improvável que o código que faz uso intenso de recursos do Python3 seja convertidocomsucesso.
2.4QUALVERSÃOUTILIZAR?
5
PARASABERMAIS:MÓDULOFUTURE O módulo future do Python2 contém bibliotecas que fazem uma ponte entre as versões anterioreseasmaisrecentes.Bastaimportarebibliotecafuture: >>>import__future__
Paraqueváriasferramentasdisponíveisnaversão3funcionemnaversão2,ouseja,omódulo __future__ permite usar funcionalidades do Python3 no Python2. Mas cuidado, algumas funcionalidades são sobrescritas e é importante sempre checar a documentação: https://docs.python.org/3/library/\_\_future\_\_.html
Optamos pelo uso da versão mais recente para este curso, a versão 3.6, e vamos introduzir as diferençasdaversãoPython2emcomentáriosduranteoscapítulosenosapêndicesdaapostila.
Seuslivrosdetecnologiaparecemdoséculopassado?
Conheça a Casa do Código, uma nova editora, com autores de destaque no mercado, foco em ebooks (PDF, epub, mobi), preços imbatíveis e assuntos atuais. Com a curadoria da Caelum e excelentes autores, é uma abordagem diferente paralivrosdetecnologianoBrasil. CasadoCódigo,LivrosdeTecnologia.
2.5DOWNLOAD Como dito acima, o Python já vem instalado nos sistemas Linux e Mac OS, mas será necessário fazer o download da última versão (Python 3.6) para acompanhar a apostila. O Python não vem instaladoporpadrãonoWindowseodownloaddeveráserfeitonositehttps://www.python.org/,além dealgumasconfiguraçõesextras(vejaapêndicedestaapostilasobreinstalação).
2.6CPYTHON,JYTHON,IRONPYTHON? ExistemoutrasimplementaçõesdalinguagemcomooJythoneoIronPython.Adiferenç...