SlideShare uma empresa Scribd logo
1 de 157
Programação em Python
Comentários #, ‘’’ ‘’’,””” “””
Simbolos para os comentários
print(123) # comentario
#pode-se fazer comentarios com 3 aspas no inicio e no fim
“ “ “ docstring
pode ser feito assim 3 aspas duplas
“ “ “
‘ ‘ ‘ tambem se pode usar para comentar
usando 3 aspas simples ’ ‘ ‘
print(456)
Separadores – sep, end, r, n
Exemplos:
print(12, 34, 1011, sep="-", end="#n##")
print(56, 78, sep='-', end='n’)
print(9, 10, sep="-“)
Resultado: 12-34-1011#
##56-78
9-10
Aspas Simples & Aspas Duplas
Exemplos:
print('Jorge’)
print("Jorge")
print(1, "Jorge ‘Martins’")
print(2, ‘Jorge “Martins“ ’)
Números Inteiros
Exemplos:
print (11)
Resultado: 11
print (-11)
Resultado: -11
print(0)
Resultado: 0
Números Decimais
Exemplos
print(1.5, 10.05)
Resultado: 1.5 10.5
print (0.0, -1.43)
Resultado: 0.0 -1.43
Type – verifica o tipo de variável
Exemplo:
print(type("0"))
Resultado: <class ‘str'>
print(type(1), type(1.2), type("-2"))
Resultado: <class ‘int'> <class ‘float'> <class ‘str'>
Valores Booleanos
Exemplo:
print (10 == 10)
Resultado: True
print (10 == 11)
Resultado: False
Exemplo:
print (type(10 == 10))
Resultado :<class 'bool'>
print (type(10 == 11))
Resultado: <class 'bool'>
Conversão de valores
Exemplo:
print(1 + 1)
Resultado: 2
print ('1' + 1)
Resultado: 11
print('a' + 'b’)
Resultado: ab
print (int('1') + 1)
Resultado: 2
print (float('1.2') + 1)
Resultado: 2.2
print (type(float('1.2') + 1))
Resultado:<class ‘float’>
print (int('1’))
Resultado: 1
print (str(11) + 'b’)
Resultado: 11b
Variáveis
Variáveis –são usadas para guardarem valores em memória
nome_completo = 'Jorge Costa Martins'
soma_dois_mais_dois= 2 + 2
print(nome_completo, soma_dois_mais_dois)
Resultado: Jorge Costa Martins 4
Faça o exercício e veja o resultado
nome = "Jorge“
idade = 55
maior_de_idade = idade >= 18
print("Nome:", nome,"Idade:",idade)
print('É maior de idade?',maior_de_idade)
Elabore o exercício e veja o resultado
Defina as variaveis para a resolução do exercício
print('Nome:', nome)
print('Sobrenome:', sobrenome)
print('Idade:', idade)
print('Ano de nascimento:', ano_nascimento)
print('É maior de idade:', maior_de_idade)
print ('Altura:', altura)
Resolução:
nome = "Jorge"
sobrenome= "Martins"
idade = 55
ano_nascimento = 2023 - idade
maior_de_idade = idade >= 18
altura = 1.87
Operadores
adicao = 10 + 10
print('Adição:', adicao)
subtracao = 10 - 5
print('Subtração:', subtracao)
multiplicacao = 10 * 10
print('Multiplicação:', multiplicacao)
divisao = 10 / 2.2 #float
print('Divisão:', divisao)
divisao_inteira = 10 // 2.2
print('Divisão inteira:', divisao_inteira)
exponenciacao = 2 ** 10
print('Exponenciação:', exponenciacao)
resto_divisao = 55 % 2
print('Resto da divisão:', resto_divisao)
Precedencia dos operadores
1. (n+n)
2. **
3. * / // %
4. + -
Exercícios:
conta_1 = 1 + 1 ** 5 + 5
print(conta_1)
Resultado: 7
Primero faz 1 ** 5 que é igual a 1 e depois executa as somas
conta_1 = (1 + 1) ** (5 + 5)
print(conta_1)
Resultado: 1024
Ou
conta_2 = (1 + int(0.5 + 0.5)) ** (5 + 5)
print(conta_2)
Resultado: 1024
Exercício: Calcule o seu IMC
nome = "Jorge Martins"
peso = 101
altura = 1.90
imc= peso / altura ** 2 #... IMC = peso / (altura * altura)
print(nome, 'tem', altura, 'altura,n', 'pesa', peso,'Kgs','e o seu IMC é n',imc)
Resultado
Jorge Martins tem 1.9 altura
pesa 101 Kgs e o seu IMC é
27.977839335180057
Formatação de caracteres
nome = "Jorge Martins"
peso = 101
altura = 1.90
imc = peso / altura ** 2 #... IMC = peso /
(altura * altura)
print(nome, 'tem', altura, 'altura')
print('pesa', peso,'Kgs','e o seu IMC é',)
print(imc)
print ("Com formatação de strings (F-Strings)")
linha_1 = f'{nome} tem {altura:.2f} altura'
linha_2 = f'pesa {peso:.2f} Kgs e o seu IMC é'
linha_3 = f'{imc:.2f}’
print(linha_1)
print(linha_2)
print(linha_3)
Instrução Input
A instrução INPUT serve para carregar valores numa variavel
Exemplo:
nome = input (‘Qual o seu nome? ‘)
print (f’O seu neome é {nome}’)
Nota: O python interpreta todos os carregamentos de valores para uma variável
como uma string
Exercício:
Faça a soma de dois valores em python
Resolução:
valor1 = input(‘Introduza o valor 1: ‘)
valor2 = input(‘Introduza o valor 2: ‘)
valor1_int = int(valor1)
valor2_int = int(valor2)
total = valor1_int + valor_2
Print (‘a soma dos dois valores é ‘,total)
Exercício
Escreva um programa para calcular a redução do tempo de
vida de um fumador. Pergunte a quantidade de cigarros
fumados por dia e quantos anos ele já fumou. Considere que
um fumador perde 10 minutos de vida a cada cigarro,
calcule quantos dias de vida um fumador perderá. Mostre o
total em dias.
Resolução:
cigarros_por_dia = int(input("Quantidade de cigarros por dia:"))
anos_fumador = float(input("Quantidade de anos fumador:"))
redução_em_minutos = anos_fumador * 365 * cigarros_por_dia * 10
# Um dia tem 24 x 60 minutos
redução_em_dias = redução_em_minutos / (24 * 60)
print(f’Redução do tempo de vida {redução_em_dias:.3f}’)
Estrutura IF / IF ELSE / IF ELIF ELSE
Exercício
Escreva um programa para aprovar o empréstimo bancário para compra
de uma casa. O programa deve perguntar o valor da casa a comprar, o
salário e a quantidade de anos a pagar. O valor da prestação mensal não
pode ser superior a 30% do salário. Calcule o valor da prestação como
sendo o valor da casa a comprar dividido pelo número de meses a pagar.
Resolução:
valor = float(input("Digite o valor da casa: "))
salário = float(input("Digite o salário: "))
anos = int(input("Quantos anos para pagar: "))
meses = anos * 12
prestacao = valor / meses
if prestacao > salário * 0.3:
print("Infelizmente você não pode obter o empréstimo")
else:
print(f"Valor da prestação: € {prestacao:,.2f} Empréstimo OK")
Exercício
introduz=input('Deseja "Entrar ou "sair"')
if introduz == "entrar":
print("Conseguiu entrar")
elif introduz == "sair":
print("Conseguiu sair")
else:
print('Não digitou nenhuma palavra')
Exercício
condicao1 = False
condicao2 = False
condicao3 = False
condicao4 = False
if condicao1:
print("Código para condição 1")
elif condicao2:
print('Código para condição 2')
elif condicao3:
print('Código para a condição 3')
elif condicao4:
print('Código para a condição 4')
else:
print('Não tem condição')
if 10 == 10:
print('Outro if')
print('fora do if')
Exercício :
Introduza dois valores e valide qual o maior e se são iguais
Resolução:
primeiro_valor = input('Introduza o primero valor: ')
segundo_valor = input('Introduza o segundo valor: ')
if primeiro_valor > segundo_valor:
print (f'O primeiro valor {primeiro_valor} é maior que o segundo
valor{segundo_valor}')
elif segundo_valor > primeiro_valor:
print (f'O segundo valor {segundo_valor} é maior que o primeiro valor
{primeiro_valor}')
else:
print ('São iguais')
Operador AND
escolha = input('[E]ntrar ou [S]air: ')
senha = input('Introduza a senha: ')
senha_val='1234'
if escolha =='E' and senha ==senha_val:
print('Entrou no Sistema')
elif escolha == 'S':
print ('Saiu do Sistema')
elif (escolha != 'E' or escolha !='S') and senha==senha_val:
print ('Errou na Escolha!!')
elif (escolha == 'E' or escolha == 'S') and senha!=senha_val:
print ('Errou na senha')
Exemplo1
entrada = input(‘ [E]ntrar [S]air: ‘)
senha_digitada = input(‘Senha: ‘)
senha_permitida = ‘123456’
if ( entrada == ‘E’ or entrada ==’e’) and senha_digitada
==senha_permitida:
print(‘Entrar’)
else:
print (‘Sair’)
Operador OR
Exemplo 2
senha = input(‘senha: ‘) or ‘Sem senha’
print (senha)
Exemplo:
senha = input (‘Senha: ‘)
If not senha:
Print (‘Não digitou nada’)
Operador NOT
Strings têm posicões que começam por zero
0 1 2 3 4
J O R G E
-5 -4 -3 -2 -1
Exercício 1
Mostrar o conteudo de uma posição da string:
Nome = ‘Jorge’
Print (nome[2]) resultado O
Print(nome[-4]) resultado O
Operador IN e NOT IN
Exercício 2
Ver se está uma letra ou conjunto de letras estão na string?
Print (‘rg’ in nome)
Resultado: TRUE
Exercícioo 3
Determinar se o que se procura está numa string
nome= input(‘Digite o seu nome: ‘)
encontrar=input(‘Digite o que deseja encontrar? ‘)
If encontrar in nome:
Print(f’{encontrar} está em {nome})
Else:
Print (f’{encontrar} não está em {nome})
Interpolação de Strings
s - srting
d e i - int
f - float
x e X – Hexadecimal
Simbolo - %
Exercício: Mostrar só uma variavel
nome = 'Jorge'
preco = 1243.534
variavel = '%s o preço é €1243.534' %nome
print (variavel)
Nota: Atenção ao simbolo a à variável
%s PORQUE É UMA STRING
Interpolação de Strings
Exercício: Mostrar duas variáveis
nome = 'Jorge'
preco = 1243.534
variavel = '%s o preço é €%.2f' %(nome, preco)
print (variavel)
Resultado: Jorge o preço é €1243.53
Interpolação de Strings
print ('O hexadecimal de %d é %x' % (15 , 15))
Resultado: O hexadecimal de 15 é f
Nota: se o x for maiusculo o f será maiusculo
Interpolação de Strings
Mostra com preenchimento de 4 ou 8 casas com valor zero
print ('O hexadecimal de %d é %08X' % (1500 , 1500))
Resultado: O hexadecimal de 1500 é 000005DC
Interpolação de Strings
Formatação básica de STRINGS
Simbolos para formatação
d - int
f - float
.<numero de digitos>f
x ou X - Hexadecimal
(Caractere)(><^)(quantidade)
> - Esquerda espaços ou preenchimento
< - Direita
^ - Centro
Sinal + ou -
variavel = 'ABC'
print (f'{variavel}’)
Preencher com 10 caractreres de espaços a esquerda
print (f'{variavel: >10}’)
Preencher com 10 caractreres de espaços a direita
print (f'{variavel: <10}’)
Preencher com 10 caractreres de espaços mas centra a str
print (f'{variavel: ^10}’)
Formatação básica de STRINGS
Pode-se preencher com qq caracter
print (f'{variavel:*^10}’)
Casas decimais
print (f'{1000.526536337257:.2f}’)
Só apresenta o sinal positivo se o numero for positivo
print (f'{-1000.526536337257:+.2f}')
Formatação básica de STRINGS
Fatiamento de Strings
variavel = 'Olá Mundo'
print(variavel[3])  Apresenta a letra á
Fatiamento da strting
[i:f:p] i - início f - fim p - passo
print (variavel[4:7])  Apresenta do índice 4 até ao índice 6
Resultado: _Mu
print (variavel[4:])  Apresenta até ao fim (omitir o fim)
Resultado: _Mundo
print (variavel[:5])  Apresenta até 4(omitir o inicio)
Resultado: Olá_
print(len(variavel))  Apresenta a quantidade de caractereres
Resultado: 9
print(variavel[0:9:2])  Apresenta a str de 2 em 2
Resultado: OáMno
print(variavel[::-1])  Apresenta invertida a str
Resultado: odnuM álO
print(variavel[-1:-10:-1])  Apresenta invertida a str
Resultado: odnuM álO
Fatiamento de Strings
Exercício
Exercicio:
Digite o seu nome e a sua idade.
Se o nome e idade forem digitados
Exiba:
O meu nome é {nome}
O neome invertido é {nome invertido}
O nome contém ou não espaços
O neome tem {n} letras
A primeira letra do nome é {letra}
A última letra do nome é {letra}
se nada for digitado em nome ou idade:
Exiba "Desculpe, madeixou campos vazios."
nome = input('Escreva o seu nome: ')
idade = input ('Escreva a sua idade: ')
if nome and idade:
print (f'O meu nome é {nome}')
print ('O meu nome é ', nome[::-1])
print (f'O meu nome é {nome[::-1]}')
if ' ' in nome:
print ('O nome contém espaços')
else:
print('O nome NÃO contém espaços')
print (f'O nome tem {len(nome)} letras')
print(f'A primeira letra do nome é {nome[0]}')
print(f'A última letra do nome é {nome[-1]}')
else:
print('Desculpe, mas deixou campos vazios.')
Resolução
TRY / EXCEPT
Exercicio:
numero_str=input ('introduza um valor : ')
numero_float = float(numero_str)
print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
numero_str=input ('introduza um valor : ‘)
print(numero_str.isdigit()) #VÊ se foi digitado um valor
numero_float = float(numero_str)
print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
TRY / EXCEPT
numero_str=input ('introduza um valor : ')
if (numero_str.isdigit()):
numero_float = float(numero_str)
print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
else:
print('Isso não é um numero')
TRY / EXCEPT
numero_str=input ('introduza um valor : ')
try:
print('STR: ',numero_str)
numero_float = float(numero_str)
print('FLOAT: ', numero_float)
print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
except:
print('Isso não é um numero')
Exercício 1
Faça um programa que peça ao usuário para digitar um número inteiro,
informe se este número é par ou ímpar. Caso o usuário não digite um número
inteiro, informe que não é um número inteiro.
Faça um programa que pergunte a hora ao usuário e, baseando-se no horário
descrito, exiba a saudação apropriada. Ex.
Bom dia 0-11, Boa tarde 12-17 e Boa noite 18-23.
Exercício 2
Exercício 3:
Faça um programa que peça o primeiro nome do usuário.
Se o nome tiver 4 letras ou menos
escreva "Seu nome é curto";
se tiver entre 5 e 6 letras,
escreva "Seu nome é normal";
maior que 6
escreva "Seu nome é muito grande".
Exercício 3
Resolução Exercício 1
entrada = input('Digite um número: ')
if entrada.isdigit():
entrada_int = int(entrada)
par_impar = entrada_int % 2 == 0
par_impar_texto = 'ímpar'
if par_impar:
par_impar_texto = 'par'
print(f'O número {entrada_int} é {par_impar_texto}')
else:
print('Você não digitou um número inteiro')
Resolução Exercício 1
entrada = input('Digite um número: ')
try:
entrada_int = float(entrada)
par_impar = entrada_int % 2 == 0
par_impar_texto = 'ímpar'
if par_impar:
par_impar_texto = 'par'
print(f'O número {entrada_int} é {par_impar_texto}')
except:
print('Você não digitou um número inteiro')
Resolução Exercício 2
entrada = input('Digite a hora em números inteiros: ')
try:
hora = int(entrada)
if hora >= 0 and hora <= 11:
print('Bom dia')
elif hora >= 12 and hora <= 17:
print('Bom tarde')
elif hora >= 18 and hora <= 23:
print('Bom noite')
else:
print('Não conheço essa hora')
except:
print('Por favor, digite apenas números inteiros')
Resolução Exercício 3
nome = input('Digite seu nome: ')
tamanho_nome = len(nome)
if tamanho_nome > 1:
if tamanho_nome <= 4:
print('Seu nome é curto')
elif tamanho_nome >= 5 and tamanho_nome <= 6:
print('Seu nome é normal')
else:
print('Seu nome é muito grande')
else:
print('Digite mais de uma letra.')
Operadores de atribuição
= += -= *= /= //= **= %=
variavel = 3
variavel += 2  Resultado: 5
variavel -= 2  Resultado: 1
varialvel *= 2  Resultado: 6
variavel /= 2  Resultado: 1.5
variavel //= 2  Resultado 1
variavel **= 2  Resultado: 9
variavel %= 2  Resultado: 1
While
While  Estrutura de repetição com condição, isto é, repete
um conjunto de instruções até a condição for
falsa.
Exemplo: condicao=True
While condicao:
Instrução
Atenção:Isto gera um ciclo infinito
Break
Break  Interrompe o ciclo while
Exemplo:
While condicao:
Instrução
break
Outra forma de paragem da estrutura
Exemplo:
While condicao:
print(‘ABC’)
if condicao
break
Exemplo:
Condicao = True
While condicao:
nome=input(‘Introduza o nome: ‘)
print(f‘O seu nome é {nome}’)
if nome == ‘sair’
break
Print(‘ACABOU’)
Break
Controlar o ciclo com uma variavel
contador = 0
while contador <= 10:
contador = contador + 1
print(contador)
print('Acabou')
Break
Continue
(Salta)
Exemplo: Não mostra o valor 6
contador = 0
while contador <= 20:
contador += 1
if contador == 6:
print('Não vou mostrar o 6.')
continue
print(contador)
print('Acabou')
Exemplo: Não mostra o valor entre 0 10 e 0 27
contador = 0
while contador <= 40:
contador += 1
if contador >= 10 and contador <= 27:
print('Não vou mostrar o', contador)
continue
print(contador)
print('Acabou')
Continue
(Salta)
Exemplo: Não mostra o valor 6, entre o 10 e o 27 e termina no 40
contador = 0
while contador <= 100:
contador += 1
if contador == 6:
print('Não vou mostrar o 6.')
continue
if contador >= 10 and contador <= 27:
print('Não vou mostrar o', contador)
continue
print(contador)
if contador == 40:
break
print('Acabou')
Continue
(Salta)
While aninhado - Exemplo
qtd_linhas = 5
qtd_colunas = 5
linha = 1
while linha <= qtd_linhas:
coluna = 1
while coluna <= qtd_colunas:
print(f'{linha=} {coluna=}')
coluna += 1
linha += 1
print('Acabou')
Exercício 1
Crie uma string com o seu nome e reescreva essa string novamente mas com um *
entre cada letra.
Exemplo:
Nome = ‘Jorge’
Novo_nome = ‘*J*o*r*g*e*’
Resolução
nome = ‘Jorge Martins' # Iteráveis
indice = 0
novo_nome = ‘ ‘
while indice < len(nome):
letra = nome[indice]
novo_nome += f‘*{letra}‘
indice += 1
novo_nome += ‘ * ’
print(novo_nome)
Exercício 2
Elabore um programa para efetuar as 4 operações validando
todos os dados de entrada!
Resolução Parte I
""" Calculadora com while """
while True:
print('nummmmm')
#########
sair = input('Quer sair? [s]im: ')
sair_mn = sair.lower() #transforma a string em minusculas
print(sair_mn)
sair_f = sair_mn.startswith('s’) #vê se começa por um s
print(sair_f)
if sair_f is True:
break
Parte 1 - Simplificada
""" Calculadora com while """
while True:
print('nummmmm')
#########
sair = input('Quer sair? [s]im: ').lower().startswith('s')
if sair is True:
break
Parte II
""" Calculadora com while """
while True:
numero_1 = input('Digite um número: ')
numero_2 = input('Digite outro número: ')
operador = input('Digite o operador (+-/*): ')
numeros_validos = None
try:
num_1_float = float(numero_1)
num_2_float = float(numero_2)
numeros_validos = True
except:
numeros_validos = None
if numeros_validos is None:
print('Um ou ambos os números digitados são inválidos.')
continue
operadores_permitidos = '+-/*'
if operador not in operadores_permitidos:
print('Operador inválido.')
continue
if len(operador) > 1:
print('Digite apenas um operador.')
continue
###
sair = input('Quer sair? [s]im: ').lower().startswith('s')
if sair is True:
break
Parte III
while True:
numero_1 = input('Digite um número: ')
numero_2 = input('Digite outro número: ')
operador = input('Digite o operador (+-/*): ')
numeros_validos = None
num_1_float = 0
num_2_float = 0
try:
num_1_float = float(numero_1)
num_2_float = float(numero_2)
numeros_validos = True
except:
numeros_validos = None
if numeros_validos is None:
print('Um ou ambos os números digitados são
inválidos.')
continue
operadores_permitidos = '+-/*'
if operador not in operadores_permitidos:
print('Operador inválido.')
continue
if len(operador) > 1:
print('Digite apenas um operador.')
continue
if operador =='+':
print(f'{num_1_float} + {num_2_float} = ', num_1_float + num_2_float)
elif operador =='-':
print(f'{num_1_float} - {num_2_float} = ', num_1_float - num_2_float)
elif operador =='/':
print(f'{num_1_float} / {num_2_float} = ', num_1_float / num_2_float)
elif operador =='*':
print(f'{num_1_float} * {num_2_float} = ', num_1_float * num_2_float)
sair = input('Quer sair? [s]im: ').lower().startswith('s')
if sair is True:
break
Desafio
Qual a letra que apareceu mais vezes e o número de vezes
numa string?
Resolução do Desafio
frase = ‘A Programação está a ficar
complicada'
i = 0
qtd_apareceu_mais_vezes = 0
letra_apareceu_mais_vezes = ''
while i < len(frase):
letra_atual = frase[i]
if letra_atual == ' ':
i += 1
continue
if qtd_apareceu_mais_vezes <
qtd_apareceu_mais_vezes_atual:
qtd_apareceu_mais_vezes =
qtd_apareceu_mais_vezes_atual
letra_apareceu_mais_vezes = letra_atual
i += 1
print(
'A letra que apareceu mais vezes foi '
f'"{letra_apareceu_mais_vezes}" que apareceu '
f'{qtd_apareceu_mais_vezes}x'
FOR IN
Sintaxe:
For variavel in lista de valores:
Instrução 1
Instrução 2
.
.
Instrução N
resto do programa
1 – O corpo do ciclo está indentado
2 – Enquanto não percorremos todos os valores:
2.1 – a variável toma o próximo valor na lista
2.2 – executa o corpo do ciclo.
3 – Depois do último valor:
a execução continua no resto programa
Exemplo
nome = “JORGE”
For letra in nome:
Print (letra)
Resultado:
J
O
R
G
E
Range (start, stop, step)
Exemplo:
Numero = range(10)  numeros de zero até 10
Numero = range(5,10)  começa em 5 e termina no 9
Numero = range(1,10,2)  começa em 1 termina no 9 de dois em dois
FOR IN RANGE
FOR IN RANGE
Nota no ciclo for não vai buscar o indice mas sim o valor
Exemplo
Numero = range(10)
For valor in numero:
Print(valor)
Resultado: 0,1,2,3,4,5,6,7,8,9
Exemplo
Numero = range(0,10,2)
For valor in numero:
Print(valor)
Resultado: 0,2,4,6,8
Exercício
Escreva um programa que leia duas strings e gere uma terceira com os
caracteres comuns às duas strings lidas.
1ª string: AAACTBF
2ª string: CBT
Resultado: CBT A ordem dos caracteres da string gerada não é
importante, mas deve conter todas as letras comuns a ambas.
Lista é considerada uma matriz ou um array.
Lista pode ter vários typos de dados.
Pode inserir visualizar alterar apagar – (CRUD)
Deve-se inserir e apagar os itens do fim
Listas
Listas
Sintaxe:
Nomes = [‘Ana’, ‘António’, ‘Chico’, ‘Joana’]  Lista de nomes
Comando:
Print(nomes)  Aparecem os nomes todos da lista
Vazia = []  Lista vazia
Comando
Print(vazia)  Aparece os parentises retos
Comando
Print (nomes, type(nomes)  Aparecem os nomes todos e o tipo da variavel LIST
L
ista = [123, true, ‘Rui Marcolino’, 1.2, [] ]
Comando
Print(lista)  Aparece a lista [123, true, ‘Rui Marcolino’, 1.2]
Listas
Acesso a um item da Lista
lista = [123, true, ‘Rui Marcolino’, 1.2]
Comando para ter acesso a um item
Print(lista[2])  Mostra o que está na posição 2: Rui Marcolino
Para ver o tipo de variavel
Print(lista[2], type(lista[2])  Rui Marcolino <class ‘str’>
Usar um método para colocar o nome em Maiusculas
Print(lista[2].upper(), type(lista[2])  RUI MARCOLINO <class ‘str’>
Alterar um item da Lista
lista = [123, true, ‘Rui Marcolino’, 1.2, [] ]
Lista[2]= ‘Jorge Costa’
A lista fica
lista = [123, true, ‘Jorge Costa’, 1.2, [] ]
Listas
lista1 = [10, 20, 30 ,40]
Pode-se ler da listaum valor e atribuir a uma variavel
Numero = lista1[2]
Print (numero)
Alterar, Apagar
lista1 = [10, 20, 30 ,40]
Alterar um valor da lista
lista1[2] = 300  altera o valor da posição 2
Resultado: lista1 = [10, 20, 300 ,40]
Apaga um valor da lista
Del(lista1[2])  apaga o valor que foi ultimamente alterado o numero 300
Resultado:lista1 = [10, 20 ,40] reordena toda a lista alterando também o índice
Adiciona valores no final da lista
Append
Usar o método APPEND
Lista1 = [10, 20, 30, 40]
Executar o método
lista1.append(50)
lista1.append(60)
lista1.append(70)
Print (lista1)
Resultado: [10, 20, 30, 40, 50, 60, 70]
Remoção – método pop()
lista1 = [10, 20, 30, 40, 50, 60, 70]
lista1.pop()
Resultado: [10, 20, 30, 40, 50, 60]
Se fizer o seguinte
ultimo_valor=lista1.pop()
Print(lista1, ‘Removido, ‘, ultimo_valor
Resultado: [10, 20, 30, 40, 50] Removido, 60
Método CLEAR
lista1=[10, 20, 30, 40, 50]
Se fizer o seguinte
ultimo_valor=lista1.pop(2)
Print(lista1)
Resultado: [10, 20, 40, 50]
Clear - Limpa a lista
Comando:
lista1.clear()  Limpa a lista
INSERT
Insere um valor num determinado indice
lista1=[10, 20, 30, 40, 50]
Comando:
lista1.insert(0, 5)  coloca o valor 5 na posição 0
(valor 0 é a posição e o valor 5 é o valor colocado)
print (lista1)  [5, 10, 20, 30, 40, 50]
Nota: Pode inserir qualquer tipode valor na lista
Concatenar Listas
com o sinal +
lista_a = [1, 2, 3]
lista_b = [4, 5, 6]
Se fizer
lista_c = lista_a + lista b
Print(lista_c)
Resultado: [1, 2, 3, 4, 5, 6]
lista_a = [1, 2, 3]
lista_b = [4, 5, 6]
Se fizer
lista_d = lista_a.extend(lista b)
Print(lista_d)
Resultado: None  executou um método que não retorna nada
Nota: Apenas vai acrescentar os valores à lista_a
Concatenar Listas
com método extend
Se executar
Print(lista_a)
Resultado: [1, 2, 3, 4, 5, 6]
Altera o valor do primeiro objeto neste caso lista_a
lista_a.extend(lista_b)
For In em Listas
Lista = [‘Maria’, ‘Manuel’, ‘Otavio’]
For nome in lista:
print (nome)
Exercício
Exiba os índices da lista?
Lista = [‘Maria’, ‘Manuel’, ‘Otavio’]
indices=range(len(lista))
For indice in indices:
print (indice, lista[indice])
Resultado:
0 Maria
1 Manuel
2 Otavio
Introduza mais um nome na list e mostre novamente a lista.
Lista = [‘Maria’, ‘Manuel’, ‘Otavio’]
Lista.append(‘João’)
indices=range(len(lista))
For indice in indices:
print (indice, lista[indice])
Desempacotamento
nomes= [‘Ana’, ‘Maria’, ‘Helena’]
nome1, nome2, nome3 = nomes
print (nome2)
Resultado : Helena
Outra forma
nome1, nome2, nome3 = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome2)
Resultado : Helena
Nota: distrbui cada nome para sua variavel automaticamente
Se quiser só utilizar os dois primeiros valores
nome1, nome2 = = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome2)
Se executar
Nota: Exibe um erro. Tenho mais valores do que variáveis
nome1, nome2 ,nome3, nome4 = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome2)
Se executar
Nota: Exibe um erro. Tenho menos valores do que variáveis
Para mostra só o primeiro valor tenho de criar uma variavel
para empacotar o resto dos valores
nome1, *resto = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome1)
Mostra só primero valor e o resto fica numa nova lista
nome1, *resto = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome1, resto)
Se executar o resultado é
Ana [‘Maria’, ‘Helena’]
Se criar uma variavel que não vai ser urilizada podemos
utilizar o “ _ “ underline
Nome1, *_ = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome1,_)
Resultado:
Ana [‘Maria’, ‘Helena’]
Outra forma
nome1, *_ = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome1)
Resultado:
Ana [‘Maria’, ‘Helena’]
Para exibir o segundo valor poderá executar o seguinte
_, nome, _ = [‘Ana’, ‘Maria’, ‘Helena’]
Print(nome,_)
Resultado:
Maria
A lista pode conter métodos que a p+odem alterar.
Exemplo:
nomes= [‘Ana’, ‘Maria’, ‘Helena’]
nomes[1] = ‘outro’
_, _, nome, *resto = nomes
Print(nomes)
[‘outro’, ‘Maria’, ‘Helena’]
Print(nome)
Helena
Tuplo
Tuplo é uma lista de valores imutaveis ou seja não altera valores
Exemplo
nomes = ‘Ana’, ‘Maria’, ‘Helena’ ou nomes = (‘Ana’, ‘Maria’, ‘Helena’)
nomes[1] = ‘outro
Print(nomes)
Vai dar um erro.
Tuplo é um objeto que não suporta alterações
Se quiser aceder ao primeiro valor faz a seguinte instrução
print(nomes[1])
Resultado : Ana
Sequiser aceder ao último
Print(nomes[-1])
Resultado : Helena
Conversão de LISTA para TUPLO
e vice-versa
nomes = [‘Ana’, ‘Maria’, ‘Helena’]
nomes = tuple(nomes)
Print(nomes)
Resultado: (‘Ana’, ‘Maria’, ‘Helena’)
nomes = [‘Ana’, ‘Maria’, ‘Helena’]
nomes = list(nomes)
Print(nomes)
Resultado: [‘Ana’, ‘Maria’, ‘Helena’]
Enumerate
Criar uma lista numerada
Lista = [‘Ana’, ‘Maria’, ‘Helena’]
Lista.append(‘João’)
Lista_numerada = enumerate(Lista)
Print(Lista_enumerada)
Resultado : <enumerate object at 0x1009fb900>
Se acrescentarmos no print
Print(next(Lista_enumerada))
Assim mostra só o 1º valor da lista
Resultado: (0, ‘Ana’)
Para mostrar todos podemos utilizar o ciclo FOR
Lista = [‘Ana’, ‘Maria’, ‘Helena’]
Lista.append(‘João’)
lista_numerada = enumerate(Lista)
For item in lista_enumerada:
print(item)
Resultado: (0, ‘Ana’)
(1, ‘Maria’)
(2, ‘Helena’)
(3, ‘João’)
Se fizer dois ciclos FOR seguidos intervalados por um print o segundo FOR fica sem o
enumerate
Lista = [‘Ana’, ‘Maria’, ‘Helena’]
Lista.append(‘João’)
lista_numerada = enumerate(Lista)
For item in lista_enumerada:
print(item)
Print(‘ o que tem a lista numerada: ‘, lista_numerada) o print quebra o enumerate
For item in lista_enumerada
print(item)
Resultado: : (0, ‘Ana’)
(1, ‘Maria’)
(2, ‘Helena’)
(3, ‘João’)
O que tem a lista numerada: <enumerate object at 0x1030a7900>
Para que não aconteça esse problema coloca-se o enumerate no
ciclo FOR
lista = [‘Ana’, ‘Maria’, ‘Helena’]
lista.append(‘João’)
For item in enumerate(lista):
print(item)
Outra forma é transforma para uma nova lista
lista = [‘Ana’, ‘Maria’, ‘Helena’]
lista.append(‘João’)
lista_numerada = list(enumerate(lista))
print(lista_numerada)
Resultado: [(0, ‘Ana’), (1, ‘Maria’), (2, ‘Helena’), (3, ‘João’)]
Se fizer um star = 20
A lista numerada vai começar no 20 e por diante
lista_numerada = list(enumerate(lista, start=20))
Resultado: [(20, ‘Ana’), (21, ‘Maria’), (22, ‘Helena’), (23, ‘João’)]
Outra forma para mostrar os dados:
lista = [‘Ana’, ‘Maria’, ‘Helena’]
lista.append(‘João’)
For item in enumerate(lista):
indice, nome = item
print(indice, nome)
Resultado:
0 Ana
1 Maria
2 Helena
3 João
Se colocar a variavel indice e nome no FOR vai fazer o mesmo
lista = [‘Ana’, ‘Maria’, ‘Helena’]
lista.append(‘João’)
For indice, nome in enumerate(lista):
print(indice, nome)
É como se fossem dois ciclos FOR
Resultado:
0 Ana
1 Maria
2 Helena
3 João
lista = [‘Ana’, ‘Maria’, ‘Helena’]
lista.append(‘João’)
For tuplo_numerado in enumerate(lista):
for valor in tuplo_numerado:
print(valor)
Tranforma em tuplos numerados:
(0, ‘Ana’)
(1, ‘Maria’)
(2, ‘Helena’)
(3, ‘João’)
Vai ser passado para a variavel valor cada tuplo
Exercício
Faça uma lista de compras com listas.
O utilizador deve ter a possibilidade de inserir, apagar e
listar os valores da lista.
Não permita que o programa deixe de funcionar com erros
de indices inexistentes na lista.
import os
lista = []
while True:
print('Selecione uma opção')
opcao = input('[i]nserir [a]pagar
[l]istar: ')
if opcao == 'i':
os.system('clear')
valor = input('Valor: ')
lista.append(valor)
elif opcao == 'a':
indice_str = input(
'Escolha o índice para apagar: '
)
try:
indice = int(indice_str)
del lista[indice]
except ValueError:
print('Por favor digite número int.')
except IndexError:
print('Índice não existe na lista')
except Exception:
print('Erro desconhecido')
Resolução
elif opcao == 'l':
os.system('clear')
if len(lista) == 0:
print('Nada para listar')
for i, valor in enumerate(lista):
print(i, valor)
else:
print('Por favor, escolha i, a ou l.')
Resolução
Split, Join e Strip - Métodos
Método Split  divide uma string em determinado caracter
frase= ‘O Francisco, é um excelente programador em Python’
Lista_palavras= frase.split()
Print (Lista_palavras)
Rsedultado:[‘O’, ‘Francisco,’,´’é’, ‘um’, ‘excelente’, ‘programador’, ‘em’,
‘python’]
Pode-se dividir por um caracter.
Exemplo separar pela virgula:
Lista_palavras=frase.split(‘,’)
Print(Lista_palavra)
Resultado: :[‘O Francisco’,’ é um excelente programador em python’]
Método STRIP - Cortar espaços da string
frase= ‘O Francisco, é um excelente programador em Python’
Lista_palavras=frase.split(‘,’)
For i,frase in enumerate(lista_palavras):
Print(Lista_palavra[i].strip())
Print (Lista_palavra)
Lstrip  corta os espaços à esquerda
Rstrip  corta os espaços à direita
Método
Join  une strings
Exemplo:
frase1= [‘Aqui ‘,’há gato!!!’]
frasefinal = (‘,’).join(frase1)
Print(frasefinal)
Print(frase1)
Listas dentro de listas
Salas = [
[‘Maria’, ‘José’,],  indice0
[‘João’, ‘Joana’, ‘Leonardo’,],  indice1
[‘Luis’, ‘Eduarda’, ‘Rodrigo’,],  indice2
]
print(Salas)
Resultado:
= [[‘Maria’, ‘José’,], [‘João’, ‘Joana’, ‘Leonardo’,], [‘Luis’, ‘Eduarda’, ‘Rodrigo’]]
Como aceder ao indice 1?
Comando:
Print(salas[1])
Resultado:
[‘João’, ‘Joana’, ‘Leonardo’,]
Aceder ao valor do indice?
Comando:
Print(salas[1] [0])
Resultado:
João
Obter valores com o ciclo FOR
salas = [
[‘Maria’, ‘José’,],
[‘João’, ‘Joana’, ‘Leonardo’,],
[‘Luis’, ‘Eduarda’, ‘Rodrigo’,], ]
# print(salas[1][0])
# print(salas[0][1])
# print(salas[2][2])
# print(salas[2][3][3])
for sala in salas:
print(f'A sala é {sala}')
for aluno in sala:
print(aluno)
Dicionários
{ } ou dict
Dicionário é um tipo de estrutura de dados utilizando um par, chave e dado
Chave é um como um índice na lista
Dado é qualquer valor
Nomenclatura dos dicionários
{ } ou dict
Exemplo
Frutas = {´banana’:25, ‘ananas’:30, ‘maça’:40}
Pessoa = {‘nome’:’Jorge’, ‘sobrenome’:’Martins’, ‘idade’:55, ‘altura’:1.90}
frutas = dict(banana=25, ananas=30, maca=40)
Visualizar o conteúdo do dicionário
Exemplo1:
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'}
for chave in livros:
print (chave,livros[chave])
Exemplo2:
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'}
for chave,nome in livros.items():
print(chave, nome)
Exemplo3:
frutas = dict(banana=25, pera=30,maca=20)
for nome,preco in frutas.items():
print(nome,preco)
Métodos
LEN
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'}
print(livros.__len__())
Resultado: 4 Retorna a quantidades de chaves do dicionário
Ou
print(len(livros))
KEYS
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'}
print(livros.keys())
Resultado: dict_keys([1, 2, 3, 4])
Utilizando o ciclo FOR
for chave in livros.keys():
print (chave)
Resultado: 1,2,3,4
VALUES
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'}
print(livros.values())
Resultado: dict_values(['Lusiadas', ‘Os Maias', 'O Magico', 'A vida num sopro’])
Ou utilizando o ciclo FOR
for valor in livros.values():
print (valor)
Resultado: Lusiadas, Os Maias, O Magico, A vida num sopro
ITEMS
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro’}
print(list(livros.items()))
Resultado:
[(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro')]
livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro’}
print((livros.items()))
Resultado:
dict_items([(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro’)])
Ou
for chave,nome in livros.items():
print(chave, nome)
Resultado:
[(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro')]
SETDEAFAULT
Verifica se existe uma determinada chave
COPY
d1 = {'c1': 10, 'c2':20}
d2 = d1
d2['c1'] = 1000
print(d1)
print(d2)
Resultado:{'c1': 1000, 'c2': 20}
{'c1': 1000, 'c2': 20}
Não faz Cópia do dicionário
d1 = {'c1': 10, 'c2':20}
d2=d1.copy()
d2['c1'] = 1000
print(d1)
print(d2)
Resultado:{'c1': 10, 'c2': 20}
{'c1': 1000, 'c2': 20}
GET
Obtém o valor da chave:
d1 = {'nome': 'Jorge', 'sobren': 'Martins'}
print (d1.get('nome’))
Resultado: Jorge
Ou
print(d1['nome’])
Resultado: Jorge
Caso não existe a chave nome o resultado é ‘não existe’
d1 = {#'nome': 'Jorge',
'sobren': 'Martins'}
print (d1.get('nome',' não existe'))
POP
Apaga uma chave e seu valor do dicionário
d1 = {'nome': 'Jorge',
'sobren': 'Martins'}
nome = d1.pop('nome')
print (d1)
Resultado:{'sobren': 'Martins’}
Mas o valor fica na nova variável nome
print(nome)
Resultado: Jorge
d1 = {'nome': 'Jorge',
'sobren': 'Martins’}
ultimachave = d1.popitem()
print (d1)
print(ultimachave)
Resultado: {'nome': 'Jorge’}
('sobren', 'Martins')
UPDATE
Altera as chave ou adiciona
d1 = {'nome': 'Jorge',
'sobren': 'Martins'}
d1.update({'nome':'Manuel', 'idade':55})
print (d1)
Resultado: {'nome': 'Manuel', 'sobren': 'Martins', 'idade': 55}
Outra forma
d1 = {'nome': 'Jorge',
'sobren': 'Martins'}
d1.update(nome='Manuel', idade=55)
print (d1)
Resultado: {'nome': 'Manuel', 'sobren': 'Martins', 'idade': 55}

Mais conteúdo relacionado

Semelhante a Programação em Python_6.pptx

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Listas saod inamicas20172
Listas saod inamicas20172Listas saod inamicas20172
Listas saod inamicas20172Claudia Ferlin
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayDilan Nery Lopes
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticaoLee Aragão
 
Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6engenhariadecomputacao
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfEnio Filho
 
Mat bas03 operacoes com decimais
Mat bas03   operacoes com decimaisMat bas03   operacoes com decimais
Mat bas03 operacoes com decimaisNivea Neves
 
Introdução a programação em python d4 anexo 2 (códigos)
Introdução a programação em python d4   anexo 2 (códigos)Introdução a programação em python d4   anexo 2 (códigos)
Introdução a programação em python d4 anexo 2 (códigos)Moises de Paula
 
Aula01
Aula01Aula01
Aula01vdlos
 
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)Danilo J. S. Bellini
 
Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1Isaac Barros
 

Semelhante a Programação em Python_6.pptx (20)

Python 02
Python 02Python 02
Python 02
 
Algop - aula 06 resposta exercícios
Algop - aula 06 resposta exercíciosAlgop - aula 06 resposta exercícios
Algop - aula 06 resposta exercícios
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Listas saod inamicas20172
Listas saod inamicas20172Listas saod inamicas20172
Listas saod inamicas20172
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDay
 
VetoresMatrizes.pdf
VetoresMatrizes.pdfVetoresMatrizes.pdf
VetoresMatrizes.pdf
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
 
Mat bas03 operacoes com decimais
Mat bas03   operacoes com decimaisMat bas03   operacoes com decimais
Mat bas03 operacoes com decimais
 
Introdução a programação em python d4 anexo 2 (códigos)
Introdução a programação em python d4   anexo 2 (códigos)Introdução a programação em python d4   anexo 2 (códigos)
Introdução a programação em python d4 anexo 2 (códigos)
 
Lista c
Lista cLista c
Lista c
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Aula01
Aula01Aula01
Aula01
 
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
(2015-01-29/30) [WTA2015] Adaptatividade em Python (Tutorial)
 
Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1
 

Programação em Python_6.pptx

  • 2. Comentários #, ‘’’ ‘’’,””” “”” Simbolos para os comentários print(123) # comentario #pode-se fazer comentarios com 3 aspas no inicio e no fim “ “ “ docstring pode ser feito assim 3 aspas duplas “ “ “ ‘ ‘ ‘ tambem se pode usar para comentar usando 3 aspas simples ’ ‘ ‘ print(456)
  • 3. Separadores – sep, end, r, n Exemplos: print(12, 34, 1011, sep="-", end="#n##") print(56, 78, sep='-', end='n’) print(9, 10, sep="-“) Resultado: 12-34-1011# ##56-78 9-10
  • 4. Aspas Simples & Aspas Duplas Exemplos: print('Jorge’) print("Jorge") print(1, "Jorge ‘Martins’") print(2, ‘Jorge “Martins“ ’)
  • 5. Números Inteiros Exemplos: print (11) Resultado: 11 print (-11) Resultado: -11 print(0) Resultado: 0
  • 6. Números Decimais Exemplos print(1.5, 10.05) Resultado: 1.5 10.5 print (0.0, -1.43) Resultado: 0.0 -1.43
  • 7. Type – verifica o tipo de variável Exemplo: print(type("0")) Resultado: <class ‘str'> print(type(1), type(1.2), type("-2")) Resultado: <class ‘int'> <class ‘float'> <class ‘str'>
  • 8. Valores Booleanos Exemplo: print (10 == 10) Resultado: True print (10 == 11) Resultado: False Exemplo: print (type(10 == 10)) Resultado :<class 'bool'> print (type(10 == 11)) Resultado: <class 'bool'>
  • 9. Conversão de valores Exemplo: print(1 + 1) Resultado: 2 print ('1' + 1) Resultado: 11 print('a' + 'b’) Resultado: ab print (int('1') + 1) Resultado: 2 print (float('1.2') + 1) Resultado: 2.2 print (type(float('1.2') + 1)) Resultado:<class ‘float’> print (int('1’)) Resultado: 1 print (str(11) + 'b’) Resultado: 11b
  • 10. Variáveis Variáveis –são usadas para guardarem valores em memória nome_completo = 'Jorge Costa Martins' soma_dois_mais_dois= 2 + 2 print(nome_completo, soma_dois_mais_dois) Resultado: Jorge Costa Martins 4
  • 11. Faça o exercício e veja o resultado nome = "Jorge“ idade = 55 maior_de_idade = idade >= 18 print("Nome:", nome,"Idade:",idade) print('É maior de idade?',maior_de_idade)
  • 12. Elabore o exercício e veja o resultado Defina as variaveis para a resolução do exercício print('Nome:', nome) print('Sobrenome:', sobrenome) print('Idade:', idade) print('Ano de nascimento:', ano_nascimento) print('É maior de idade:', maior_de_idade) print ('Altura:', altura)
  • 13. Resolução: nome = "Jorge" sobrenome= "Martins" idade = 55 ano_nascimento = 2023 - idade maior_de_idade = idade >= 18 altura = 1.87
  • 14. Operadores adicao = 10 + 10 print('Adição:', adicao) subtracao = 10 - 5 print('Subtração:', subtracao) multiplicacao = 10 * 10 print('Multiplicação:', multiplicacao) divisao = 10 / 2.2 #float print('Divisão:', divisao) divisao_inteira = 10 // 2.2 print('Divisão inteira:', divisao_inteira) exponenciacao = 2 ** 10 print('Exponenciação:', exponenciacao) resto_divisao = 55 % 2 print('Resto da divisão:', resto_divisao)
  • 15. Precedencia dos operadores 1. (n+n) 2. ** 3. * / // % 4. + -
  • 16. Exercícios: conta_1 = 1 + 1 ** 5 + 5 print(conta_1) Resultado: 7 Primero faz 1 ** 5 que é igual a 1 e depois executa as somas
  • 17. conta_1 = (1 + 1) ** (5 + 5) print(conta_1) Resultado: 1024 Ou conta_2 = (1 + int(0.5 + 0.5)) ** (5 + 5) print(conta_2) Resultado: 1024
  • 18. Exercício: Calcule o seu IMC nome = "Jorge Martins" peso = 101 altura = 1.90 imc= peso / altura ** 2 #... IMC = peso / (altura * altura) print(nome, 'tem', altura, 'altura,n', 'pesa', peso,'Kgs','e o seu IMC é n',imc) Resultado Jorge Martins tem 1.9 altura pesa 101 Kgs e o seu IMC é 27.977839335180057
  • 19. Formatação de caracteres nome = "Jorge Martins" peso = 101 altura = 1.90 imc = peso / altura ** 2 #... IMC = peso / (altura * altura) print(nome, 'tem', altura, 'altura') print('pesa', peso,'Kgs','e o seu IMC é',) print(imc) print ("Com formatação de strings (F-Strings)") linha_1 = f'{nome} tem {altura:.2f} altura' linha_2 = f'pesa {peso:.2f} Kgs e o seu IMC é' linha_3 = f'{imc:.2f}’ print(linha_1) print(linha_2) print(linha_3)
  • 20. Instrução Input A instrução INPUT serve para carregar valores numa variavel Exemplo: nome = input (‘Qual o seu nome? ‘) print (f’O seu neome é {nome}’) Nota: O python interpreta todos os carregamentos de valores para uma variável como uma string
  • 21. Exercício: Faça a soma de dois valores em python
  • 22. Resolução: valor1 = input(‘Introduza o valor 1: ‘) valor2 = input(‘Introduza o valor 2: ‘) valor1_int = int(valor1) valor2_int = int(valor2) total = valor1_int + valor_2 Print (‘a soma dos dois valores é ‘,total)
  • 23. Exercício Escreva um programa para calcular a redução do tempo de vida de um fumador. Pergunte a quantidade de cigarros fumados por dia e quantos anos ele já fumou. Considere que um fumador perde 10 minutos de vida a cada cigarro, calcule quantos dias de vida um fumador perderá. Mostre o total em dias.
  • 24. Resolução: cigarros_por_dia = int(input("Quantidade de cigarros por dia:")) anos_fumador = float(input("Quantidade de anos fumador:")) redução_em_minutos = anos_fumador * 365 * cigarros_por_dia * 10 # Um dia tem 24 x 60 minutos redução_em_dias = redução_em_minutos / (24 * 60) print(f’Redução do tempo de vida {redução_em_dias:.3f}’)
  • 25. Estrutura IF / IF ELSE / IF ELIF ELSE Exercício Escreva um programa para aprovar o empréstimo bancário para compra de uma casa. O programa deve perguntar o valor da casa a comprar, o salário e a quantidade de anos a pagar. O valor da prestação mensal não pode ser superior a 30% do salário. Calcule o valor da prestação como sendo o valor da casa a comprar dividido pelo número de meses a pagar.
  • 26. Resolução: valor = float(input("Digite o valor da casa: ")) salário = float(input("Digite o salário: ")) anos = int(input("Quantos anos para pagar: ")) meses = anos * 12 prestacao = valor / meses if prestacao > salário * 0.3: print("Infelizmente você não pode obter o empréstimo") else: print(f"Valor da prestação: € {prestacao:,.2f} Empréstimo OK")
  • 27. Exercício introduz=input('Deseja "Entrar ou "sair"') if introduz == "entrar": print("Conseguiu entrar") elif introduz == "sair": print("Conseguiu sair") else: print('Não digitou nenhuma palavra')
  • 28. Exercício condicao1 = False condicao2 = False condicao3 = False condicao4 = False if condicao1: print("Código para condição 1") elif condicao2: print('Código para condição 2') elif condicao3: print('Código para a condição 3') elif condicao4: print('Código para a condição 4') else: print('Não tem condição') if 10 == 10: print('Outro if') print('fora do if')
  • 29. Exercício : Introduza dois valores e valide qual o maior e se são iguais
  • 30. Resolução: primeiro_valor = input('Introduza o primero valor: ') segundo_valor = input('Introduza o segundo valor: ') if primeiro_valor > segundo_valor: print (f'O primeiro valor {primeiro_valor} é maior que o segundo valor{segundo_valor}') elif segundo_valor > primeiro_valor: print (f'O segundo valor {segundo_valor} é maior que o primeiro valor {primeiro_valor}') else: print ('São iguais')
  • 31. Operador AND escolha = input('[E]ntrar ou [S]air: ') senha = input('Introduza a senha: ') senha_val='1234' if escolha =='E' and senha ==senha_val: print('Entrou no Sistema') elif escolha == 'S': print ('Saiu do Sistema') elif (escolha != 'E' or escolha !='S') and senha==senha_val: print ('Errou na Escolha!!') elif (escolha == 'E' or escolha == 'S') and senha!=senha_val: print ('Errou na senha')
  • 32. Exemplo1 entrada = input(‘ [E]ntrar [S]air: ‘) senha_digitada = input(‘Senha: ‘) senha_permitida = ‘123456’ if ( entrada == ‘E’ or entrada ==’e’) and senha_digitada ==senha_permitida: print(‘Entrar’) else: print (‘Sair’) Operador OR
  • 33. Exemplo 2 senha = input(‘senha: ‘) or ‘Sem senha’ print (senha)
  • 34. Exemplo: senha = input (‘Senha: ‘) If not senha: Print (‘Não digitou nada’) Operador NOT
  • 35. Strings têm posicões que começam por zero 0 1 2 3 4 J O R G E -5 -4 -3 -2 -1
  • 36. Exercício 1 Mostrar o conteudo de uma posição da string: Nome = ‘Jorge’ Print (nome[2]) resultado O Print(nome[-4]) resultado O Operador IN e NOT IN
  • 37. Exercício 2 Ver se está uma letra ou conjunto de letras estão na string? Print (‘rg’ in nome) Resultado: TRUE
  • 38. Exercícioo 3 Determinar se o que se procura está numa string
  • 39. nome= input(‘Digite o seu nome: ‘) encontrar=input(‘Digite o que deseja encontrar? ‘) If encontrar in nome: Print(f’{encontrar} está em {nome}) Else: Print (f’{encontrar} não está em {nome})
  • 40. Interpolação de Strings s - srting d e i - int f - float x e X – Hexadecimal Simbolo - %
  • 41. Exercício: Mostrar só uma variavel nome = 'Jorge' preco = 1243.534 variavel = '%s o preço é €1243.534' %nome print (variavel) Nota: Atenção ao simbolo a à variável %s PORQUE É UMA STRING Interpolação de Strings
  • 42. Exercício: Mostrar duas variáveis nome = 'Jorge' preco = 1243.534 variavel = '%s o preço é €%.2f' %(nome, preco) print (variavel) Resultado: Jorge o preço é €1243.53 Interpolação de Strings
  • 43. print ('O hexadecimal de %d é %x' % (15 , 15)) Resultado: O hexadecimal de 15 é f Nota: se o x for maiusculo o f será maiusculo Interpolação de Strings
  • 44. Mostra com preenchimento de 4 ou 8 casas com valor zero print ('O hexadecimal de %d é %08X' % (1500 , 1500)) Resultado: O hexadecimal de 1500 é 000005DC Interpolação de Strings
  • 45. Formatação básica de STRINGS Simbolos para formatação d - int f - float .<numero de digitos>f x ou X - Hexadecimal (Caractere)(><^)(quantidade) > - Esquerda espaços ou preenchimento < - Direita ^ - Centro Sinal + ou -
  • 46. variavel = 'ABC' print (f'{variavel}’) Preencher com 10 caractreres de espaços a esquerda print (f'{variavel: >10}’) Preencher com 10 caractreres de espaços a direita print (f'{variavel: <10}’) Preencher com 10 caractreres de espaços mas centra a str print (f'{variavel: ^10}’) Formatação básica de STRINGS
  • 47. Pode-se preencher com qq caracter print (f'{variavel:*^10}’) Casas decimais print (f'{1000.526536337257:.2f}’) Só apresenta o sinal positivo se o numero for positivo print (f'{-1000.526536337257:+.2f}') Formatação básica de STRINGS
  • 48. Fatiamento de Strings variavel = 'Olá Mundo' print(variavel[3])  Apresenta a letra á Fatiamento da strting [i:f:p] i - início f - fim p - passo print (variavel[4:7])  Apresenta do índice 4 até ao índice 6 Resultado: _Mu print (variavel[4:])  Apresenta até ao fim (omitir o fim) Resultado: _Mundo
  • 49. print (variavel[:5])  Apresenta até 4(omitir o inicio) Resultado: Olá_ print(len(variavel))  Apresenta a quantidade de caractereres Resultado: 9 print(variavel[0:9:2])  Apresenta a str de 2 em 2 Resultado: OáMno print(variavel[::-1])  Apresenta invertida a str Resultado: odnuM álO print(variavel[-1:-10:-1])  Apresenta invertida a str Resultado: odnuM álO Fatiamento de Strings
  • 50. Exercício Exercicio: Digite o seu nome e a sua idade. Se o nome e idade forem digitados Exiba: O meu nome é {nome} O neome invertido é {nome invertido} O nome contém ou não espaços O neome tem {n} letras A primeira letra do nome é {letra} A última letra do nome é {letra} se nada for digitado em nome ou idade: Exiba "Desculpe, madeixou campos vazios."
  • 51. nome = input('Escreva o seu nome: ') idade = input ('Escreva a sua idade: ') if nome and idade: print (f'O meu nome é {nome}') print ('O meu nome é ', nome[::-1]) print (f'O meu nome é {nome[::-1]}') if ' ' in nome: print ('O nome contém espaços') else: print('O nome NÃO contém espaços') print (f'O nome tem {len(nome)} letras') print(f'A primeira letra do nome é {nome[0]}') print(f'A última letra do nome é {nome[-1]}') else: print('Desculpe, mas deixou campos vazios.') Resolução
  • 52. TRY / EXCEPT Exercicio: numero_str=input ('introduza um valor : ') numero_float = float(numero_str) print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
  • 53. numero_str=input ('introduza um valor : ‘) print(numero_str.isdigit()) #VÊ se foi digitado um valor numero_float = float(numero_str) print(f'O dobro de {numero_str} é {numero_float * 2:.2f}') TRY / EXCEPT
  • 54. numero_str=input ('introduza um valor : ') if (numero_str.isdigit()): numero_float = float(numero_str) print(f'O dobro de {numero_str} é {numero_float * 2:.2f}') else: print('Isso não é um numero') TRY / EXCEPT
  • 55. numero_str=input ('introduza um valor : ') try: print('STR: ',numero_str) numero_float = float(numero_str) print('FLOAT: ', numero_float) print(f'O dobro de {numero_str} é {numero_float * 2:.2f}') except: print('Isso não é um numero')
  • 56. Exercício 1 Faça um programa que peça ao usuário para digitar um número inteiro, informe se este número é par ou ímpar. Caso o usuário não digite um número inteiro, informe que não é um número inteiro.
  • 57. Faça um programa que pergunte a hora ao usuário e, baseando-se no horário descrito, exiba a saudação apropriada. Ex. Bom dia 0-11, Boa tarde 12-17 e Boa noite 18-23. Exercício 2
  • 58. Exercício 3: Faça um programa que peça o primeiro nome do usuário. Se o nome tiver 4 letras ou menos escreva "Seu nome é curto"; se tiver entre 5 e 6 letras, escreva "Seu nome é normal"; maior que 6 escreva "Seu nome é muito grande". Exercício 3
  • 59. Resolução Exercício 1 entrada = input('Digite um número: ') if entrada.isdigit(): entrada_int = int(entrada) par_impar = entrada_int % 2 == 0 par_impar_texto = 'ímpar' if par_impar: par_impar_texto = 'par' print(f'O número {entrada_int} é {par_impar_texto}') else: print('Você não digitou um número inteiro')
  • 60. Resolução Exercício 1 entrada = input('Digite um número: ') try: entrada_int = float(entrada) par_impar = entrada_int % 2 == 0 par_impar_texto = 'ímpar' if par_impar: par_impar_texto = 'par' print(f'O número {entrada_int} é {par_impar_texto}') except: print('Você não digitou um número inteiro')
  • 61. Resolução Exercício 2 entrada = input('Digite a hora em números inteiros: ') try: hora = int(entrada) if hora >= 0 and hora <= 11: print('Bom dia') elif hora >= 12 and hora <= 17: print('Bom tarde') elif hora >= 18 and hora <= 23: print('Bom noite') else: print('Não conheço essa hora') except: print('Por favor, digite apenas números inteiros')
  • 62. Resolução Exercício 3 nome = input('Digite seu nome: ') tamanho_nome = len(nome) if tamanho_nome > 1: if tamanho_nome <= 4: print('Seu nome é curto') elif tamanho_nome >= 5 and tamanho_nome <= 6: print('Seu nome é normal') else: print('Seu nome é muito grande') else: print('Digite mais de uma letra.')
  • 63. Operadores de atribuição = += -= *= /= //= **= %= variavel = 3 variavel += 2  Resultado: 5 variavel -= 2  Resultado: 1 varialvel *= 2  Resultado: 6 variavel /= 2  Resultado: 1.5 variavel //= 2  Resultado 1 variavel **= 2  Resultado: 9 variavel %= 2  Resultado: 1
  • 64. While While  Estrutura de repetição com condição, isto é, repete um conjunto de instruções até a condição for falsa. Exemplo: condicao=True While condicao: Instrução Atenção:Isto gera um ciclo infinito
  • 65. Break Break  Interrompe o ciclo while Exemplo: While condicao: Instrução break
  • 66. Outra forma de paragem da estrutura Exemplo: While condicao: print(‘ABC’) if condicao break Exemplo: Condicao = True While condicao: nome=input(‘Introduza o nome: ‘) print(f‘O seu nome é {nome}’) if nome == ‘sair’ break Print(‘ACABOU’) Break
  • 67. Controlar o ciclo com uma variavel contador = 0 while contador <= 10: contador = contador + 1 print(contador) print('Acabou') Break
  • 68. Continue (Salta) Exemplo: Não mostra o valor 6 contador = 0 while contador <= 20: contador += 1 if contador == 6: print('Não vou mostrar o 6.') continue print(contador) print('Acabou')
  • 69. Exemplo: Não mostra o valor entre 0 10 e 0 27 contador = 0 while contador <= 40: contador += 1 if contador >= 10 and contador <= 27: print('Não vou mostrar o', contador) continue print(contador) print('Acabou') Continue (Salta)
  • 70. Exemplo: Não mostra o valor 6, entre o 10 e o 27 e termina no 40 contador = 0 while contador <= 100: contador += 1 if contador == 6: print('Não vou mostrar o 6.') continue if contador >= 10 and contador <= 27: print('Não vou mostrar o', contador) continue print(contador) if contador == 40: break print('Acabou') Continue (Salta)
  • 71. While aninhado - Exemplo qtd_linhas = 5 qtd_colunas = 5 linha = 1 while linha <= qtd_linhas: coluna = 1 while coluna <= qtd_colunas: print(f'{linha=} {coluna=}') coluna += 1 linha += 1 print('Acabou')
  • 72. Exercício 1 Crie uma string com o seu nome e reescreva essa string novamente mas com um * entre cada letra. Exemplo: Nome = ‘Jorge’ Novo_nome = ‘*J*o*r*g*e*’
  • 73. Resolução nome = ‘Jorge Martins' # Iteráveis indice = 0 novo_nome = ‘ ‘ while indice < len(nome): letra = nome[indice] novo_nome += f‘*{letra}‘ indice += 1 novo_nome += ‘ * ’ print(novo_nome)
  • 74. Exercício 2 Elabore um programa para efetuar as 4 operações validando todos os dados de entrada!
  • 75. Resolução Parte I """ Calculadora com while """ while True: print('nummmmm') ######### sair = input('Quer sair? [s]im: ') sair_mn = sair.lower() #transforma a string em minusculas print(sair_mn) sair_f = sair_mn.startswith('s’) #vê se começa por um s print(sair_f) if sair_f is True: break
  • 76. Parte 1 - Simplificada """ Calculadora com while """ while True: print('nummmmm') ######### sair = input('Quer sair? [s]im: ').lower().startswith('s') if sair is True: break
  • 77. Parte II """ Calculadora com while """ while True: numero_1 = input('Digite um número: ') numero_2 = input('Digite outro número: ') operador = input('Digite o operador (+-/*): ') numeros_validos = None try: num_1_float = float(numero_1) num_2_float = float(numero_2) numeros_validos = True except: numeros_validos = None if numeros_validos is None: print('Um ou ambos os números digitados são inválidos.') continue operadores_permitidos = '+-/*' if operador not in operadores_permitidos: print('Operador inválido.') continue if len(operador) > 1: print('Digite apenas um operador.') continue ### sair = input('Quer sair? [s]im: ').lower().startswith('s') if sair is True: break
  • 78. Parte III while True: numero_1 = input('Digite um número: ') numero_2 = input('Digite outro número: ') operador = input('Digite o operador (+-/*): ') numeros_validos = None num_1_float = 0 num_2_float = 0 try: num_1_float = float(numero_1) num_2_float = float(numero_2) numeros_validos = True except: numeros_validos = None if numeros_validos is None: print('Um ou ambos os números digitados são inválidos.') continue operadores_permitidos = '+-/*' if operador not in operadores_permitidos: print('Operador inválido.') continue if len(operador) > 1: print('Digite apenas um operador.') continue if operador =='+': print(f'{num_1_float} + {num_2_float} = ', num_1_float + num_2_float) elif operador =='-': print(f'{num_1_float} - {num_2_float} = ', num_1_float - num_2_float) elif operador =='/': print(f'{num_1_float} / {num_2_float} = ', num_1_float / num_2_float) elif operador =='*': print(f'{num_1_float} * {num_2_float} = ', num_1_float * num_2_float) sair = input('Quer sair? [s]im: ').lower().startswith('s') if sair is True: break
  • 79. Desafio Qual a letra que apareceu mais vezes e o número de vezes numa string?
  • 80. Resolução do Desafio frase = ‘A Programação está a ficar complicada' i = 0 qtd_apareceu_mais_vezes = 0 letra_apareceu_mais_vezes = '' while i < len(frase): letra_atual = frase[i] if letra_atual == ' ': i += 1 continue if qtd_apareceu_mais_vezes < qtd_apareceu_mais_vezes_atual: qtd_apareceu_mais_vezes = qtd_apareceu_mais_vezes_atual letra_apareceu_mais_vezes = letra_atual i += 1 print( 'A letra que apareceu mais vezes foi ' f'"{letra_apareceu_mais_vezes}" que apareceu ' f'{qtd_apareceu_mais_vezes}x'
  • 81. FOR IN Sintaxe: For variavel in lista de valores: Instrução 1 Instrução 2 . . Instrução N resto do programa 1 – O corpo do ciclo está indentado 2 – Enquanto não percorremos todos os valores: 2.1 – a variável toma o próximo valor na lista 2.2 – executa o corpo do ciclo. 3 – Depois do último valor: a execução continua no resto programa
  • 82. Exemplo nome = “JORGE” For letra in nome: Print (letra) Resultado: J O R G E
  • 83. Range (start, stop, step) Exemplo: Numero = range(10)  numeros de zero até 10 Numero = range(5,10)  começa em 5 e termina no 9 Numero = range(1,10,2)  começa em 1 termina no 9 de dois em dois FOR IN RANGE
  • 84. FOR IN RANGE Nota no ciclo for não vai buscar o indice mas sim o valor Exemplo Numero = range(10) For valor in numero: Print(valor) Resultado: 0,1,2,3,4,5,6,7,8,9
  • 85. Exemplo Numero = range(0,10,2) For valor in numero: Print(valor) Resultado: 0,2,4,6,8
  • 86. Exercício Escreva um programa que leia duas strings e gere uma terceira com os caracteres comuns às duas strings lidas. 1ª string: AAACTBF 2ª string: CBT Resultado: CBT A ordem dos caracteres da string gerada não é importante, mas deve conter todas as letras comuns a ambas.
  • 87. Lista é considerada uma matriz ou um array. Lista pode ter vários typos de dados. Pode inserir visualizar alterar apagar – (CRUD) Deve-se inserir e apagar os itens do fim Listas
  • 88. Listas Sintaxe: Nomes = [‘Ana’, ‘António’, ‘Chico’, ‘Joana’]  Lista de nomes Comando: Print(nomes)  Aparecem os nomes todos da lista Vazia = []  Lista vazia Comando Print(vazia)  Aparece os parentises retos Comando Print (nomes, type(nomes)  Aparecem os nomes todos e o tipo da variavel LIST
  • 89. L ista = [123, true, ‘Rui Marcolino’, 1.2, [] ] Comando Print(lista)  Aparece a lista [123, true, ‘Rui Marcolino’, 1.2] Listas
  • 90. Acesso a um item da Lista lista = [123, true, ‘Rui Marcolino’, 1.2] Comando para ter acesso a um item Print(lista[2])  Mostra o que está na posição 2: Rui Marcolino Para ver o tipo de variavel Print(lista[2], type(lista[2])  Rui Marcolino <class ‘str’> Usar um método para colocar o nome em Maiusculas Print(lista[2].upper(), type(lista[2])  RUI MARCOLINO <class ‘str’>
  • 91. Alterar um item da Lista lista = [123, true, ‘Rui Marcolino’, 1.2, [] ] Lista[2]= ‘Jorge Costa’ A lista fica lista = [123, true, ‘Jorge Costa’, 1.2, [] ]
  • 92. Listas lista1 = [10, 20, 30 ,40] Pode-se ler da listaum valor e atribuir a uma variavel Numero = lista1[2] Print (numero)
  • 93. Alterar, Apagar lista1 = [10, 20, 30 ,40] Alterar um valor da lista lista1[2] = 300  altera o valor da posição 2 Resultado: lista1 = [10, 20, 300 ,40] Apaga um valor da lista Del(lista1[2])  apaga o valor que foi ultimamente alterado o numero 300 Resultado:lista1 = [10, 20 ,40] reordena toda a lista alterando também o índice
  • 94. Adiciona valores no final da lista Append Usar o método APPEND Lista1 = [10, 20, 30, 40] Executar o método lista1.append(50) lista1.append(60) lista1.append(70) Print (lista1) Resultado: [10, 20, 30, 40, 50, 60, 70]
  • 95. Remoção – método pop() lista1 = [10, 20, 30, 40, 50, 60, 70] lista1.pop() Resultado: [10, 20, 30, 40, 50, 60] Se fizer o seguinte ultimo_valor=lista1.pop() Print(lista1, ‘Removido, ‘, ultimo_valor Resultado: [10, 20, 30, 40, 50] Removido, 60
  • 96. Método CLEAR lista1=[10, 20, 30, 40, 50] Se fizer o seguinte ultimo_valor=lista1.pop(2) Print(lista1) Resultado: [10, 20, 40, 50]
  • 97. Clear - Limpa a lista Comando: lista1.clear()  Limpa a lista
  • 98. INSERT Insere um valor num determinado indice lista1=[10, 20, 30, 40, 50] Comando: lista1.insert(0, 5)  coloca o valor 5 na posição 0 (valor 0 é a posição e o valor 5 é o valor colocado) print (lista1)  [5, 10, 20, 30, 40, 50] Nota: Pode inserir qualquer tipode valor na lista
  • 99. Concatenar Listas com o sinal + lista_a = [1, 2, 3] lista_b = [4, 5, 6] Se fizer lista_c = lista_a + lista b Print(lista_c) Resultado: [1, 2, 3, 4, 5, 6]
  • 100. lista_a = [1, 2, 3] lista_b = [4, 5, 6] Se fizer lista_d = lista_a.extend(lista b) Print(lista_d) Resultado: None  executou um método que não retorna nada Nota: Apenas vai acrescentar os valores à lista_a Concatenar Listas com método extend
  • 101. Se executar Print(lista_a) Resultado: [1, 2, 3, 4, 5, 6] Altera o valor do primeiro objeto neste caso lista_a lista_a.extend(lista_b)
  • 102. For In em Listas Lista = [‘Maria’, ‘Manuel’, ‘Otavio’] For nome in lista: print (nome)
  • 103. Exercício Exiba os índices da lista? Lista = [‘Maria’, ‘Manuel’, ‘Otavio’] indices=range(len(lista)) For indice in indices: print (indice, lista[indice]) Resultado: 0 Maria 1 Manuel 2 Otavio
  • 104. Introduza mais um nome na list e mostre novamente a lista. Lista = [‘Maria’, ‘Manuel’, ‘Otavio’] Lista.append(‘João’) indices=range(len(lista)) For indice in indices: print (indice, lista[indice])
  • 105. Desempacotamento nomes= [‘Ana’, ‘Maria’, ‘Helena’] nome1, nome2, nome3 = nomes print (nome2) Resultado : Helena
  • 106. Outra forma nome1, nome2, nome3 = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome2) Resultado : Helena Nota: distrbui cada nome para sua variavel automaticamente
  • 107. Se quiser só utilizar os dois primeiros valores nome1, nome2 = = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome2) Se executar Nota: Exibe um erro. Tenho mais valores do que variáveis
  • 108. nome1, nome2 ,nome3, nome4 = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome2) Se executar Nota: Exibe um erro. Tenho menos valores do que variáveis
  • 109. Para mostra só o primeiro valor tenho de criar uma variavel para empacotar o resto dos valores nome1, *resto = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome1) Mostra só primero valor e o resto fica numa nova lista
  • 110. nome1, *resto = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome1, resto) Se executar o resultado é Ana [‘Maria’, ‘Helena’]
  • 111. Se criar uma variavel que não vai ser urilizada podemos utilizar o “ _ “ underline Nome1, *_ = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome1,_) Resultado: Ana [‘Maria’, ‘Helena’]
  • 112. Outra forma nome1, *_ = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome1) Resultado: Ana [‘Maria’, ‘Helena’]
  • 113. Para exibir o segundo valor poderá executar o seguinte _, nome, _ = [‘Ana’, ‘Maria’, ‘Helena’] Print(nome,_) Resultado: Maria
  • 114. A lista pode conter métodos que a p+odem alterar. Exemplo: nomes= [‘Ana’, ‘Maria’, ‘Helena’] nomes[1] = ‘outro’ _, _, nome, *resto = nomes Print(nomes) [‘outro’, ‘Maria’, ‘Helena’] Print(nome) Helena
  • 115. Tuplo Tuplo é uma lista de valores imutaveis ou seja não altera valores Exemplo nomes = ‘Ana’, ‘Maria’, ‘Helena’ ou nomes = (‘Ana’, ‘Maria’, ‘Helena’) nomes[1] = ‘outro Print(nomes) Vai dar um erro. Tuplo é um objeto que não suporta alterações
  • 116. Se quiser aceder ao primeiro valor faz a seguinte instrução print(nomes[1]) Resultado : Ana Sequiser aceder ao último Print(nomes[-1]) Resultado : Helena
  • 117. Conversão de LISTA para TUPLO e vice-versa nomes = [‘Ana’, ‘Maria’, ‘Helena’] nomes = tuple(nomes) Print(nomes) Resultado: (‘Ana’, ‘Maria’, ‘Helena’) nomes = [‘Ana’, ‘Maria’, ‘Helena’] nomes = list(nomes) Print(nomes) Resultado: [‘Ana’, ‘Maria’, ‘Helena’]
  • 118. Enumerate Criar uma lista numerada Lista = [‘Ana’, ‘Maria’, ‘Helena’] Lista.append(‘João’) Lista_numerada = enumerate(Lista) Print(Lista_enumerada) Resultado : <enumerate object at 0x1009fb900>
  • 119. Se acrescentarmos no print Print(next(Lista_enumerada)) Assim mostra só o 1º valor da lista Resultado: (0, ‘Ana’)
  • 120. Para mostrar todos podemos utilizar o ciclo FOR Lista = [‘Ana’, ‘Maria’, ‘Helena’] Lista.append(‘João’) lista_numerada = enumerate(Lista) For item in lista_enumerada: print(item) Resultado: (0, ‘Ana’) (1, ‘Maria’) (2, ‘Helena’) (3, ‘João’)
  • 121. Se fizer dois ciclos FOR seguidos intervalados por um print o segundo FOR fica sem o enumerate Lista = [‘Ana’, ‘Maria’, ‘Helena’] Lista.append(‘João’) lista_numerada = enumerate(Lista) For item in lista_enumerada: print(item) Print(‘ o que tem a lista numerada: ‘, lista_numerada) o print quebra o enumerate For item in lista_enumerada print(item)
  • 122. Resultado: : (0, ‘Ana’) (1, ‘Maria’) (2, ‘Helena’) (3, ‘João’) O que tem a lista numerada: <enumerate object at 0x1030a7900>
  • 123. Para que não aconteça esse problema coloca-se o enumerate no ciclo FOR lista = [‘Ana’, ‘Maria’, ‘Helena’] lista.append(‘João’) For item in enumerate(lista): print(item)
  • 124. Outra forma é transforma para uma nova lista lista = [‘Ana’, ‘Maria’, ‘Helena’] lista.append(‘João’) lista_numerada = list(enumerate(lista)) print(lista_numerada) Resultado: [(0, ‘Ana’), (1, ‘Maria’), (2, ‘Helena’), (3, ‘João’)]
  • 125. Se fizer um star = 20 A lista numerada vai começar no 20 e por diante lista_numerada = list(enumerate(lista, start=20)) Resultado: [(20, ‘Ana’), (21, ‘Maria’), (22, ‘Helena’), (23, ‘João’)]
  • 126. Outra forma para mostrar os dados: lista = [‘Ana’, ‘Maria’, ‘Helena’] lista.append(‘João’) For item in enumerate(lista): indice, nome = item print(indice, nome) Resultado: 0 Ana 1 Maria 2 Helena 3 João
  • 127. Se colocar a variavel indice e nome no FOR vai fazer o mesmo lista = [‘Ana’, ‘Maria’, ‘Helena’] lista.append(‘João’) For indice, nome in enumerate(lista): print(indice, nome) É como se fossem dois ciclos FOR Resultado: 0 Ana 1 Maria 2 Helena 3 João
  • 128. lista = [‘Ana’, ‘Maria’, ‘Helena’] lista.append(‘João’) For tuplo_numerado in enumerate(lista): for valor in tuplo_numerado: print(valor) Tranforma em tuplos numerados: (0, ‘Ana’) (1, ‘Maria’) (2, ‘Helena’) (3, ‘João’) Vai ser passado para a variavel valor cada tuplo
  • 129. Exercício Faça uma lista de compras com listas. O utilizador deve ter a possibilidade de inserir, apagar e listar os valores da lista. Não permita que o programa deixe de funcionar com erros de indices inexistentes na lista.
  • 130. import os lista = [] while True: print('Selecione uma opção') opcao = input('[i]nserir [a]pagar [l]istar: ') if opcao == 'i': os.system('clear') valor = input('Valor: ') lista.append(valor) elif opcao == 'a': indice_str = input( 'Escolha o índice para apagar: ' ) try: indice = int(indice_str) del lista[indice] except ValueError: print('Por favor digite número int.') except IndexError: print('Índice não existe na lista') except Exception: print('Erro desconhecido') Resolução
  • 131. elif opcao == 'l': os.system('clear') if len(lista) == 0: print('Nada para listar') for i, valor in enumerate(lista): print(i, valor) else: print('Por favor, escolha i, a ou l.') Resolução
  • 132. Split, Join e Strip - Métodos Método Split  divide uma string em determinado caracter frase= ‘O Francisco, é um excelente programador em Python’ Lista_palavras= frase.split() Print (Lista_palavras) Rsedultado:[‘O’, ‘Francisco,’,´’é’, ‘um’, ‘excelente’, ‘programador’, ‘em’, ‘python’]
  • 133. Pode-se dividir por um caracter. Exemplo separar pela virgula: Lista_palavras=frase.split(‘,’) Print(Lista_palavra) Resultado: :[‘O Francisco’,’ é um excelente programador em python’]
  • 134. Método STRIP - Cortar espaços da string frase= ‘O Francisco, é um excelente programador em Python’ Lista_palavras=frase.split(‘,’) For i,frase in enumerate(lista_palavras): Print(Lista_palavra[i].strip()) Print (Lista_palavra) Lstrip  corta os espaços à esquerda Rstrip  corta os espaços à direita
  • 135. Método Join  une strings Exemplo: frase1= [‘Aqui ‘,’há gato!!!’] frasefinal = (‘,’).join(frase1) Print(frasefinal) Print(frase1)
  • 136. Listas dentro de listas Salas = [ [‘Maria’, ‘José’,],  indice0 [‘João’, ‘Joana’, ‘Leonardo’,],  indice1 [‘Luis’, ‘Eduarda’, ‘Rodrigo’,],  indice2 ] print(Salas) Resultado: = [[‘Maria’, ‘José’,], [‘João’, ‘Joana’, ‘Leonardo’,], [‘Luis’, ‘Eduarda’, ‘Rodrigo’]]
  • 137. Como aceder ao indice 1? Comando: Print(salas[1]) Resultado: [‘João’, ‘Joana’, ‘Leonardo’,]
  • 138. Aceder ao valor do indice? Comando: Print(salas[1] [0]) Resultado: João
  • 139. Obter valores com o ciclo FOR salas = [ [‘Maria’, ‘José’,], [‘João’, ‘Joana’, ‘Leonardo’,], [‘Luis’, ‘Eduarda’, ‘Rodrigo’,], ] # print(salas[1][0]) # print(salas[0][1]) # print(salas[2][2]) # print(salas[2][3][3]) for sala in salas: print(f'A sala é {sala}') for aluno in sala: print(aluno)
  • 140. Dicionários { } ou dict Dicionário é um tipo de estrutura de dados utilizando um par, chave e dado Chave é um como um índice na lista Dado é qualquer valor
  • 141. Nomenclatura dos dicionários { } ou dict Exemplo Frutas = {´banana’:25, ‘ananas’:30, ‘maça’:40} Pessoa = {‘nome’:’Jorge’, ‘sobrenome’:’Martins’, ‘idade’:55, ‘altura’:1.90} frutas = dict(banana=25, ananas=30, maca=40)
  • 142. Visualizar o conteúdo do dicionário Exemplo1: livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'} for chave in livros: print (chave,livros[chave]) Exemplo2: livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'} for chave,nome in livros.items(): print(chave, nome)
  • 143. Exemplo3: frutas = dict(banana=25, pera=30,maca=20) for nome,preco in frutas.items(): print(nome,preco)
  • 144. Métodos LEN livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'} print(livros.__len__()) Resultado: 4 Retorna a quantidades de chaves do dicionário Ou print(len(livros))
  • 145. KEYS livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'} print(livros.keys()) Resultado: dict_keys([1, 2, 3, 4]) Utilizando o ciclo FOR for chave in livros.keys(): print (chave) Resultado: 1,2,3,4
  • 146. VALUES livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro'} print(livros.values()) Resultado: dict_values(['Lusiadas', ‘Os Maias', 'O Magico', 'A vida num sopro’]) Ou utilizando o ciclo FOR for valor in livros.values(): print (valor) Resultado: Lusiadas, Os Maias, O Magico, A vida num sopro
  • 147. ITEMS livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro’} print(list(livros.items())) Resultado: [(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro')]
  • 148. livros = {1:'Lusiadas', 2:'Os Maias', 3:'O Magico', 4:'A vida num sopro’} print((livros.items())) Resultado: dict_items([(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro’)]) Ou for chave,nome in livros.items(): print(chave, nome) Resultado: [(1, 'Lusiadas'), (2, 'Os Maias'), (3, 'O Magico'), (4, 'A vida num sopro')]
  • 149. SETDEAFAULT Verifica se existe uma determinada chave
  • 150. COPY d1 = {'c1': 10, 'c2':20} d2 = d1 d2['c1'] = 1000 print(d1) print(d2) Resultado:{'c1': 1000, 'c2': 20} {'c1': 1000, 'c2': 20} Não faz Cópia do dicionário
  • 151. d1 = {'c1': 10, 'c2':20} d2=d1.copy() d2['c1'] = 1000 print(d1) print(d2) Resultado:{'c1': 10, 'c2': 20} {'c1': 1000, 'c2': 20}
  • 152. GET Obtém o valor da chave: d1 = {'nome': 'Jorge', 'sobren': 'Martins'} print (d1.get('nome’)) Resultado: Jorge Ou print(d1['nome’]) Resultado: Jorge
  • 153. Caso não existe a chave nome o resultado é ‘não existe’ d1 = {#'nome': 'Jorge', 'sobren': 'Martins'} print (d1.get('nome',' não existe'))
  • 154. POP Apaga uma chave e seu valor do dicionário d1 = {'nome': 'Jorge', 'sobren': 'Martins'} nome = d1.pop('nome') print (d1) Resultado:{'sobren': 'Martins’} Mas o valor fica na nova variável nome print(nome) Resultado: Jorge
  • 155. d1 = {'nome': 'Jorge', 'sobren': 'Martins’} ultimachave = d1.popitem() print (d1) print(ultimachave) Resultado: {'nome': 'Jorge’} ('sobren', 'Martins')
  • 156. UPDATE Altera as chave ou adiciona d1 = {'nome': 'Jorge', 'sobren': 'Martins'} d1.update({'nome':'Manuel', 'idade':55}) print (d1) Resultado: {'nome': 'Manuel', 'sobren': 'Martins', 'idade': 55}
  • 157. Outra forma d1 = {'nome': 'Jorge', 'sobren': 'Martins'} d1.update(nome='Manuel', idade=55) print (d1) Resultado: {'nome': 'Manuel', 'sobren': 'Martins', 'idade': 55}