Procurar
Palavras-chaves
Últimos assuntos
Tópicos mais visitados
Tópicos semelhantes
A Historia do Python
Página 1 de 1
A Historia do Python
Este tutorial foi criado com intuito de ensinar de maneira simples e objetiva esta nova linguagem de programação para Internet. Vale salientar que este tutorial não é um tutorial aprofundado, e nem um manual de referência. Caso você deseja se aprofundar, existem manuais disponíveis no site http://www.python.org/docs/.
2. O que é Python?
Python é uma linguagem interpretada, bastante portável, orientada a objetos (incluindo herança múltipla). Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e exceções. Algo só visto em linguagens modernas como Java e as versões mais recentes de C++. Python possui Uma forma eficiente de acesso e reutilização de código com o uso de módulos, coleta de lixo automática, recursos avançados de manipulação de textos, listas e outras estruturas de dados (como dicionários, mais poderoso que o hash de Perl, pois os valores assumidos podem conter qualquer outro tipo de objeto como até mesmo outros dicionários). Python possui ainda uma sintaxe simples, quase como um pseudo-código, característica marcante da sintaxe, próxima a linguagem matemática, do MATLAB.
Para baixar o interpretador do python para windows, acesse o site http://www.python.org.
2.1 História
Seu desenvolvimento teve início em 1990, pelo holandês Guido van Rossum, na CWI em Amsterdã e continuou na CNRI (fundação que sustenta a linguagem hoje) em Reston. O conjunto de entidades e pessoas ligadas ao Python, sobretudo via Internet, formam a Python Software Activity (PSA).
2.2 Características
Em Python, diferentemente de C++ ou Java, as funções são tratadas como objetos, característica de linguagens de programação funcional como Lisp, muito utilizada em aplicações de inteligência artificial. Outro ponto importante, oferecendo grande flexibilidade, é que, em Python, cada argumento de uma função pode assumir um valor default.
2.3 Módulos do Python
Os módulos, em Python, são coleções de funções. Sua versão 1.5.2, de 1999, já incluía (a versão atual é a 2.0) mais de 140 módulos, sem contar a extensão gráfica Tk que é importante na construção das ferramentas de utilização da linguagem. E desconsiderando também outros módulos que podem ser encontrados a partir do site oficial (www.python.org), quase todos livres e gratuitos. Como ilustração, podemos citar alguns módulos, como o cgi (para programação de páginas dinâmicas), ftplib (para montagem de scripts para interação com servidores FTP), gzip (para leitura e escrita de arquivos comprimidos), math (para utilização de funções matemáticas), re (para busca de texto com expressões regulares, característica da linguagem Perl), string (para operações com strings), time (para obtenção de hora atual e conversão de formatos de data), xmllib (para interpretação de arquivos em formato XML). Outro módulos especial é o NumPy, utilizado na computação científica.
2.4 O que é NumPy
O NumPy é um conjunto de extensões para Python que oferecem várias funcionalidades para manipulação de conjuntos de objetos chamados arrays. Estes, por sua vez, podem ter qualquer número de dimensões. A vantagem destas extensões é que podemos processar grandes conjuntos de forma tão rápida quanto os resultados das linguagens não interpretadas de mais baixo nível. A manipulação de grandes conjuntos numéricos, que é o caso do processamento de imagens, se fossem usadas as estruturas de dados padrão do Python, poderia ser muito lenta e ocupar muito espaço. Entretanto, mesmo assim, comparando a execução de comandos de iteração (como o comando "for''), críticos em linguagens interpretadas, o Python se revela eficiente, sendo mais rápido, por exemplo, que o MATLAB. Tanto Python como MATLAB podem facilmente agregar funções (boa extensividade). O fato de o Python ter código aberto e ser gratuitamente distribuído, inclusive com o Numerical Python, foi um elemento decisivo na escolha desta linguagem, já que a intenção, entre outras, é beneficiar qualquer pessoa interessada em ferramentas de processamento de imagens.
2.5 Tipos de variáveis dinâmicos
Um dos conceitos básicos de programação é a variável, que é um associação entre um nome e um valor. Ou seja, temos em:
>>> a = 1
A variável a recebendo o valor de 1. Em Python, não precisamos declarar variáveis; para criar uma, basta atribuir um valor a ela. No exemplo acima, criamos uma variável chamada a.
Quando dizemos que a linguagem possui tipos de variáveis dinâmicos, o tipo de valor ao qual um nome está associado pode variar durante a execução de um programa. Não quer dizer que não exista tipo -- embora em Python não o declaremos, as variáveis assumem um tipo -- apenas que este tipo pode variar durante o curso da execução.
Esta propriedade por si só não é tão importante, embora realmente torne a escrita dos programas mais ágil: não precisamos decidir de imediato qual informação será armazenada, e podemos converter uma informação entre diversos tipos sem definir uma nova variável. Associada à orientação a objetos, no entanto, possui reflexos interessantes, que discutiremos mais adiante.
2.6 Controle de bloco por indentação
Na maior parte das linguagens, há instruções ou símbolos específicos que delimitam blocos de código que compõem um laço ou expressão condicional. Por exemplo, em C:
if ( a < 0 ) {
/* bloco de código */
}
ou em Fortran:
if ( a .lt. 0 ) then
/* bloco de código */
endif
Nestes dois casos, os blocos são delimitados -- em C por chaves, e em Fortran pelo par then e endif. Em Python, os blocos são demarcados apenas por indentação:
if ( a < 0 ):
# bloco de código
# (ao fim da seção indentada
# termina o bloco)
# próxima instrução (após o if)
Esta propriedade faz com que a linguagem seja muito clara e fácil de ler -- a indentação está sempre correta -- mas também requer um controle formal sobre a indentação. É importante convencionar se a indentação será feita por uma tabulação ou por um número determinado de espaços, já que todas as pessoas editando um programa Python devem usar o mesmo tipo. Uma boa dica que evita confusão é usar 4 espaços para cada nível.
2.7 Tipos de variáveis de alto nível
Como dito antes, Python possui tipos, e alguns destes tipos merecem uma atenção especial por serem de alto nível, e portanto, bastante úteis. Python oferece:
Strings: a cadeia de caracteres, uma forma de dado muito comum, possui um tipo específico.
Listas: uma lista é como um vetor em outras linguagens: um conjunto de valores organizados (indexados) por um índice numérico e inteiro.
>>> a = [ "A", "B", "C" ]
>>> print a[2]
"C"
Tuplas: tuplas são listas imutáveis; em outras palavras, não podem ser alteradas uma vez criadas.
Dicionários: dicionários são como listas, mas que possuem índices cujo tipo não precisa ser inteiro. Dicionários são conhecidos em outras linguagens como arrays associativos ou hashes.
>>> autor = { "nome" : "Christian", "idade" : 26 }
>>> print autor["nome"]
"Christian"
Classes: classes são tipos especiais que servem para apoiar programação orientada a objetos, que será discutida a seguir.
2.8 Orientação a objetos
Neste tópico, faremos uma rápida explicação sobre como pode ser feita a orientação a objetos.
Orientação a objetos (OO) é uma forma de estruturar um programa: ao invés de definirmos variáveis e criarmos funções, passando parâmetros entre elas, definimos objetos que possuem dados e ações associadas. O programa orientado a objetos é resultado da 'colaboração' entre estes objetos.
Para a orientação a objetos ser utilizada, a linguagem de programação deve dar suporte a objetos (e aos seus tipos, as classes). Em Python, há suporte completo a OO; aliás, a linguagem vai além de simples suporte: todos os elementos básicos em Python são objetos.
Segue um exemplo de uma classe, e da criação de um objeto, que nos termos da linguagem Python é chamado de instância:
>> class Produto:
def vende(self):
# Aqui entrariam as ações que realizam uma venda
pass
>> p = Produto()
>> p.preco = 10.00
>> p.descricao = "Halls extra forte"
>> p.vende()
>> print p
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Qua 16 Nov - 16:14 por fernandosena
» Segurança e redes sem fio
Qua 16 Nov - 16:11 por fernandosena
» Nokia lançará tablet com Windows 8 em junho de 2012, diz executivo
Qua 16 Nov - 16:05 por fernandosena
» Empresa registra aumento de 472% no número de vírus para Android
Qua 16 Nov - 16:03 por fernandosena
» YouTube investe US$ 100 milhões em vídeos
Sex 7 Out - 8:34 por fernandosena
» Todos os títulos futuros da Microsoft devem trazer suporte para o Kinect
Sex 7 Out - 8:25 por fernandosena
» Resident Evil 5 - PC
Sex 7 Out - 8:22 por fernandosena
» Novo trailer de Assassin’s Creed Revelations é lançado
Sex 7 Out - 8:12 por fernandosena
» Biostar apresenta nova placa-mãe que permite acesso remoto via smartphones
Sex 7 Out - 8:08 por fernandosena