Sunteți pe pagina 1din 9

http://www.async.com.br/projects/python/pnp/python.

html

Python uma linguagem de programao1. Em outras palavras, e sendo simples ao extremo,


usamos Python para escrever software. Esta linguagem tem alguns pontos que a tornam
especial:

uma linguagem interpretada.


No h pr-declarao de variveis, e os tipos das variveis so determinados dinamicamente.
O controle de bloco feito apenas por indentao; no h delimitadores do tipo BEGIN e END
ou { e }.
Oferece tipos de alto nvel: strings, listas, tuplas, dicionrios, arquivos, classes.
orientada a objetos; alis, em Python, tudo um objeto.

Linguagens de programao so freqentemente classificadas como compiladas ou


interpretadas. Nas compiladas, o texto (ou cdigo-fonte) do programa lido por um programa
chamado compilador, que cria um arquivo binrio, executvel diretamente pelo hardware da
plataforma-alvo. Exemplos deste tipo de linguagem so C ou Fortran. A compilao e execuo
de um programa simples em C segue algo como:

% cc hello.c -o hello
% ./hello
Hello World

onde cc o programa compilador, hello.c o arquivo de cdigo-fonte, e o arquivo criado, hello,


um executvel binrio.

Em contrapartida, programas escritos em linguagens interpretadas no so convertidos em um


arquivo executvel. Eles so executados utilizando um outro programa, o interpretador, que l
o cdigo-fonte e o interpreta diretamente, durante a sua execuo. Exemplos de linguagem
interpretada incluem o BASIC tradicional, Perl e Python. Para executar um programa Python
contido no arquivo hello.py, por exemplo, utiliza-se algo como:

% python hello.py
Hello World

Note que o programa que executamos diretamente o interpretador python, fornecendo como
parmetro o arquivo com cdigo-fonte hello.py. No h o passo de gerao de executvel; o
interpretador transforma o programa especificado medida em que executado.

1.1.2 Tipagem dinmica

Um dos conceitos bsicos em programao a varivel, que uma associao entre um nome
e um valor. Ou seja, abaixo, neste fragmento na linguagem C:

int a;
a = 1;

temos uma varivel com o nome a sendo declarada, com tipo inteiro e contendo o valor 1. Em
Python, no precisamos declarar variveis, nem seus tipos:

>>> a = 1

seria a instruo equivalente; define uma varivel com o valor 1, que um valor inteiro.

Python possui o que conhecido como tipagem dinmica: o tipo ao qual a varivel est
associada pode variar durante a execuo do programa. No quer dizer que no exista tipo
especfico definido (a chamada tipagem fraca): embora em Python no o declaremos
explicitamente, as variveis sempre assumem um nico tipo em um determinado momento.

>>> a = 1
>>> type(a)

# a funo type() retorna o tipo

<type 'int'>

# associado a uma varivel

>>> a = "1"
>>> type(a)
<type 'str'>
>>> a = 1.0
>>> type(a)
<type 'float'>

Tipagem dinmica, alm de reduzir a quantidade de planejamento prvio (e digitao!) para


escrever um programa, um mecanismo importante para garantir a simplicidade e flexibilidade
das funes Python. Como os tipos dos argumentos no so explicitamente declarados, no h
restrio sobre o que pode ser fornecido como parmetro. No exemplo acima, so fornecidos
argumentos de tipos diferentes mesma funo type, que retorna o tipo deste argumento.

Na maior parte das linguagens, h instrues ou smbolos especficos que delimitam blocos de
cdigo - os blocos que compem o contedo de um lao ou expresso condicional, por
exemplo. Em C:

if (a < 0) {
/* bloco de cdigo */
}

ou em Fortran:

if (a .lt. 0) then
C

bloco de cdigo
endif

os blocos so delimitados explicitamente -- em C por chaves, e em Fortran pelo par then e


endif. Em Python, blocos de cdigo so demarcados apenas por espaos formando uma
indentao visual:

print "O valor de a "


if a == 0:
print "zero"
else:
print a

Esta propriedade faz com que o cdigo seja muito claro e legvel -- afinal, garante que a
indentao esteja sempre correta -- porm requer costume e um controle mais formal2.

Alm dos tipos bsicos (inteiros, nmeros de ponto flutuante, booleanos), alguns tipos prdeterminados em Python merecem ateno especial:

Listas:como um vetor em outras linguagens, a lista um conjunto (ou seqncia) de valores


acessados (indexados) por um ndice numrico, inteiro, comeando em zero. A lista em Python
pode armazenar valores de qualquer tipo.

>>> a = ["A", "B", "C", 0, 1, 2]


>>> print a[0]
A

>>> print a[5]


2

Tuplas:tuplas so tambm seqncias de elementos arbitrrios; se comportam como listas com


a exceo de que so imutveis: uma vez criadas no podem ser alteradas.

Strings:a cadeia de caracteres, uma forma de dado muito comum; a string Python uma
seqncia imutvel, alocada dinamicamente, sem restrio de tamanho.

Dicionrios:dicionrios so seqncias que podem utilizar ndices de tipos variados, bastando


que estes ndices sejam imutveis (nmeros, tuplas e strings, por exemplo). Dicionrios so
conhecidos em outras linguagens como arrays associativos ou hashes.

>>> autor = {"nome" : "Christian", "idade": 28}


>>> print autor["nome"]
Christian
>>> print autor["idade"]
28

Arquivo:Python possui um tipo pr-definido para manipular arquivos; este tipo permite que seu
contedo seja facilmente lido, alterado e escrito.

Classes e Instncias:classes so estruturas especiais que servem para apoiar programao


orientada a objetos; determinam um tipo customizado com dados e operaes particulares.
Instncias so as expresses concretas destas classes. Orientao a objetos em Python
descrita em maiores detalhes na seo 4.

Orientao a objetos (OO) uma forma conceitual de estruturar um programa: ao invs de


definirmos variveis e criarmos funes que as manipulam, definimos objetos que possuem
dados prprios e aes associadas. O programa orientado a objetos resultado da
`colaborao' entre estes objetos.

Em Python, todos os dados podem ser considerados objetos: qualquer varivel -- mesmo as dos
tipos bsicos e pr-definidos -- possui um valor e um conjunto de operaes que pode ser
realizado sobre este. Por exemplo, toda string em Python possui uma operao (ou mtodo)
chamada upper, que gera uma string nova com seu contedo em maisculas:

>>> a = "Hello"
>>> a.upper()
'HELLO'

Como a maior parte das linguagens que so consideradas `orientadas a objeto', Python oferece
um tipo especial para definir objetos customizados: a classe. Python suporta tambm
funcionalidades comuns na orientao a objetos: herana, herana mltipla, polimorfismo,
reflexo e introspeco.

.2 Por que Python?

Dado que existe uma grande diversidade de linguagens diferentes, por que aprender Python
interessante ou mesmo importante? Na minha opinio, a linguagem combina um conjunto
nico de vantagens:

Os conceitos fundamentais da linguagem so simples de entender.


A sintaxe da linguagem clara e fcil de aprender; o cdigo produzido normalmente curto e
legvel.
Os tipos pr-definidos includos em Python so poderosos, e ainda assim simples de usar.
A linguagem possui um interpretador de comandos interativo que permite aprender e testar
rapidamente trechos de cdigo.
Python expressivo, com abstraes de alto nvel. Na grande maioria dos casos, um programa
em Python ser muito mais curto que seu correspondente escrito em outra linguagem. Isto
tambm faz com o ciclo de desenvolvimento seja rpido e apresente potencial de defeitos
reduzido - menos cdigo, menos oportunidade para errar.
Existe suporte para uma diversidade grande de bibliotecas externas. Ou seja, pode-se fazer em
Python qualquer tipo de programa, mesmo que utilize grficos, funes matemticas
complexas, ou uma determinada base de dados SQL.
possvel escrever extenses a Python em C e C++ quando necessrio desempenho mximo,
ou quando for desejvel fazer interface com alguma ferramenta que possua biblioteca apenas
nestas linguagens.
Python permite que o programa execute inalterado em mltiplas plataformas; em outras
palavras, a sua aplicao feita para Linux normalmente funcionar sem problemas em Windows
e em outros sistemas onde existir um interpretador Python.
Python pouco punitivo: em geral, `tudo pode' e h poucas restries arbitrrias. Esta
propriedade acaba por tornar prazeroso o aprendizado e uso da linguagem.
Python livre: alm do interpretador ser distribudo como software livre (e portanto,
gratuitamente), pode ser usado para criar qualquer tipo de software -- proprietrio ou livre. O
projeto e implementao da linguagem discutido aberta e diariamente em uma lista de
correio eletrnico, e qualquer um bem-vindo para propor alteraes por meio de um
processo simples e pouco burocrtico.

Ao longo das prximas sees sero expostos aos poucos os pontos concretos que demonstram
estas vantagens.

S-ar putea să vă placă și