Você está na página 1de 98

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))

Você também pode gostar