Este é um pequeno guia sobre a sintaxe de Python.

Recomendado para quem está começando a aprender sobre Python ou para quem nunca viu Python.

Se você prefere a versão em vídeo, aqui vai…

Se você prefere ler, é só continuar…

Variáveis

Uma variável não pode ser utilizada em uma expressão sem ter sido inicializada

Não existe “criação automática” de variáveis.

Exemplo de atribuição:

reais = euros * taxa

As variáveis euros e taxa devem ser inicializadas, se não o erro name 'euros' is not defined será exibido.

Também podemos inicializar mais de uma variável dessa forma…

>>> a, b = 10, 20
>>> a
10
>>> b
20

Valor nulo (null)

Em Python, None equivale ao valor nulo (null).

Podemos iniciar as variáveis com o valor None.

reais = None

Saídas

Saída simples válido para a versão 3 de Python.

print("Welcome to Python!")

Saída mais elaborada.

string_1 = "Camelot"
string_2 = "place"
print("Let's not go to %s. 'Tis a silly %s." % (string_1, string_2))

Veja na documentação oficial as diferenças entre as versões 2 e 3.

Entradas

name  = input("What is your name?")
quest = input("What is your quest?")
color = input("What is your favorite color?")

print("Ah, so your name is %s, your quest is %s, " \
"and your favorite color is %s." % (name, quest, color) )

Endentação

Python usa endentação como delimitação de bloco, portanto devemos endentar corretamente o código fonte.

Abaixo vemos um código endentado de forma errada:

def spam():
eggs = 12
return eggs

print(spam())

Abaixo, vemos o mesmo código corrigido:

def spam():
    eggs = 12
    return eggs

print(spam())

Blocos

Como visto acima, Python usa endentação como delimitação de bloco.

Abaixo vemos os comandos que aceitam blocos:

  • if/elif/else
  • for/else
  • while/else
  • def
  • try/except /finally/else
  • class
  • with

Se o bloco tem apenas um comando, pode-se escrever tudo em uma linha:

if n < 0: print('Valor inválido')

Comentários

Em linha.

# comentário de linha
""" Esse é de bloco mas está em uma linha só """

Em bloco.

"""
comentários
comentários
comentários
"""

Aspas simples também funciona.

'''
this is
a multi-line
comment, i am handy for commenting out whole
chunks of code very fast
'''

Tipos de dados básicos

Números: int, long, float, complex
Strings: str e unicode
Listas e tuplas: list, tuple
Dicionários: dict
Arquivos: file
Booleanos: bool (True, False)
Conjuntos: set, frozenset
None:

Se, por exemplo, você digitar no console dict ele retornará:

<class 'dict'>

A função type() mostra o tipo do dado, veja alguns exemplos.

type("text")        # <class 'str'>
type(1)             # <class 'int'>
type(0.99)          # <class 'float'>

Também é possível elaborar as seguintes expressões.

type(1) == int      # True
type(0.99) == float # True

Números

Python possui + - * /, nem precisava falar!.

Mas talvez você se pergunte como calcular uma potência.

10 ** 2 # print(100)

…ou o resto da divisão com o operador módulo %.

3 % 2 = 1
5 % 2 = 1

Veja também algumas funções matemáticas:

max(5, 6, 7) # 7
min(5, 6, 7) # 5
abs(-1)      # 1

Para trabalhar com números randômicos será preciso importar o módulo random.

import random
random.randint(1, 10)

O código acima irá gerar números randômicos entre 1 e 10 (incluindo o 1 e o 10).

Strings

Concatenamos strings com o sinal +.

"Spam " + "and" + " eggs"

Quando concatenamos com um número, precisamos fazer a conversão.

"The value of pi is around " + str(3.14)

Escapamos (scape) caracters com o sinal \

'There's a snake in my boot!'  # errado
'There\'s a snake in my boot!' # correto

Métodos básicos de string

função descrição
len() mostra o tamanho da string
lower() caixa baixa
upper() caixa alta
str() converte em string
isalpha() retorna False se a string contiver algum caracter que não seja letras

Exemplo, "flavio.upper()" equivale a FLAVIO.

Acessando pelo index

+---+---+---+---+---+---+
| p | y | t | h | o | n |
+---+---+---+---+---+---+
  0   1   2   3   4   5
"python"[0] # 'p'
"python"[1] # 'y'
"python"[2] # 't'
"python"[3] # 'h'
"python"[4] # 'o'
"python"[5] # 'n'

Leia mais sobre fatiamento de sequências.

Percorrendo strings (string lopping)

for letter in "python":
    print(letter)

"""
p
y
t
h
o
n
"""

Leia mais sobre strings.

Controle de fluxo (condicionais)

if expressao == True:
    print("true")
else:
    print("false")
if answer > 5:
    return 1
elif answer < 5:
    return -1
else:
    return 0

Leia mais sobre estruturas condicionais.

Laços de repetição

Exemplo com for

lista = ["p", "y", "t", "h", "o", "n"]
for item in lista:
    print item
"""
p
y
t
h
o
n
"""

Exempo com while

count = 0
while count <= 5:
    print(count)
    count += 1
# 0 1 2 3 4 5

Leia mais sobre laços de repetição.

Funções

def foo():
    return "retorno da função"

print(foo()) # "retorno da função"

Outro exemplo

def add_two(a, b):
    c = a + b
    return c

Leia mais sobre funções.

Imports

Para importar um módulo utilizamos o import.

import math
print(math.sqrt(25))

O código acima importará todos os módulos de math, para importar apenas o necessário utilizamos from.

from math import sqrt

No terminal, para diminuir a digitação, costuma-se importar todas as funções de math dessa forma:

from math import *

Em geral, a prática do import * de um módulo ou pacote é desaprovada, uma vez que muitas vezes dificulta a leitura do código.

Leia mais sobre imports.

Datas

from datetime import datetime
now = datetime.now()
print(now)
print(now.year)
print(now.month)
print(now.day)

Para imprimir a data no formato brasileiro:

print('%s/%s/%s' % (now.day, now.month, now.year))

Imprimindo as horas:

print('%s:%s:%s' % (now.hour, now.minute, now.second))

Listas (lists)

animals = ["pangolin", "cassowary", "sloth", "dog"];
animals[0]   # 'pangolin'
animals[1]   # 'cassowary'
animals[2]   # 'sloth'
animals[3]   # 'dog'

Ao acessar um índice inexistente recebemos um erro.

animals[4]   # IndexError: list index out of range

A função len() retorna o tamanho da lista.

len(animals) # 4

Leia mais sobre listas.

range()

A função range() retorna uma lista de inteiros. Seu conteúdo é definido pelos argumentos, veja:

  • range(terminal)
  • range(start, terminal)
  • range(start, terminal, step_size)

Exemplos:

range(4)
[0, 1, 2, 3]

range(2, 8)
[2, 3, 4, 5, 6, 7]

range(2, 13, 3)
[2, 5, 8, 11]

Percorrendo (lopping):

for i in range(20):
    print(i)

Dicionários (dictionaries)

people = {
    "name": "joao",
    "age": 39,
    "skylls": ['python', 'ruby', 'php']
}

print(people['name'])
print(people['age'])
print(people['skylls'])

"""
joao
40
['python', 'ruby', 'php']
"""

Leia mais sobre dicinonários.

Lambdas

Exemplo:

g = lambda x: x * 2
print(g(6))
# 12

Para facilitar o entendimento, veja código abaixo, ele é similar.

def f(x):
    return x * 2
print(f(6))
# 12

OOP - Programação Orientada a Objetos

Abaixo vemos um exemplo de classe em Python.

class Triangle(object):

    def __init__(self, angle1, angle2, angle3):
        self.angle1 = angle1
        self.angle2 = angle2
        self.angle3 = angle3

    def sum_triangle(self):
        return self.angle1 + self.angle2 + self.angle3

    def check_angles(self):
        if(self.triangle() == 180):
            return True
        else:
            return False

Abaixo vemos um exemplo simples de como instanciar uma classe em Python.

figure = Triangle(30, 40, 50)

Leia mais sobre Programação Orientada a Objetos.

Fontes