Curso Python

Curso Python

(Parte 1 de 5)

Gustavo Noronha Silva

Curso de Python F orum Mineiro de Software Livre

Montes Claros setembro/2003

Nota de Copyright

Agradecimentos

1 Introdu c~ao p.6

2.1 Linguagem Interpretada vs Compiladap.7
2.2 Tipagem Fortep. 7
2.3 Orientac~ao a Objetop. 8

2 Revis~ao de Conceitos p.7

3.1 O Interpretador Pythonp. 9
3.2 Modulos, as bibliotecas do Pythonp. 10
3.3 Se virando no Pythonp. 1
3.3.1 A func~ao dir()p. 1
3.3.2 PyDocp. 12
3.3.3 Nosso amigo help()p. 12
3.4 Variaveis e mais sintaxe basicap. 15
3.5 Condic~oes e Estruturas de Repetic~aop. 16
3.6 Usando um editorp. 19

3 M~ao na massa! p.9

4.3 Listas e Tuplasp. 23
4.4 Dicionariosp. 25
4.5 Convers~ao / Castingp. 25
5.1 Sintaxe Basicap. 27
5.2 Passagem Avancada de Argumentosp.27
5.3 Retorno da func~aop. 28
5.4 Documentandop. 28
6.1 Criando estruturas em Pythonp. 30
6.2 Metodosp. 31
6.3 Herancap. 31

6 Classes p.30 7 Arquivos / IO p.3

Nota de Copyright

Esse curso est a licenciado sob a GNU FDL (Free Documentation License), fornecida pela Free Software Foundation.

Agradecimentos

Muito obrigado a Allan Douglas <allan douglas@gmx.net> pela grande ajuda na escrita desse curso.

A programa c~ao nos dias atuais est a centrada em uma briga de gigantes que pretendem impor seus padr~oes para substituir a linguagem conhecida como \padr~ao da ind ustria", C++.

Correndo por fora est~ao linguagens relativamente pouco conhecidas e aclamadas, talvez por serem fruto do esfor co de grandes mestres da computa c~ao (como as primeiras linguagens) e n~ao por grandes empresas.

Python e uma dessas linguagens e traz uma simplicidade indiscut vel, ao mesmo tempo em que, apesar de ser uma linguagem interpretada, e extremamente veloz.

Aqueles que j a programam h a tempos com linguagens cheias de controle sint atico v~ao certamente se sentir perdidos num primeiro contato, mas perceber~ao que Python se adapta muito bem ao modelo mental do programador e vai se sentir falando com a m aquina em pouco tempo.

7 2 Revis~ao de Conceitos

Python e uma linguagem simples, mas e constru da em uma base te orica e t ecnica muito complexa. Ela eleva a orienta c~ao a objetos, em alguns casos, ao extremo.

Vamos dar uma revisada em alguns conceitos importantes que nos subsidiar~ao no aprendizado de Python.

2.1 Linguagem Interpretada vs Compilada

Python, como j a foi dito, e uma linguagem interpretada, como Perl, Shell Script,

Batch Scripts, entre outras. Isso signi ca que n~ao e necess aria a compila c~ao do c odigo para que ele seja executado e isso tr as v arias vantagens e desvantagens embutidas.

Linguagens compiladas normalmente s~ao mais r apidas, porque o c odigo j a est a num formato que o computador entende. Linguagens interpretadas costumam funcionar de uma ou outra maneira:

• Compila c~ao Just-In-Time Interpreta c~ao pura ou em Bytecode

O Python pode funcionar das duas formas. Vamos usar mais o segundo modelo durante o curso, mas n~ao se esque ca de conferir o compilador JIT do Python.

2.2 Tipagem Forte

Python e uma linguagem de tipagem forte. Isso signi ca que se uma vari avel adquire um determinado tipo n~ao deixa mais de ser daquele tipo a menos que seja recriada. Isso o torna diferente de um script Shell, por exemplo, em que nunca se sabe o tipo exato de uma vari avel.

Apesar da sua tipagem ser forte, a declara c~ao de vari aveis n~ao e necess aria e a simples atribui c~ao de um valor serve para criar ou recriar uma vari avel. Leve isso em conta quando programar. Tome muito cuidado com os nomes das vari aveis.

2.3 Orienta c~ao a Objeto

Dou uma enfase especial a esse conceito, pois j a vi muita gente dizer que uma linguagem e orientada a objetos \porque voce pode criar interfaces gr a cas"1. N~ao tem nada a ver.

Uma linguagem orientada a objetos coloca como centro nervoso do programa um ou mais objetos de determinada classe, ao contr ario das linguagens estruturadas, em que o processo, ou as estruturas de dados s~ao o centro e voce chama fun c~oes que atuam sobre esses elementos.

Isso n~ao signi ca, e claro, que n~ao se pode criar aplica c~oes com interfaces gr a cas com Python ou com qualquer outra linguagem orientada ou n~ao a objetos.

Python e uma linguagem orientada a objetos, e nela quase tudo e um objeto. At e mesmo as vari aveis que representam os tipos mais b asicos, como inteiro e caractere s~ao objetos, tem seus m etodos e propriedades.

1Outro conceito extremamente errado e muito difundido e que C e para aplica c~oes comuns e C++ para interfaces gr a cas. Talvez seja exatamente uma deriva c~ao do conceito errado que eu cito aqui, j a que C++ e orientada a objetos e C n~ao.

9 3 M~ao na massa!

Vamos ent~ao come car! A primeira coisa a fazer e nos familiarizarmos com o interpretador Python, que pode nos ser muito util a qualquer momento. Veremos como descobrir informa c~oes sobre um determinado elemento e como usar o interpretador para testarmos pequenos trechos de c odigo.

3.1 O Interpretador Python

O interpretador e o programa que executa c odigo Python. Para execut a-lo basta abrir um terminal e digitar ‘python’. Voce ver a algo desse tipo:

O que vemos nas tres primeiras linhas e a apresenta c~ao do interpretador. Ele est a dizendo \oi!" =D. Basicamente ele informa de que vers~ao do Python se trata, com que compilador foi compilado e sugere algumas chamadas b asicas caso tenha problemas ou d uvidas.

O >>> e o prompt do interpretador. Podemos sair programando em Python agora mesmo. O interpretador vai executar o c odigo que escrevermos na hora, e poderemos ver o resultado.

J a que o interpretador nos disse \oi" n~ao sejamos mal-educados, vamos responder a ele, digitando o seguinte:

Otimo! Podemos ver que ‘print’ serve para mostrar mensagens na tela. Voce pode usar aspas simples ou duplas para delimitar a mensagem. A fun c~ao ‘print’ e uma excess~ao entre as fun c~oes do Python, j a que ela n~ao precisa de parenteses. Note, tamb em, que n~ao h a um caractere delimitador da chamada (como \;" em C e Pascal).

3.2 M odulos, as bibliotecas do Python

No Python chamamos as cole c~oes de c odigo que fornecem extens~oes para a linguagem de m odulos. Pode-se fazer uma associa c~ao as bibliotecas usadas em C (e, na verdade, algumas vezes os m odulos s~ao bibliotecas). Para us a-los, temos que import a-los. Mas cuidado com a balan ca comercial, hein! (duh)

O Python procura sempre proteger o chamado espa co de nomes e, portanto, sempre que voce importar um m odulo ter a de usar seu nome para chamar fun c~oes e acessar propriedades que est~ao dentro dele. Isso pode ser familiar para quem lida com Java ou C#. Vejamos as tres formas de importar m odulos:

>>> import os >>> os.getcwd () ’/home/kov’ >>> from os import getcwd

>>> getcwd () ’/home/kov’ >>> from os import *

>>> getcwd () ’/home/kov’

A primeira, \import os", importa o m odulo como um todo, mas exige que sempre que voce quiser acessar algo que pertence ao m odulo voce tenha que adicionar \os." antes da fun c~ao ou propriedade. O segundo, \from os import getcwd", importa somente aquela fun c~ao determinada; isso pode usar menos mem oria e n~ao e mais necess ario usar \os." antes de chamar a fun c~ao; a terceira forma e como a segunda, mas ao inv es de importar uma s o fun c~ao, importa todas.

(Parte 1 de 5)

Comentários