Conceitos básicos da linguagem Python

19:04Fresh Young´s

Python usa a endentação para delimitar blocos de código. Um bloco inicia-se com uma linha terminada em dois pontos (:), e continua para todas as linhas que tenham uma endentação similar ou mais recuada. Por exemplo:

1.
2.
3.
4.
5.
6.
7.
8.
>>> i = 0>>> while i < 3:
>>>     print i
>>>     i = i + 1>>>0
1
2

É comum utilizar 4 espaços para cada nível de endentação. É uma boa prática não misturar espaços com tabulações, pois pode gerar problemas.



Iteração de elementos


Em Python você pode efetuar loops em objetos iteravéis utilizando os comandos for...in e while:

1.
2.
3.
4.
5.
6.
7.
8.
>>> lista = [0, 1, 'hello', 'python']
>>> for item in lista:
...     print item
... 0
1hello
python

Duas funções que são bastantes úteis: xrange e a range
1.
2.
3.
4.
5.
6.
>>> for i in xrange(3,6):
...     print i
... 3
4
5

1.
2.
3.
4.
5.
6.
>>> for i in range(3):
...     print i
...1
2
3

Esta sintaxe é equivalente ao seguinte código C/C++/C#/Java:
1.
for(int i=0; i<3; i=i+1) {print(i);)

Você pode abortar um loop utilizando o comando break
1.
2.
3.
4.
>>> for i in [1, 2, 3]:
...    print i
...    break1

É possivel ir para a próxima iteração, sem a necessidade de executar todo o código definido no bloco, utilizando o comando continue

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
>>> for i in [1, 2, 3]:
...     print i
...     if i==2:
...         continue...     print 'test'... 1test
2
3test

While


while (enquanto), em Python funciona de maneira muito similar a outras linguagens, este comando efetua a repetição indefinidas vezes, tesntando uma consição no final de cada iteração até que a condição seja igual a False

1.
2.
3.
4.
5.
>>> while i < 10:
...     i = i + 1... 
>>> print i
10

Expressões condicionais


O uso de condições em Python é intuitivo:

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
>>> for i in range(3):
...     if i == 0:
...         print 'Zero'...     elif i == 1:
...         print 'Um'...     else:
...         print 'Outro'... Zero
Um
Outro

elif é o mesmo que else if, você pode ter quantos elifs desejar mas só é permitido apenas um else sempre como última condição do bloco.


Funções


Funções são blocos de código nomeados, criadas para permitir a reutilização de código, as funções podem receber argumentos. Algumas funções já estão presentes no interpretador Python.

Exemplo de função


1.
2.
3.
>>> def nome_da_funcao(argumento1, argumento2):
...     bloco de código
...     return <resultado>

O web2py segue o estilo de marcação determinado no PEP-8 , por isso será comum ver funções nomeadas com o uso de 'underline' ex: nome_da_funcao. Porém você pode preferir utilizar outro estilo, como camelCasing ou PascalCasing na hora de criar as suas próprias funções.

Retorno de valores

Se a função retorna algum valor, como no caso de uma soma ou outro tipo de tratamento de dado. É utilizado o comandoreturn para especificar o que será retornado.

1.
2.
3.
4.
5.
>>> def soma(x,y):
...     return x + Y
...
>>> soma(1,2)3

Uma única função poderá retornar mais de um objeto, e uma função pode receber argumentos nomeados

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
>>> def consulta_produto(id,desconto=False):
...     if id:
...         produto = id
...         if desconto==False:
...             return produto,'sem desconto'...         else:
...             return produto,'com desconto'... 
>>> consulta_produto(desconto=True,id=10)
(10, 'com desconto')

lambda


Expressões lambda são funções que não possuem nome e que são criadas dinâmicamente

1.
2.
3.
4.
5.
6.
7.
>>> def soma(a, b): 
...     return a+b
... 
>>> soma_alterada = lambda a: 5 + soma(a, 3)
>>> soma_alterada(2)10>>> 

A expressão lambda [a]:[b] pode ser lida como: Uma função que recebe o argumento a e retorna o valor b. Mesmo sendo uma função sem nome, ela pode ser referenciada por uma váriavel soma_alterada e desta maneira é possível invoca-la.
lambda é muito útil para efetuação refatoramento e sobrecarga( overloading ) de métodos e funções.



Executando código prédeterminado


Diferente de C#, Java ou PHP, Python é uma linguagem totalmente interpretada. isso significa Python tem a habilidade para executar blocos de código armazenados em strings:

1.
2.
3.
4.
>>> a = "print 'web2py Brasil'" >>> exec(a)'web2pyBrasil'

Comentários e docstrings


Existem duas maneiras para inserir um cometário em Python, para comentários gerais no meio do bloco de código, basta utilizar o caractere #

1.
2.
3.
>>> def funcao(): # aqui definimos uma função...     # na linha abaixo retornamos o valor...     return <valor>

Também podemos utilizar docstrings que tem duas funcionalidades, docstring é uma meneira de inserir comentários ou string multilinhas, mas também podem ser utilizadas para gerar documentação automaticamente, docstrings são definidas com três aspas simples ou duplas.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
>>> def funcao():
...     """
...     Aqui começa minha docstring, este texto servirá
...     como documentação que pode ser gerada por ferramentas como **epydoc**
...     docstrings também são usadas por ferramentas de TDD como **doctests**
...     geralmente explicam como utilizar a função, ou incluem código python
...     >>> funcao()
...     'retorno da funcao'
...     """...     return 'retorno da funcao'

Você pode acessar o texto da docstring de uma função, ou até mesmo executar código Python contido na docstring.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
>>> def funcao():
...     """
...     docstring da funcao
...     essa funcao nao tem retorno
...     """...     return None... 
>>> funcao()
>>> funcao.__doc__
'\n    docstring da funcao\n    essa funcao nao tem retorno\n    '

O mesmo resultado é obtido também com o uso do comando help(funcao)


Módulos


Cada arquivo em python é chamado de módulo. Módulos são conjuntos de códigos como funções, classes, métodos, variáveis, etc.
Vários módulos podem ser comunicar atráves do comando import modulo

Vamos pegar o seguinte módulo como exemplo:

conteúdo do arquivo modulox.py

1.
2.
def soma(a,b):
    return a + b

Agora podemos utilizar a função de soma definida em modulox.py em qualquer parte do nosso projeto 

importando módulos


Existem dois modos príncipais para importar um módulo: 
  • Importando com alto acoplamento: desta maneira as funções e variáveis do modulox precisam ser acessadas mantendo-se o nome do módulo como em modulox.soma()

1.
2.
3.
>>> import modulox      # aqui importamos o módulo **modulox.py**>>> print modulox.soma(3,6)     # aqui invocamos a função **soma**9

  • Importando diretamente: desta forma todos os objetos definidos em modulox ficam diretamente disponíveis para acesso dentro do programa atual, e ainda temos a opção de escolher quais objetos iremos importar.
Para importar todos os objetos utilizaremos * 
1.
2.
3.
>>> from modulox import * # todos os objetos definidos em modulox.py>>> from modulox import soma # apenas a função soma>>> from modulox import soma as minhasoma # importar a função soma e renomear

Em todos os casos acima, os objetos importados ficam diretamente acessíveis: 
1.
2.
3.
4.
>>> print soma(3,6)9>>> print minhasoma(3,6)9



List Comprehensions


Compreensão em listas é uma construção que permite processar listas de uma forma bem próxima a matemática. 
A sintaxe é [<expressão> for <variável> in <lista> if <condicao>]
onde: <variável> in <lista> pode se repetir N vezes.
e a <condição> é opcional. 

Vamos utilizar a função soma por exemplo.
1.
2.
>>> print [modulox.soma(numero,5) for numero in range(10) if numero!=5]
[5, 6, 7, 8, 9, 11, 12, 13, 14]

No exemplo acima, executamos a função soma para somarmos 5 a cada número da lista gerada pelo comando range(10) apenas se o numerofor diferente de 5

You Might Also Like

0 comentários

Popular Posts

Formulário de Contacto