PYTHON
O QUE É ?
Python é uma linguagem de programação popular. Foi criado por Guido van Rossum, e
lançado em 1991.
É usado para:
desenvolvimento web (lado do servidor),
desenvolvimento de software
Matemática
Scripting do sistema.
CONCEITOS INICIAIS
Linguagem de programação fácil de aprender e poderosa
Natureza interpretada
Linguagem ideal para scripting e desenvolvimento rápido
O interpretador Python é facilmente estendido com novas funções e tipos de dados
implementados em C ou C++.
Python também é adequado como uma linguagem de extensão para aplicações
personalizáveis.
POR QUE PYTHON ?
Automação de tarefas
Disponível no Windows, Mac OS X, Unix e Linux
É uma linguagem de alto nível
É interpretada
Economiza tempo, porque não precisa de compilação ou vinculação (linking)
O interpretador pode ser usado de forma interativo
Comandos lidos em um terminal
Pode ser usado como uma calculadora
É extensível
PROGRAMAS COMPACTOS
Geralmente menores que outros equivalentes (C, C++ ou Java)
Os tipos de dados de alto nível permitem que você expresse operações complexas em uma
única declaração;
O agrupamento de declarações é feito por recuo em vez de parênteses iniciantes e finais;
Não são necessárias declarações variáveis ou de argumento.
PYTHON – POR QUE ESSE
NOME ?
Homenagem a um programa da BBC “Monty Python's Flying Circus”
CARACTERÍSTICAS
Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa,
orientada a objetos, funcional, de tipagem dinâmica e forte.
POR QUE ESCOLHER
PYTHON ?
Python funciona em diferentes plataformas (Windows, Mac, Linux, Raspberry Pi, etc).
Python tem uma sintaxe simples semelhante à língua inglesa.
Python tem sintaxe que permite aos desenvolvedores escrever programas com menos linhas do
que algumas outras linguagens de programação.
Python é executado em um sistema de intérprete, o que significa que o código pode ser
executado assim que for escrito. Isso significa que a prototipagem pode ser muito rápida.
Python pode ser tratado de forma processual, de forma orientada a objetos ou de forma
funcional.
VERSÕES
VERIFICANDO A VERSÃO
python --version
ARQUIVOS .PY
Python é uma linguagem interpretada
Os programas ficam em arquivos com extensão .py
Sintaxe para rodar um programa:
python NomeDoPrograma.py
Exemplo: ola.py
print(“ola mundo!”)
USANDO O INTERPRETADOR
Use o comando python no prompt para entrar
TIPAGEM DINÂMICA
Interpretador do Python infere o tipo dos dados
Tipo definido em runtime
TIPAGEM FORTE
Interpretador do Python avalia as expressões e não faz coerções automáticas entre tipos não
compatíveis
MOSTRAR MENSAGEM NA TELA /
INDENTAÇÃO
print("Hello, World!")
Usando um condição (modo certo)
if 5 > 1:
print(“5 é maior que 2”)
Usando um condição (modo errado)
if 5 > 1:
print(“5 é maior que 2”)
ERRADO!!! Tem ter recuo!
COMENTÁRIOS
Usados para:
Explicar o código
Para no processo de debug
COMENTÁRIOS
#This is a comment
# Esse é print("Hello, World!")
# um comentário
# de três linhas #This is a comment
#written in
#more than just one line
print("Hello, World!")
COMENTÁRIOS
Python ignora strings que não estão associadas a uma variável. Você pode usar uma string de
múltiplas linhas (com três aspas) no seu código.
"""
This is a comment
written in
Você pode fazer simplesmente assim:
more than just one line
""" """
print("Hello, World!")
Esse é
um comentário
de três linhas
"""
CRIANDO VARIÁVEIS
x = 5 # é um inteiro int
y = "John" # é uma string str
print(x)
print(y)
Uma variável é criada no momento que você atribui um valor.
O tipo é definido de forma dinâmica. Não preciso dizer de forma explícita o tipo.
As variáveis não precisam ser declaradas com nenhum TIPO específico, podendo até mesmo
mudar o tipo depois de definidas.
CASTING (CONVERSÃO)
Se você quiser especificar o tipo de dados de uma variável, isso pode ser feito com o casting.
x = str(3) # será '3'
y = int(3) # será 3
z = float(3) # será 3.0
OBTER O TIPO
Você pode obter o tipo de dados de um variável com a função type()
x = 5
y = "John"
print(type(x))
print(type(y))
STRINGS
As variáveis de string podem ser declaradas usando aspas
únicas ou duplas:
x = "John"
# é o mesmo que…
x = 'John'
PYTHON É CASE SENSITIVE
a = 4
A = "Sally"
São variáveis diferentes
NOMES DE VARIÁVEIS
Um nome variável deve começar com uma letra ou o caractere sublinhado
Um nome variável não pode começar com um número
Um nome variável só pode conter caracteres alfa-numéricos e sublinhados
(A-z, 0-9 e _ )
Os nomes variáveis são case sensitive (idade, idade e IDADE são três variáveis diferentes)
Nomes inválidos
myvar = "John"
my_var = "John"
2myvar = "John"
_my_var = "John"
my-var = "John"
myVar = "John"
my var = "John"
MYVAR = "John"
myvar2 = "John"
TÉCNICAS PARA
LEGIBILIDADE
Nomes de variáveis com mais de uma palavra podem ser difíceis de ler.
Camel Case
Cada palavra, exceto a primeira, começa com letra maiúscula
myVariableName = "John"
Pascal Case
Cada palavra começa com letra maiúscula
MyVariableName = "John"
Snake Case
Cada palavra é separada por um underscore (sublinhado)
my_variable_name = "John"
ATRIBUINDO VÁRIOS
VALORES
Python permite que você atribua valores a várias variáveis em uma linha
x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
E você pode atribuir o mesmo valor a várias variáveis em uma linha
x = y = z = "Orange"
print(x)
print(y)
print(z)
DESEMPACOTAMENTO
Se você tem uma coleção de valores. Python permite extrair os valores em variáveis. Isso se
chama de desempacotar.
No exemplo a seguir, desempacotamos uma lista.
fruits = ["apple", "banana", "cherry"]
x, y, z = fruits
print(x)
print(y)
print(z)
VARIÁVEIS DE SAÍDA
Para combinar texto e uma variável, Python usa o caractere:+
x =" legal"
print("Python é" + x)
x = "Python é "
y = " legal"
z = x + y
print(z)
Nesse próximo exemplo, o + é um operador matemático.
x = 5
y = 10
print(x + y)
VARIÁVEIS DE SAÍDA
Não posso juntar a string com o número:
x = 5
y = "John"
print(x + y)
ERRADO!
Só se fizer uma conversão:
print(str(x)+y)
CERTO!!!
VARIÁVEIS GLOBAIS
Variáveis que são criadas fora de uma função são conhecidas como variáveis globais.
Variáveis globais podem ser usadas por todos, tanto dentro das funções quanto fora.
x = " legal"
def myfunc():
print("Python é " + x)
myfunc()
VARIÁVEIS GLOBAIS
Se você criar uma variável com o mesmo nome dentro de uma função, esta variável será local, e
só pode ser usada dentro da função.
A variável global com o mesmo nome permanecerá como era, global e com o valor original.
x = "legal"
def myfunc():
x = " massa"
print("Python é " + x)
myfunc()
print("Python é " + x)
PALAVRA CHAVE: GLOBAL
Para criar uma variável global dentro de uma função, você pode usar a palavra-chave global
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
PALAVRA CHAVE: GLOBAL
Além disso, use a palavra-chave se quiser alterar uma variável global dentro de uma função
global
x = "awesome"
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
INDENTAÇÃO – BLOCO DE
CÓDIGO
Por exemplo, em C, um código teria a seguinte aparência:
if (x > 0) {
Comando1; Comando2;
}
Em Python, teríamos:
if x > 10:
Comando1
Comando2
BUILT-IN DATA TYPES
Text Type: str
Numeric Types: int, float, complex
Sequence Types: list, tuple, range
Mapping Type: dict
Set Types: set, frozenset
Boolean Type: bool
Binary Types: bytes, bytearray, memoryview
NÚMEROS
Existem três tipos numéricos em Python:
int
float
complex
x = 1 # int
y = 2.8 # float
z = 1j # complex
INT
int, ou inteiro, é um número inteiro, positivo ou negativo, sem decimais, de comprimento
ilimitado.
x = 1
y = 35656222554887711
z = -3255522
print(type(x))
print(type(y))
print(type(z))
FLOAT
"número de ponto flutuante" é um número, positivo ou negativo, contendo um ou mais
decimais.
x = 1.10
y = 1.0
z = -35.59
print(type(x))
print(type(y))
print(type(z))
FLUTUANTE
Também pode ser números científicos com um "e" para indicar a potência de 10.
x = 10e2
y = 2E3
z = -5E10
print(type(x))
print(type(y))
print(type(z))
COMPLEXO
Números complexos são escritos com um "j" como a parte imaginária:
x = 3+5j
y = 5j
z = -5j
print(type(x))
print(type(y))
print(type(z))
CONVERSÃO DE TIPO
NUMÉRICOS
Você pode converter de um tipo para outro com os métodos: int(), float(), complex()
#convert from int to float:
x = float(1)
#convert from float to int:
y = int(2.8)
#convert from int to complex:
z = complex(1)
print(x)
print(y)
print(z)
print(type(x))
print(type(y))
print(type(z))
CONVERSÃO DE TIPO
NUMÉRICOS
Não é possível converter um número complex em outro tipo
x=1+2j
z=int(1+2j)
Irá gerar um erro!
NÚMERO ALEATÓRIO
Python não tem uma função para fazer um número aleatório, mas python tem um módulo
embutido que pode ser usado para fazer números aleatórios
Veja como gerar um número aleatório entre 1 e 9. Note que o último numero da faixa (10) não
entra.
import random
print(random.randrange(1, 10))
PYTHON STRINGS
As strings em python são cercadas por aspas únicas ou aspas duplas.
'Olá' é o mesmo que "olá".
print("Hello")
print('Hello')
Você pode atribuir uma sequência de múltiplas linhas a uma variável usando três aspas:
a = """linha 1
Linha 2
linha 3."""
STRINGS SÃO VETORES
(ARRAYS)
Strings são vetores de bytes. Representando caracteres Unicode.
Python não tem um tipo para um único caractere. Para tanto, deve-se usar um string com tamanho 1.
Colchetes são usados para acessar um determinado elemento.
Lembre-se que o primeiro caractere tem a posição 0
Nesse exemplo pegamos o caractere na posição 1, ou seja, o valor e
a = "Hello, World!"
print(a[1])
Também podemos acessar um grupo de caracteres dentro da string.
Usando a[0:2] serão mostrados os 2 primeiros. Note que último índice (2) não entra.
É possível usar índices negativos
SLICING
Pega da posição 2 até a posição 4 (a posição 5 não entra)
b = "Hello, World!"
print(b[2:5])
Fazendo um slice do início
b = "Hello, World!"
print(b[:5])
Fazendo um slide até o final
b = "Hello, World!"
print(b[2:])
SLICING
Usando índices negativos
b = "Hello, World!"
print(b[-5:-2])
MODIFICANDO AS STRINGS
Método Função
len() Retorna o comprimento da string
strip() Remove espaços em branco do início ou do final da string
lower() Retorna a string em minúsculas
upper() Retorna a string em maiúsculas
replace() Substitui uma string pela outra
split() Divide a string em substrings
SPLIT COM MAIS DETALHES
string.split(separator, maxsplit)
separator: especifica o separador. Padrão é espaço em
branco
maxsplit. Quantas divisões fazer
SPLIT
txt = "hello, my name is Peter, I am 26 years old"
x = txt.split(", ")
print(x)
FORMATANDO STRINGS
O método format() coloca um string no lugar {}
age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))
ESCAPE CHARACTERS
Python usa a barra invertida \
X= "We are the so-called "Vikings" from the north.“
Errado
txt = "We are the so-called \"Vikings\" from the north.“
Correto
ESCAPE CHARACTERS
MÉTODOS PARA STRINGS
Primeira letra da frase fica maiúscula
txt = "hello, and welcome to my world."
x = txt.capitalize()
print (x)
MÉTODOS PARA STRINGS
Similar ao lower()
txt = "Hello, And Welcome To My World!"
x = txt.casefold()
print(x)
MÉTODOS PARA STRINGS
Centraliza o texto.
No exemplo, será considerado um espaço de 20 caracteres
txt = "banana"
x = txt.center(20)
print(x)
MÉTODOS PARA STRINGS
Centraliza o texto.
O caracter padrão de preenchimento é o espaço vazio, mas pode ser
outro.
No exemplo, será considerado um espaço de 20 caracteres
txt = "banana"
x = txt.center(20, "x")
print(x)
MÉTODOS PARA STRINGS
Conta o número de vezes que uma string aparece
No exemplo, conta o número de vezes que aparece “apple”
txt = "I love apples, apple are my favorite fruit"
x = txt.count("apple")
print(x)
MÉTODOS PARA STRINGS
Sintaxe mais geral
string.count(value, start, end)
Value: valor que será buscado
start: posição de início da busca (padrão é 0)
End: posição final da busca (padrão é final da stringa)
txt = "I love apples, apple are my favorite fruit"
x = txt.count("apple", 10, 24)
print(x)
OUTROS MÉTODOS
encode(): codifica uma string usando uma determina codificação
endwith(): verifica se a string termina com uma determinada substring
startwith(): verifica se a string inicio com uma determinada substring
expandtabs(): defina o espaçado de um tab
find(): retorna a posição de uma substring. Gera -1 se nenhum valor for encontrado.
index(): similar ao find, mas gerar um exceção se nenhum valor for encontrado.
isalnum(): verdadeiro se o valor for um alfanumérico (a-z, 0-9)
isdecimal(): verdadeiro se todos os caracteres são decimais (0-9)
islower(): verdadeiro se todos os caracteres são minúsculas
isupper: verdadeiro se todos os caracteres são maiúsculas
CONSTRUTORES
A conversão (casting) é feita usando construtores.
int() - constrói um número inteiro a partir de um literal inteiro, literal flutuante
(arredondando para baixo), sequência de caracteres (fornecendo a sequência representa um
número inteiro)
float() - constrói um número flutuante a partir literal inteiro, um literal flutuante ou um literal
de string (fornecendo a string que representa um float ou um inteiro)
str() - constrói uma string
CASTING
x = int(1) # x will be 1
y = int(2.8) # y will be 2
z = int("3") # z will be 3
x = float(1) # x will be 1.0
y = float(2.8) # y will be 2.8
z = float("3") # z will be 3.0
w = float("4.2") # w will be 4.2
x = str("s1") # x will be 's1'
y = str(2) # y will be '2'
z = str(3.0) # z will be '3.0'
VALORES BOOLEANOS
Em Python são:
True
False
print(10 > 9)
print(10 == 9)
print(10 < 9)
Para avaliar uma expressão, podemos usar a função bool()
VALORES BOOLEANOS
Para avaliar uma expressão, podemos usar a função bool()
print(bool("Hello"))
print(bool(""))
print(bool(" "))
print(bool(15))
print(bool(0))
print(bool(-1))
TIPOS DE SEQUÊNCIA
Range
List
Tuple
LISTA
Uma lista contém itens separados por vírgulas e entre colchetes
Podem ser de tipos diferentes
O último elemento possui índice -1
Lista = [ 'nome', 25, 32]
print(Lista[0])
print(Lista[-1])
print(Lista[-2])
LISTA
Também podemos usar : para acessar os valores em uma lista.
O comando print(Lista[1:3]) irá imprimir os elementos começando do segundo até o terceiro
(Ou seja, o quarto elemento, que possui índice 3, não será incluído na saída).
Já um comando como print(Lista[2:]) irá imprimir todos os elementos começando pelo
terceiro da lista.
Lista = [ 'nome', 25, 32]
print(Lista[1:3])
print(Lista[2:])
print(Lista[0:])
LISTA
O sinal de mais (+) é o operador de concatenação da lista e o asterisco (*) é o operador de
repetição.
O comando print(2*Lista) irá imprimir a lista duas vezes
Lista = [ 'nome', 25, 32]
Lista = Lista + [10]
print(2*Lista)
TUPLA
Diferentemente das listas, as tuplas são colocadas entre parênteses
Tuplas não pode ter seus valores alterados.
tupla = ('nome', 25, 32)
print(tupla)
print(tupla[0])
print(tupla[-1])
print(tupla[0:2])
print(tupla[0:])
RANGE
Muito utilizada junto com um “for”.
Possui duas formas de chamada.
Na primeira, podemos fazer simplesmente: range(stop). Onde stop é quantidade de números
que serão gerados, começando do zero.
Assim, por exemplo, range(3) irá gerar uma faixa com valores 0,1, 2.
RANGE
Outra forma é especificar o início da sequência, o ponto de parada e o passo (incremento). O
passo é o valor que será somando para ir formando a sequência de números. Assim, a sintaxe
é:
range(start, stop, step)
start: Número inicial da sequência.
stop: Gera números até, mas não incluindo esse número.
step: Diferença entre cada número na sequência. É o passo
OPERADORES (A=10 E B=30)
Operador Descrição Exemplo
+ Adiciona valores a + b = 40
- Subtrai valores a - b = -20
* Multiplica valores a * b = 300
/ Divide valores b/a=3
% Resto da divisão b% a = 0
** Potência a ** b = 10 elevado a 30
// Divisão de desconsiderando 9 // 2 = 4
casas decimais. Se for negativo, é
-11 // 3 = -4
arredondado para cima.
OPERADORES DE
COMPARAÇÃO
Operador Descrição Exemplo
== Igualdade (a == b)
!= Diferente (a != b)
> Maior que (a > b)
< Menor que (a < b)
>= Menor ou igual (a >= b)
<= Maior ou igual (a <= b)
OPERADORES DE ATRIBUIÇÃO
OP Descrição Exemplo
= Atribui valores c=a+b
+= Adiciona a própria variável c += a
c=c+a
-= Subtrai da própria variável c -= a
c=c–a
*= Multiplica usando a própria variável c *= a
c=c*a
OPERADORES LÓGICOS
Operador Descrição Exemplo
and AND lógico (a and b)
or OR lógico (a ou b)
not NOT lógico Not (a and b)
OPERADORES DE
ASSOCIAÇÃO
Operador Descrição Exemplo
in Avalia se um valor está dentro
x in y
de uma lista de valores
not in Avalia se um valor não está x not in y
dentro de uma lista de valores
VERIFICAR STRING
Para verificar se uma determinada frase ou caractere está presente
em uma sequência, podemos usar a palavra-chave in
txt = "The best things in life are free!"
print("free" in txt)
OPERADOR DE IDENTIDADE
Operador Descrição Exemplo
is Avalia se as variáveis apontam
para o mesmo objeto x is y
is not Avalia se as variáveis não apontam
para o mesmo objeto x is not y
ESTRUTURA DE DECISÃO
a=2
b=3
if a < b :
print(a)
USO DO IF
Iguais: a == b
Não é igual: a != b
Menor que: a < b
Menor ou igual: a <= b
Maior que: a > b
Maior ou igual: a >= b
USO DO IF
a = 33
b = 200
if b > a:
print("b é maior que a")
(CESPE/Agente/Polícia Federal/2018) Julgue o próximo item, relativo a noções de programação
Python e R.
Considere o programa a seguir, na linguagem Python.
if 5 > 2 {
print("True!")
}
ERRADO!
USO DO ELIF
a = 33
b = 33
if b > a:
print("b é maior que a")
elif a == b:
print("a e b são iguais")
USO DO ELSE
a = 200
b = 33
if b > a:
print("b é maior que a")
elif a == b:
print("a e b são iguais")
else:
print("a é maior que b")
SÓ COM ELSE
a = 200
b = 33
if b > a:
print("b maior que a")
else:
print("b não é maior que a")
SÓ UMA LINHA
Se você tiver apenas uma instrução para executar, você pode
colocá-la na mesma linha
if a > b: print("a is greater than b")
a = 2
b = 330
print("A") if a > b else print("B")
USANDO AND
a = 200
b = 33
c = 500
if a > b and c > a:
print("Both conditions are True")
USANDO OU
a = 200
b = 33
c = 500
if a > b or a > c:
print(“Pelo menos uma condição é verdade")
SE ANINHADO
x = 41
if x > 10:
print("Above ten")
if x > 20:
print("and also above 20!")
else:
print("but not above 20.")
LOOPS
i = 1
while i < 6:
print(i)
i += 1
USO DO BREAK
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
USO DO CONTINUE
Para a iteração atual, e continuar com a próxima:
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
USO DO FOR
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
RANGE
range(start, stop, step)
start: Número inicial da sequência.
stop: Gera números até, mas não incluindo esse número.
step: Diferença entre cada número na sequência.
for a in range(11):
print(a)
for k in range(3, -4,-1):
print(k)
for k in range(0, 5,2):
print(k)
LOOPING ATRAVÉS DE UMA
STRING
for x in "banana":
print(x)
FUNCOES
def my_function():
print("Hello from a function")
Função com argumentos
def my_function(fname):
print(fname + " alguma coisa")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
VALORES DE RETORNO
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))