logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Tutorial informal de Python, parte 1

Esse tutorial informal é voltado para programadores que querem conhecer melhor o Python. Meu intuito é ajudar esses programadores a decidirem se será de alguma valia estudar Python e se existe algum projeto onde a linguagem será útil.

expliquei porque tenho usado Python. E não se esqueçam, não foi por causa da performance (já expliquei isso). O próprio C# é mais rápido que Python na maioria das vezes, mas meu foco nesse ponto é produtividade. O Python tem vários defeitos inerentes à sua arquitetura (fonte sempre aberto, bugs que aparecem em runtime por não existir tipagem, entre outros) mas é o preço que foi pago pelas qualidades.

Caso você queria começar a programar em Python, você só precisará da distribuição padrão baixada do python.org. Se você usar o Windows, baixar o PyWin32 também ajuda, já que com ele vem uma IDE com code completion, debug integrado e mais algumas facilidades. Se você precisa saber mais detalhes sobre o funcionamento do Python, o Google e a Wikipedia são seus amigos. Não pretendo reproduzir nessa série esses detalhes, quero me ater ao código e ao uso prático do Python o máximo possível.

Uma grande vantagem do Python é o console, onde você escreve e testa código sem o ciclo mudar-compilar-debugar. Em alguns exemplos de código, quando possível, vou usar somente o console. Isso será claro pelo aparecimento do prompt do Python (">>>") no início da linha, como nesse exemplo:

>>> a = 10
>>> print a
10
>>> print b
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'b' is not defined
>>> 

Uma das características marcantes do Python é que os blocos são determinado pela identação, não existe nada como END IF ou }. Bom (mantém o código legível) ou ruim (espaço e tab não são visuais), é assim que é. Nesse exemplo não usarei o console do Python, o que pode ser notado pela falta do prompt:

a = 1
b = 5
 
while b != 0:
   b -= 1
   for x in range(5):
      print x, '-',
      a+= 1
      if a == b:
         print 'sim, é igual'
      else:
         print 'não é igual, a = %d e b =%d' % (a,b)
 
print 'fim, isso não está dentro do for ou do while. O valor de b é %d' % b

Vamos aproveitar o trecho de código acima para explicar com as coisas básicas funcionam:

  • As variáveis não têm tipo definido (mas o valor que referenciam tem), mas precisam ser atribuídas antes de serem usadas.
  • Não existe operador de pós ou pré incremento, a++ não funciona.
  • Instruções de fluxo como if, for e while não necessitam de parênteses nas expressões sendo testadas, mas precisam de dois pontos (':') no final.
  • print é uma instrução (isso será mudado no Python 3000).
  • Formatação de strings à la printf é um recurso nativo, uma expressão str % (param0, param1, ...) faz o serviço. Isso não é um recurso do print, str = 'número %d' % 10 também funciona. Como nesse exemplo, os parênteses pode ser omitidos no caso de um parâmetro somente
  • Atribuição ('=') é diferente de comparação ('==').
  • Não existe for da mesma forma que as linguagens derivadas do C, o for é usado somente para enumeração. A função range retorna uma lista (mais sobre isso depois) com números seqüenciais para simular esse comportamento. for x in range(10) é mais simples do que for(x = 0 ; x < 10 ; ++x). Para contadores que não são simplesmente somados, o range suporta mais parâmetros e existem outros recursos igualmente simples para isso.

Em 31/05/2007 21:14, por Rodrigo Strauss


  
 
 
Comentários
Walter Cruz | website | em 31/05/2007 | #
print já funciona como uma função hoje em dia :)

(não sei se eu boiei, mas eu escrevi 'vinte e seis' - talvez a pergunta não esteja muito clara, ou talvez eu apenas esteja com muito sono)
Israel Agoeiro | website | em 25/01/2010 | #
Muito obrigado pela lição.
Luiz | website | em 19/06/2014 | #
Adorei o seu site e gostaria que voce pudesse indicar algum livro bom para quem esta iniciando em python.
Desde ja agradeço abraço e sucesso.
rebarba rebarba
  ::::