Python - O básico da sintaxe

Um guia rápido e básico da linguagem Python.

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.

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  = raw_input("What is your name?")
quest = raw_input("What is your quest?")
color = raw_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:

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:

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

Comentários

comments powered by Disqus