for i in range(1, 101): # Não há chaves {}
if i % 15 == 0: # Não é necessário parêntesis para a condição
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0: # elif combina 'else' com 'if'
print("Buzz")
else:
print(i)
range
cria uma "lista" de elementos
range(5)
vai criar de 0 a 4for
" em python itera em cada elemento de um contêinerTipos já embutidos no núcleo da linguagem
idade = 4 # Inteiro (int)
nome = "Kadu" # String (str)
peso = 10.4 # Float (float)
vacinado = True # Booleano (bool)
dono_anterior = None # Representa um tipo vazio (None)
peso_int = int(peso) # Inteiro convertido a partir de um float
c = 1-3j # Número complexo
type
" para determinar o tipo de uma variável
uma_lista = [2, 3, 5.5, 7, 11, "lala"] # Lista (list, [])
uma_tupla = (2, "lala", 4) # Tupla (tuple, ())
um_dict = {'nome': "Silvio Santos", # Dicionário (dict)
'idade': 86,
"profissões": ["apresentador", "empresário"]}
um_conjunto = {1, 4, 8, 10, "lala"} # Conjunto (set)
print
input
input
sempre retorna uma string++
e --
is
" e "in
"&&
e
||
temos as palavras chave and
e or
!
temos a palavra chave not
&
, |
, ^
, assim como um operador inverter os bits de um inteiro ~
if
, else
e elif
elif
corresponde a um else
seguido de um if
e existe para evitar indentação excessivaif x == 42:
# Código executado de x for igual a 42
print("x vale 42")
elif x > 0:
print("x não vale 42, mas pelo menos é maior que 0")
else:
print("Nenhuma das condições anteriores foi verdadeira")
Nota: Não existe "switch case" em Python, mas temos uma alternativa
for
em Python difere do for
em
C/C++palavras = ['gato', 'janela', 'paralelepípedo']
for palavra in palavras:
print (palavra.upper())
range
range(5, 10) # 5, 6, 7, 8, 9
range(0, 10, 3) # 0, 3, 6, 9
range(-10, -100, -30) # -10, -40, -70
range(-10, -101, -30) # -10, -40, -70 -100
while
em Python, que funciona de forma semelhante ao C/C++
N = 6
f = 1
while N > 1:
f = f * N
N -= 1 # Não existe ++ ou -- em Python
if
, for
, while
, etc) podemos usar pass
para não "fazer nada"
while True:
pass
Vamos agora mostrar em maiores detalhes os tipos de dados em Python
"a" + "b"
é o mesmo que "ab"
*
" pode ser usado para repetir strings
"a" * 10
é o mesmo que "aaaaaaaaaa"
\n
é o mesmo que new line\t
é o mesmo que tab\\
é o mesmo que \\"
e \'
é o mesmo que "
e '
, respectivamenteformat
, split
, join
, strip
string[índice]
[início:fim:passo]
+
assim como fazemos com stringsappend
e extend
remove
pop
remove e retorna o último elemento da listadel
Veja mais na documentação oficial
in
keys()
retorna as chaves no dicionáriodel
para remover um par chave/valor do dicionáriofor
d.items()
para retornar uma "lista de pares" de chave e valor que pode ser usada em um for
, por exemplod = {"pi": 3.141592,
"e": 2.718282,
"número de ouro": 1.6180}
for chave, valor in d.items():
pass # Faça alguma coisa com a chave e o valor
Exemplo
set
def
fib?
no IPython ou help(fib)
return
return
retornam None
def calc_s(t, s0=0, v0=1, a=0.5):
"""Calcula posição final dados s0, v0, a e t."""
return s0 + v0*t + 0.5 * a * t**2
Nota: Não use tipos mutáveis para valores padrão
*
e/ou **
antes
do argumento final
def my_func(a, b, *args, **kwargs): # 'a' é um 'b' são parâmetros obrigatórios
print(a)
print(b)
# tupla de todos os parâmetros via posição
print(args)
# Dicionário com todos os parâmetros fornecidos via palavra chave
print(kwargs)
lambda variáveis: expressão
.py
my_funcs.py
contém
def dobra(x):
return 2*x
def triplica(x):
return 3*x
É possíve importar as definições do módulo my_funcs
precos = {"banana prata": 3.50,
"coco verde": 2.0,
"maçã nacional": 4.50,
"manga tommy": 5.0,
"uva red glob": 5.0}
minhas_compras = {"banana prata": 1.2,
"coco verde": 6,
"uva red glob": 0.6}
# Usa um list comprehension para gerar uma lista e soma os seus valores
conta = sum([precos[fruta] * minhas_compras[fruta] for fruta in minhas_compras])
print("Eu precisei pagar o total de R$ {0:.2f} em frutas".format(conta))
texto = '''"Aonde fica a saída?", Perguntou Alice ao gato que ria.
"Depende", respondeu o gato.
"De quê?", replicou Alice;
"Depende de para onde você quer ir..."'''
palavras = texto.split() # Separa o texto em uma lista de palavras
print("O texto tem {0} palavras, sendo {1} delas diferentes.".format(
len(palavras), # Número de palavras
len(set(palavras)) # Número de palavras únicas
))
bin
: converte para representação em base 2oct
: converte para representação em base 8hex
: converte para representação em base 16int('0b1010', base=2)
: converte a partir de uma base para um inteiro (em base 10)0b
, 0o
e 0x
x = 0o20
(20 em octal -> 16 em decimal)