Python é uma linguagem interpretada, orientada a objetos (incluindo herança múltipla). Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e exceções. Python possui Uma forma eficiente de acesso e reutilização de código com o uso de módulos, 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).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).## InstalaçãoPor padrão o Python, já vem instalado no linux e no OSX(Mac). Só precisará instalar se estiver usando o windows. Assim, pode baixá-lo no [https://www.python.org/downloads/](https://www.python.org/downloads/). Depois de fazer o download do arquivo /*.msi, você precisa executá-lo e seguir as instruções. Na segunda tela do assistente de instalação, marcado 'Customize', certifique-se de rolar para baixo e escolha a opção 'Adicionar python.exe para o caminho'. Isso vai fazer com que o caminho da pasta do Python, seja adicionado no caminho do sistema operacional, nas variáveis de ambiente.Para começar a ver como o interpretador funciona, basta abrir o terminal e digitar:``` python // depois aperte enter ```No windows, aparece assim:``` Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32 Type 'help', 'copyright', 'credits' or 'license' for more information. >>> ```### VariávelNão há declaração explícita de variáveis em Python, assim, a sua existência depende da atribuição de um valor:``` >>> nome = 'Hemerson Vianna' ```Para declarar uma variável é preciso seguir a convenção `snake case`, onde o nome da variável começa com minúscula e utiliza underscore para separar cada palavra:``` >>> quantidade_de_computadores = 10 ```Uma coisa muito interessante no Python, é que podemos declarar variáveis e atribuir seus valores de uma vez só:``` >>> nome, quantidade_de_computadores = 'Hemerson Vianna', 10 ```### Tipos de dadosO Python tem 5 tipos de dados:**_Number_**: Armazena e suporta 4 tipos de valores numéricos(int, long, float e complex).``` // int var1 = 1 var2 = -786 var3 = 0x69 var4 = -0x260// long - inteiros longos , que também pode ser representado em octal e hexadecimal var1 = 51924361L var2 = -052318172735L var3 = -0x19323L var4 = 0xDEFABCECBDAECBFBAEl// float - valores reais de ponto flutuante var1 = 15.20 var2 = 32.3+e18 var3 = -32.54e100 var4 = 70.2-E12// complex var1 = 3.14j var2 = 9.322e-36j var3 = 4.53e-7j var4 = .876j ```Python permite que você use um L minúsculo com muito tempo, mas é recomendável que você use somente uma maiúscula L , para evitar confusão com o número 1. Python exibe inteiros longos com uma maiúscula L.Um número complexo é composto por um par ordenado de números de ponto flutuante reais indicados por x + yj, onde x e y são os números reais e j é a unidade imaginária.**_Strings_**: Python permite tanto pares de aspas simples ou duplas. Subconjuntos podem ser feitas usando o operador de fatia ( [] e [ : ] ) com índices começando em 0 no início da string e -1 ao final. O sinal de mais (+) é o operador de concatenação de string e o asterisco (/* ) é o operador de repetição.``` str = 'Olá mundo'print str # imprime a string print str[0] # apenas o primeiro caractere print str[2:5] # começa no terceiro caractere e termina no quinto print str[2:] # a string começa a partir do terceiro caractere print str * 2 # imprime 2 vezes a string print str + 'TEST' # concatena a string ```**_List_**: É o mais versátil dos tipos de dados composto do Python. A lista contém itens separados por vírgulas e entre colchetes ([]) . As listas são semelhantes as matrizes em C. Uma diferença entre elas é que todos os elementos pertencentes a uma lista pode ser de diferentes tipos de dados.Os valores armazenados em uma lista pode ser acessada usando o operador de fatia ([] e [:]) com índices começando em 0 no início da lista e ao final com -1. O sinal de mais (+) é o operador de concatenação e o asterisco (/*) é o operador de repetição.``` list = [ 'abcd', 786 , 2.23, 'andre', 70.2 ] tinylist = [123, 'andre']print list # imprime a lista print list[0] # apenas o primeiro elemento da lista print list[1:3] # começa no segundo e termina no terceiro elemento print list[2:] # começa no terceiro elemento print tinylist * 2 # imprime 2 vezes a lista print list + tinylist # concatena as listas ```**_Tuple_**: É um outro tipo de dados de sequência que é semelhante à lista. Uma tupla consiste de um número de valores separados por vírgulas. Ao contrário da lista, as tuplas são colocados dentro de parênteses.As principais diferenças entre as listas e astuplas são: As listas são colocados entre colchetes ([]) e os seus elementos e tamanho podem ser alteradas, enquanto tuplas estão entre parênteses (()) e não pode ser atualizadas. Tuplas pode ser pensado como somente leitura.``` tuple = ( 'abcd', 786 , 2.23, 'andre', 70.2 ) tinytuple = (123, 'andre')print tuple # imprime a tupla print tuple[0] # apenas o primeiro elemento da lista print tuple[1:3] # começa no segundo e termina no terceiro elemento print tuple[2:] # começa no terceiro elemento print tinytuple * 2 # imprime 2 vezes a tupla print tuple + tinytuple # concatena as tuplas ```**_Dictionary_**: É uma espécie de tabela hash. Funcionam como matrizes de associação ou hashes encontrados em Perl e consistem em pares de valores-chave. A chave do dicionário pode ser quase qualquer tipo Python, mas são geralmente números ou strings. Os valores, por outro lado, pode ser qualquer objeto Python arbitrário.Dicionários são delimitados por chaves ({ }) e os valores podem ser atribuídos e acessados usando colchetes ([]).``` dict = {} dict['um'] = 'Esse é o um' dict[2] = 'Esse é o dois'tinydict = {'name': 'andre','code':6734, 'dept': 'compras'}print dict['um'] # impreme o valor 'Esse é o um' print dict[2] # impreme o valor 'Esse é o dois' print tinydict # imprime o dicionário print tinydict.keys() # Imprime todas as chaves print tinydict.values() # Imprime todos os valores ```### ObservaçõesPython não permite concatenar uma string com um número. Ele não realiza uma conversão implícita de Number para String. Para isso, usamos `%s` para tratar o resultado final como uma String. Indicamos os valores que entrarão nas lacunas %s e %s, adicionando o sinal % imediatamente após a String e em seguida colocando as duas variáveis entre parênteses e separadas por vírgula.``` >>> nome = 'Hemerson Vianna' >>> idade = 29 >>> print 'O nome é %s e a idade é %s' % (nome, idade) // O nome é Hemerson Vianna e a idade é 29 ```Para mostar o que citei acima, sobre não poder atualizar o valor de uma tupla, já com uma lista é possível:``` tuple = ( 'abcd', 786 , 2.23, 'andre', 70.2 ) list = [ 'abcd', 786 , 2.23, 'andre', 70.2 ] tuple[2] = 1000 # Invalid syntax with tuple list[2] = 1000 # Valid syntax with list ```## ConclusãoVenho descobrindo o mundo do Python e tem me agradado bastante. Recomendo o curso [Welcome to the Django](http://welcometothedjango.com.br/) do Henrique Bastos, que é show de bola. Eu fiz, e ele é fera. Aguardem novos artigos da série sobre Python. :)