Apostila em PDF Programação em Python orientação a objetos - Curso PY-14 da Caelum. PDF

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 PDF
Total Downloads 73
Total Views 149

Summary

Apostila em PDF Programação em Python orientação a objetos - Curso PY-14 da Caelum....


Description

Caelum

Sumário

Sumário 1ComoaprenderPython

1

1.1Oqueérealmenteimportante?

1

1.2Sobreosexercícios

1

1.3Tirandodúvidaseindoalém

2

2OqueéPython

3

2.1Python

3

2.2BreveHistória

3

2.3Interpretador

4

2.4Qualversãoutilizar?

5

2.5Download

6

2.6Cpython,Jython,IronPython?

6

2.7PEP-Oquesãoepraqueservem

7

2.8Ondeusareobjetivos

7

2.9Primeiroprograma

8

2.10ModoInterativo

8

2.11ModoScript

9

2.12Exercício:Modificandooprograma

11

2.13Oquepodedarerrado?

11

3Variáveisetiposembutidos

14

3.1Tiposembutidos(built-ins)

14

3.2Variáveis

15

3.3Parasabermais:Nomesdevariáveis

16

3.4Instruções

17

3.5OperadoresAritméticos

18

3.6Strings

19

3.7Entradadousuário

20

3.8Constantes

22

3.9Comandoif

25

Sumário

Caelum

3.10Convertendoumastringparainteiro

26

3.11Ocomandoelif

27

3.12Exercícios-Jogodaadivinhação

28

3.13Comandowhile

30

3.14Exercícios-Jogocomwhile

32

3.15Comandofor

34

3.16Exercícios-Utilizandoofornojogo

35

4IntroduçãoaoPycharm

37

4.1IDE

37

4.2Pycharm

38

4.3DownloadeInstalaçãodoPyCharm

39

4.4CriandoumProjeto

40

4.5Executandocódigo

42

4.6PrincipaisAtalhos

43

5Estruturadedados

44

5.1Exercícios:JogodaForca

48

5.2Sequências

51

5.3Conjuntos

56

5.4Dicionários

57

5.5Exercícios:Estruturadedados

59

6Funções

63

6.1Oqueéumafunção?

63

6.2ParâmetrosdeFunção

64

6.3Funçãocomretorno

65

6.4Retornandomúltiplosvalores

66

6.5Exercícios:Funções

67

6.6Númeroarbitráriodeparâmetros(*args)

68

6.7Númeroarbitráriodechaves(**kwargs)

69

6.8Exercício-*argse**kwargs

70

6.9Exercício-Funçãojogar()

71

6.10Móduloseocomandoimport

72

7Arquivos

73

7.1Escritadeumarquivo

73

7.2Fechandoumarquivo

74

7.3Escrevendopalavrasemnovaslinhas

74

7.4Exercícios

75

Caelum

Sumário

7.5Lendoumarquivo

76

7.6Lendolinhaporlinhadoarquivo

77

7.7Gerandoumnúmeroaleatório

78

7.8Exercícios-Leituradearquivos

79

7.9Parasabermais-comandowith

81

7.10Melhorandonossocódigo

81

7.11Exercício-RefatorandoojogodaForca

82

8OrientaçãoaObjetos

89

8.1Funcionalidades

90

8.2Exercício:Criandoumaconta

91

8.3ClasseseObjetos

92

8.4Construtor

94

8.5Métodos

96

8.6Métodoscomretorno

97

8.7Objetossãoacessadosporreferência

98

8.8Métodotransfere

100

8.9Continuandocomatributos

101

8.10Tudoéobjeto

103

8.11Composição

104

8.12Parasabermais:outrosmétodosdeumaclasse

106

8.13Exercício:PrimeiraclassePython

107

9Modificadoresdeacessoemétodosdeclasse

110

9.1Encapsulamento

113

9.2Atributosdeclasse

117

9.3Métodosdeclasse

120

9.4Parasabermais-Slots

121

9.5Exercícios:

123

10PycharmeOrientaçãoaobjetos

126

10.1CriandoumProjeto

126

10.2Criandoumaclasse

128

10.3Executandocódigo

130

10.4Criandométodos

132

10.5Exercício-CriandoprojetobanconoPyCharm

133

11HerançaePolimorfismo

137

11.1Repetindocódigo?

137

11.2Reescritademétodos

140

Sumário

Caelum

11.3Invocandoométodoreescrito

142

11.4Parasabermais-MétodosMágicos

145

11.5Polimorfismo

145

11.6DuckTyping

149

11.7Exercício:HerançaePolimorfismo

150

11.8ClassesAbstratas

153

11.9Exercícios-classesabstratas

156

12HerançaMúltiplaeInterfaces

158

12.1Problemadodiamante

160

12.2Mix-ins

163

12.3Parasabemais-Tkinter

164

12.4Exercícios-Mix-Ins

165

12.5Interfaces

167

12.6(Opcional)Exercícios-InterfaceseclassesAbstratas

170

13ExceçõeseErros

175

13.1Exceçõesetiposdeerros

180

13.2TratandoExceções

182

13.3Levantandoexceções

183

13.4DefinirumaExceção

184

13.5Parasabermais:finally

185

13.6ÁrvoredeExceções

186

13.7Exercícios:Exceções

187

13.8OutrosErros

190

13.9Parasabermais-depuradordoPython

190

14Collections

191

14.1UserList,UserDicteUserString

191

14.2Parasabermais

193

14.3Collectionsabc

195

14.4ConstruindoumContainer

197

14.5Sized

198

14.6Iterable

198

14.7Exercício:CriandonossaSequência

202

15Apêndice-Python2ouPython3?

206

15.1Quaisasdiferenças?

206

15.2Afunçãoprint()

207

15.3Afunçãoinput()

207

Caelum

Sumário

15.4Divisãodecimal

207

15.5Herança

208

16Apêndice-Instalação

209

16.1InstalandooPythonnoWindows

209

16.2InstalandooPythonnoLinux

213

16.3InstalandooPythonnoMacOS

213

16.4OutrasformasdeutilizaroPython

213

Versão:24.8.11

CAPÍTULO1

COMOAPRENDERPYTHON

1.1OQUEÉREALMENTEIMPORTANTE? Muitoslivros,aopassardoscapítulos,mencionamtodososdetalhesdalinguagem,juntamentecomseus princípios básicos. Isso acaba criando muita confusão, em especial porque o estudante não consegue diferenciarexatamenteoqueéessencialaprendernoinício,daquiloquepodeserdeixadoparaestudar maistarde. Se uma classe abstrata deve ou não ter ao menos um método abstrato, se o if somente aceita argumentosbooleanosetodososdetalhessobreclassesinternas,realmentenãodevemserpreocupações para aquele cujo objetivo primário é aprender Python. Esse tipo de informação será adquirida com o tempoenãoénecessárianoinício. Nestecurso,separamosessasinformaçõesemquadrosespeciais,jáquesãoinformaçõesextras.Ou então,apenascitamosemalgumexercícioedeixamosparaoleitorprocurarinformaçõesadicionais,se fordeseuinteresse. Porfim, faltamencionar algosobrea prática,que devesertratada seriamente:todos osexercícios são muitoimportantes e os desafiospodem ser feitosapós o términodo curso. De qualquermaneira, recomendamosaosalunosestudarememcasaepraticarembastantecódigoevariações.

Agoraéamelhorhoradeaprenderalgonovo

Se você está gostando dessa apostila, certamente vai aproveitar os cursos onlinequelançamosnaplataforma Alura.Vocêestudaaqualquermomento coma qualidadeCaelum.Programação,Mobile,Design,Infra,Front-Ende Business,entreoutros!Ex-estudantedaCaelumtem10%dedesconto,sigaolink! ConheçaaAluraCursosOnline.

1.2SOBREOSEXERCÍCIOS 1COMOAPRENDERPYTHON

1

Os exercícios do curso variam, de práticos até pesquisas na internet, ou mesmo consultas sobre assuntosavançadosemdeterminadostópicos,paraincitaracuriosidadedoaprendiznatecnologia. Existe também, em determinados capítulos, uma série de desafios. Eles focam mais no problema computacionalquenalinguagem,porémsãoumaexcelenteformadetreinarasintaxee,principalmente, familiarizar o aluno com as bibliotecas padrões do Python, além de proporcionar um ganho na velocidadededesenvolvimento.

1.3TIRANDODÚVIDASEINDOALÉM Paratirardúvidasdeexercícios,oudePythonemgeral,recomendamosofórumdoGUJRespostas: http://www.guj.com.br Lásuadúvidaserárespondidaprontamente.OGUJfoifundadopordesenvolvedoresdaCaelume hojecontacommaisdeummilhãodemensagens. Oprincipalrecursooficialparaencontrardocumentação,tutoriaiseatémesmolivrossobrePythoné aPythonSoftwareFoundation(PSF): https://www.python.org/ DestacamostambémapáginadacomunidadenoBrasil: https://python.org.br/ Hátambémfórunsoficiaisdacomunidade: https://python-forum.io/(inglês) https://python.org.br/lista-de-discussoes/(português) Foraisso,sinta-seàvontadeparaentraremcontatocomseuinstrutorparatirartodasasdúvidasque surgiremduranteocurso. Seoquevocêestábuscandosãolivrosdeapoio,sugerimosconheceraeditoraCasadoCódigo: https://www.casadocodigo.com.br/ Hátambémcursosonlinequevãoajudá-loairalém,commuitainteraçãocomosinstrutores: https://www.alura.com.br/

2

1.3TIRANDODÚVIDASEINDOALÉM

CAPÍTULO2

OQUEÉPYTHON

2.1PYTHON 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 deum programa. Python suporta módulosepacotes,queencorajaaprogramaçãomodularizadaereusodecódigos. É uma das linguagens que mais tem crescido devido sua compatibilidade (roda na maioria dos sistemasoperacionais)ecapacidadedeauxiliaroutraslinguagens.Programascomo Dropbox, Reddit e InstagramsãoescritosemPython.Pythontambéméalinguagemmaispopularparaanálisededadose conquistouacomunidadecientífica. Masantesquevocêsepergunteoquecadaumadessascoisasrealmentesignifica,vamoscomeçara desbravar o mundo Python e entender como funciona essa linguagem de programação que tem conquistadocadavezmaisadeptos.

VocêpodetambémfazerocursodatadessaapostilanaCaelum

Querendoaprenderaindamaissobre?Esclarecerdúvidasdosexercícios?Ouvir explicaçõesdetalhadascomuminstrutor? A Caelum oferece o curso data presencial nas cidades de São Paulo, Rio de JaneiroeBrasília,alémdeturmasincompany. ConsulteasvantagensdocursoPythoneOrientaçãoaObjetos

2.2BREVEHISTÓRIA Pythonfoicriadaem1990porGuidoVanRossumnoCentrodeMatemáticaStichting(CWI,veja http://www.cwi.nl) na Holanda como uma sucessora da linguagem ABC. Guido é lembrado como o principalautordePython,masoutrosprogramadoresajudaramcommuitascontribuições. AlinguagemABCfoidesenhadaparausodenãoprogramadores,maslogodeiníciomostroucertas 2OQUEÉPYTHON

3

limitaçõeserestrições.Amaiorreclamaçãodosprimeirosalunos nãoprogramadoresdessalinguagem era a presença de regras arbitrárias que as linguagens de programação haviam estabelecido tradicionalmente-muitacoisadebaixonívelaindaerafeitaenãoagradouopúblico. Guidoentãoselançounatarefadecriarumalinguagemdescriptsimplesquepossuíssealgumasdas melhores propriedades da ABC. Listas Python, dicionários, declarações básicas e uso obrigatório de indentação-conceitosqueaprenderemosnestecurso-diferenciamPythondalinguagemABC.Guido pretendia que Python fosse uma segunda linguagem para programadores C ou C++ e não uma linguagemprincipalparaprogramadores-oquemaistardesetornouparaosusuáriosdePython. Em1995,GuidocontinuouseutrabalhoemPythonnaCorporationforNationalResearchInitiatives (CNRI, veja http://www.cnri.reston.va.us/) in Reston, Virginia onde ele lançou outras versões da linguagem. Emmaiode2000,GuidoeotimeprincipaldePythonsemudaramparaaBeOpen.comparaformar otimeBeOpenPythonLabs.Emoutubrodomesmoano,otimedaPythonLabssemoveuparaaDigital Creations(hoje,ZopeCorporation,vejahttp://www.zope.org/).Em2001,aPythonSoftwareFoundation (PSF,vejahttp://www.python.org/psf/),umaorganizaçãosemfinslucrativos,foiformadaespecialmente paramanteralinguagemehojepossuisuapropriedadeintelectual.AZopeCorporationéummembro patrocinadordaPSF. TodososlançamentosdePythonsãodecódigoaberto(vejahttp://www.opensource.org).

2.3INTERPRETADOR Vocêprovavelmentejáouviuou leuemalgumlugar quePythonéuma linguageminterpretadaou uma linguagem de script. Em certo sentido, também é verdade que Python é tanto uma linguagem interpretadaquantoumalinguagemcompilada.UmcompiladortraduzlinguagemPythonemlinguagem demáquina-códigoPythonétraduzidoemumcódigointermediárioquedeveserexecutadoporuma máquinavirtualconhecidacomoPVM(PythonVirtualMachine).ÉmuitosimilaraoJava-háaindaum jeito de traduzir programas Python em bytecode Java para JVM (Java Virtual Machine) usando a implementaçãoJython. O interpretador faz esta 'tradução' em tempo real para código de máquina, ou seja, em tempo de execução.Já ocompiladortraduz oprograma inteiroemcódigo demáquinade umasóvez eentãoo executa,criandoumarquivoquepodeserrodado(executável).Ocompiladorgeraumrelatóriodeerros (casoselesexistam)eointerpretadorinterrompeatraduçãoquandoencontraumprimeiroerro. 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 processodecompilação.UmcódigofonteJavaéprimeiramentecompiladoparaum bytecode edepois 4

2.3INTERPRETADOR

interpretadoporumamáquinavirtual. Mas devemos compilarscript 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,éointerpretadorPyhton,oCPython.AdiferençaéqueemJavaémaisclaraessaseparação,o programadorcompilaedepoisexecutaocódigo. CPythonéumaimplementaçãodalinguagemPython.Parafacilitaroentendimento,imaginequeé 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(aquevocêinstaladositehttp://python.org).

2.4QUALVERSÃOUTILIZAR? Para quem está começando, a primeira dúvida na hora da instalação é qual versão do Python devemosbaixar.Aqui,dependedoquese desejafazer.OPython3 aindapossuialgumasdesvantagens emrelaçãoaversão2,comoosuportedebibliotecas(queémaisreduzido)epelofatodamaioriadas distribuições Linuxe oMacOS ainda utilizarema versão2 como padrãoem seus sistemas.Porém, o Python3émaismaduroemaisrecomendávelparaouso. ExistemcasosqueexigemoPython2aoinvésdoPython3comoimplementaralgoemumambiente 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. Atualmenteexisteaferramenta 2to3quepermitequecódigoPython3sejageradoapartirdecó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 convertidocomsucesso.

2.4QUALVERSÃOUTILIZAR?

5

PARASABERMAIS:MÓDULOFUTURE O módulo future do Python2 contém bibliotecas que fazem uma ponte entre as versões anterioreseasmaisrecentes.Bastaimportarebibliotecafuture: >>>import__future__

Paraqueváriasferramentasdisponíveisnaversão3funcionemnaversão2,ouseja,omó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çasdaversãoPython2emcomentáriosduranteoscapítulosenosapêndicesdaapostila.

Seuslivrosdetecnologiaparecemdoséculopassado?

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 paralivrosdetecnologianoBrasil. CasadoCódigo,LivrosdeTecnologia.

2.5DOWNLOAD 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 instaladoporpadrãonoWindowseodownloaddeveráserfeitonositehttps://www.python.org/,além dealgumasconfiguraçõesextras(vejaapêndicedestaapostilasobreinstalação).

2.6CPYTHON,JYTHON,IRONPYTHON? ExistemoutrasimplementaçõesdalinguagemcomooJythoneoIronPython.Adiferenç...


Similar Free PDFs