Aventurando-se com Python
Segunda Aula

Variáveis

Nomenclatura de Variáveis

Os nomes usado para referenciar a variáveis são chamados de identifiers ou identificadores. Eles seguem algumas condições, tais como:
- Devem iniciar com uma letra ou um underscore _, e seguido por letras, numbers ou underscores;
- São case-sensitives.
- Não pode ser keywords (palavras reservadas); e
- Não possuem limitação de comprimento.
Nomenclatura de Variáveis

Variáveis que iniciam com underscore possuem um significado especial. Quando um pacote é importado, as variáveis que iniciam com underscore não são importadas juntas.
from mymodule import *
#As variáveis iniciadas com _ não estão disponíveisPor padrão da comunidade e definido na PEP8, as variáveis em Python são escritas em minúsculo, com palavras separadas por underscore. Exemplos: minha_variavel, de_boa_aqui_no_python
Keywords

Para verificar a lista de palavras reservadas do Python, digite o seguinte código:
import keyword
keyword.kwlistAtribuição de Variáveis

# Atribuição é feita com o sinal =
x = 5
y = 3
# Ela também pode ser feita assim, como multi-atribuição, numa mesma linha
x, y = 5, 3
# O número de variáveis e de valores devem ser o mesmo.
# Senão, algo 'estranho' pode acontecer
x, y, z = "ABC"
print(x) # A
print(y) # B
print(z) # C
x, y, z = "ABCDEF" # ValueError: too many values to unpack (expect 3)Deletando Variáveis

'''
Você pode deletar variáveis em Python
usando o operador del
'''
x = 2
del x
print(x) # NameError: name 'x' is not defined
'''
Contudo, você não precisa se preocupar com isso.
O Python já faz isso internamente.
OBS: Quando você deleta uma variável, ela não é deletada
efetivamente no exato momento após o comando. O Python verifica antes
se esta variável não está sendo referenciada por outra variável.
Se não, ele então a deleta.
''' Descobrindo o Tipo

# Use a função type() para descobrir o tipo do valor da variável.
x = 1
type(x) # <class 'int'>
type("abc") == str # True
# Mas em produção, você deve usar o isintance().
isinstance(1, int) # TrueLidando com Booleans

Booleans

umaVariavel = "";
# Convertendo qualquer outro valor para booleano.
valorBooleano = bool(umaVariavel); # False
'''
Os seguintes valores serão convertidos para False:
None
False
0
Coleções vazias: “”, (), [], {}
Objetos de classes que tem o método especial __nonzero__
Objetos de classes que o __len__ retorna False ou 0
Todos os outros valores serão True.
'''Booleans

a = '';
b = 'OK';
''' Usando o operador AND, o valor de a é retornado se ele pode ser
convertido em false; senão b é retornado. '''
result = a and b;
''' Usando o operador OR, o valor de a é retornado se ele pode ser
convertido em true; senão b é retornado. '''
result = a or b;Booleans

True - False # 1
False - True # -1
True + True # 2
True * 3 # 3
50 + False # 50
bool('') + bool(not None) # 1Expressões

Conjunto de Operações

x = 5
x < 10 > 3 # True
x > 4 > 5 # False
x > 4 < x # True
x == 5 > 3 # TrueOrdem de Precedência

Determina a ordem que a expressão é executada.
Ordem de Precedência

Em uma expressão com operadores booleanos

Numbers

Numbers

# Python suporta tanto int como float.
# A distinção pela presença ou não do ponto flutuante. Exs.
1 + 1 # 2
1 + 1.0 + 2.0
type(2.0) # <class 'float'>
# Você converter de um para o outro
int(3.45) # 3, ele trunca e não arrendondar
float(3) # 3.0
2.2342125256... # números decimais tem precisão de 15 casas decimaisListas

Declaração

'''
Uma lista em Python é quase como um array em outras linguagens,
como Java. Mas uma lista em Python, não tem tamanho fixo
e os items podem ser de tipos diferentes.
'''
# Exemplos de declaração de listas.
frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
lista_doida = [False, 0, "Gato", 2.343]
vazia = []
# A ordem se mantém a mesma que a inserida
print(frutas) # ["Banana", "Abacaxi", "Goiaba", "Manga"]Acessando

'''
Uma lista tem N índices, onde cada índice é uma posição da lista
Por exemplo, frutas tem 4 elementos, ou 4 índices.
A lista inicia no índice 0 e vai até o índice N-1.
Por exemplo, frutas inicia no 0 e vai até o 3 (4-1).
O número de índices é chamado de comprimento da lista ou length
'''
frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
# para acessar um item de uma lista use [indice]
print(frutas[0]) # "Banana"
print(frutas[3]) # "Manga"
# Em Python, você pode acessar uma lista de trás pra frente. Wat?!
print(frutas[-1]) # "Manga", último elemento
print(frutas[-2]) # "Goiaba", penúltimo elemento
# Uma maneira de ver isso mais fácil.
# Pense assim, lista[-n] = lista[length - n].
# frutas[-3] == frutas[4 - 3] # frutas[1]Acessando: Slicing

'''
Você pode querer acessar a um subconjunto da lista.
Isso é chamando de slicing.
'''
frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
# Exemplos
print(frutas[1:3]) # ["Abacaxi", "Goiaba"]
# Isso sempre me retorna uma nova lista.
print(frutas[1:-1]) # ["Abacaxi", "Goiaba", "Manga"]
print(frutas[1:1]) # []
# Caso, omitido, o primeiro valor por padrão é o início da lista.
print(frutas[:2]) # ["Banana", "Abacaxi", "Goiaba"]
# Caso, omitido, o segundo valor por padrão é o final da lista.
print(frutas[1:]) # ["Abacaxi", "Goiaba", "Manga"]
print(frutas[:]) # ["Banana", "Abacaxi", "Goiaba", "Manga"]Adicionando itens

'''
Há 4 maneiras de adicionar itens a uma lista já existente
'''
frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
# Somando a uma outra lista. i.e. Concatenando.
frutas = frutas + ["Maça", "Acerola"]
# Usando a função append(), adicionando um item ao final da lista
frutas.append("Uva")
# Usando a função extend()
frutas.extend(["Uva", "Goiaba"])
# Usando o insert() para adicionar em uma posição desejada
frutas.insert(1, "Cajú")
# Detalhe do append()
frutas.append(["Cajá", "Graviola"])Procurando itens

frutas = ["Banana", "Abacaxi", "Goiaba", "Manga", "Banana"]
frutas.count("Banana") # 2
"Banana" in frutas # True
"Laranja" in frutas # False
frutas.index("Banana") # 0Removendo itens

frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
del frutas[1]
frutas.remove("Goiaba")
frutas.pop()
frutas.pop(1)
Tamanho da lista

frutas = ["Banana", "Abacaxi", "Goiaba", "Manga"]
len(frutas) # 4
Curso de Python - 2° Aula (PyLadies Fortaleza)
By Wilmerson da Silva
Curso de Python - 2° Aula (PyLadies Fortaleza)
- 716