Curso Python
Curso Python
print(“msg”)
Para o Python 3, todos os comandos são funções. Toda função tem que ter parênteses
7+4
print(7+4)
caso tente fazer a soma com as aspas nos número, não dará certo
print(‘7’+’4’)
resultado: ‘74’
print(‘Olá’ +5)
Neste caso irá retorna erro, deve-se então utilizar a vírgula no lugar de +
print(‘Olá” , 5)
Exemplo:
1- Opção 1
2- Opção 2
3- Opção 3’’’
Variáveis
Nome=
(nome recebe)
nome=’Junior’
idade=32
peso=75.6
Desafio:
1) Script que leia nome de uma pessoa e mostre o nome de uma pessoa e mostre uma
msg de acordo com o valor digitado.
Crie um script que leia o dia, mês e ano de nascimento de uma pessoa e mostre uma
msg com a data formatada.
2) Crie um script que leia dois números e tente mostrar a soma entre eles.
Outra forma:
a esquerda: {<}
a direita: {>}
\t -> tabulação
Bool-> valores lógicos (True, False) sem com a primeira letra maiúscula
Str-> palavras, sempre entre aspas (simples ou duplas) “Olá”, “7”, ““(string vazia)
Desafio
1) Crie um script que leia dois números e tente mostrar a soma entre eles.
2) Faça um programa que leia algo pelo teclado e mostre na tela seu tipo primitivo e
todas as informações possíveis sobre ela
Operadores
+ adição
- subtração
*multiplicação
/divisão
**exponenciação
//divisão inteira
== sinal de igual
!= sinal de diferente
Ordem de precedência
‘Oi’ + Olá
‘OiOlá’
Oi*5
‘OiOiOiOiOi’
‘=’*5
‘=====’
,end=’’
\n
Quebra de linha
Exercício
Ler um valor de um produto, calcular desconto (15%) a vista e juros a prazo (8%).
Módulos
Biblioteca math
import math
dessa forma somente o sqrt será importado e não poderá ser utilizada as outras funções
matemáticas.
Importando desta forma não é necessário utilizar math.sqrt no código
raiz = sqrt(num)
Criar listas
Biblioteca Random
import random
num = random.random()
print(num)
Instalando Bibliotecas
Exercícios
16. Crie um programa que leia um número real e mostre na tela a sua porção inteira. Ex: 6.127.
o número 6.127 tem a parte inteira 6
17. faça um programa que leia o comprimento do cateto oposto e do cateto adjacente de um
triângulo retângulo, calcule e mostre o comprimento da hipotenusa.
18. Faça um programa que leia um ângulo qualquer e mostre na tela o valor do seno, cosseno
e tangente desse ângulo.
19. Um professor quer sortear um de seus quatro alunos para apagar o quadro. Faça um
programa que ajude ele, lendo o nome deles e escrevendo o nome escolhido.
20. O mesmo professor do desafio anterior quer sortear a ordem de apresentação de trabalhos
dos alunos. Faça um programa que leia o nome dos quatro alunos e mostre a ordem sorteada.
Manipulando texto
Para o Python, toda cadeia de texto está entre aspas simples ou aspas duplas. Também existe
a possibilidade de usar aspas triplas.
C u r s o e m V í d e o P y t h o n
0 1 2 3 4 5 6 7 8 9 10 1 12 13 1 15 16 17 1 19 20
1 4 8
Fatiamento
Frase[9]
Frase[9:13] -> pega um trecho da cadeia de texto. Neste caso, desconsidera a última posição,
ficando “Víde”. Para pegar a palavra Vídeo completa deve-se fazer: frase[9:14]
Frase[:5] -> quando se omite o primeiro número, inicia pelo zero. “Curso”
Frase[15:]-> quando indica o início e se omite o fim, vai até o último caractere: “Python”
Frase[9::13]-> segundo número omitido, vai até o final. O 3 indica pular 3 caracteres. “VePh”
Análise
Analisar uma string é saber as informações sobre ela. Exemplo: tamanho da string, qual a
primeira letra, qual a última letra, qual a primeira palavra inteira, etc.
frase.count(‘o’, 0 , 13)-> Fazer contagem já com fatiamento, a partir do caractere 0 até o 13. 13
não será incluído.
Frase.find(‘deo’) – essa função vai indicar a partir de qual índice de memória foi encontrado
“deo” na string.
Frase.find(‘Android’)-> neste caso o python não encontrará Android e retornará o valor -1.
Transformação
Frase.replace(‘Python’, ‘Android’) -> onde estiver python será substituído por Android. Porém,
essa função não altera a string na memória, apenas exibe a alteração.
Frase.upper() -> deixa todas as letras em maiúsculas na string. O que já for maiúscula mantem,
o que não for transforma.
A p r e n d a P y t h o n
0 1 2 3 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18
3
É comum que alguns usuários apertem espaço ao digitar em um campo. Para isso, existe uma
função para eliminar estes espaços desnecessários.
Frase.rstrip() -> r de right, começa a tratar a string pela direita. Não remove os espaços no
início.
Divisão
Frase.split()-> divide a string considerando os espaços entre as palavras. Cada palavra recebe
indexação nova. Divide uma string em uma lista, onde cada elemento.
C u r s o e m V í d e o P y t h o n
0 1 2 3 4 0 1 0 1 2 3 4 0 1 2 3 4 5
0 1 2 3
Junção
‘- ‘.join(frase) -> Vai juntar todos os elementos de frase acima com o separador “-“.
C u r s o - e m - V í d e o - P y t h o n
0 1 2 3 4 5 6 7 8 9 10 1 12 13 1 15 16 17 1 19 20
1 4 8
Desafios
22. Crie um programa que leia o nome completo de uma pessoa e mostre:
a. O nome com todas as letras maiúsculas
b. O nome com todas minúsculas
c. Quantas letras ao todo (sem considerar espaços)
d. Quantas letras tem o primeiro nome
23. Faça um programa que leia um numero de 0 a 9999 e mostre na tela cada um dos
dígitos separados
Ex.: digite um número: 1834
Unidade: 4
Dezena: 3
Centena: 8
Milhar: 1
24. Crie um programa que leia o nome de uma cidade e diga se ela começa ou não com o
nome “Santo”.
25. Crie um programa que leia o nome de uma pessoa e diga se ela tem “Silva” no nome.
26. Faça um programa que leia uma frase pelo teclado e mostre
27. Faça um programa que leia o nome completo de uma pessoa e mostre em seguida o
primeiro e o último nome separadamente.
Ex.: Ana Maria de Souza
Primeiro: Ana
Último: Souza
Condições
if carro.esquerda():
bloco True
else:
bloco False
Somente if para estrutura simples, if else para estrutura composta
Exemplo:
Condição simplificada
Desafios
28. Escreva um programa que faça o computador “pensar” em um número inteiro entre 0
e 5 e peça para o usuário tentar descobrir qual foi o número escolhido pelo
computador. O computador deverá escolher se o usuário venceu ou perdeu.
29. Escreva um programa que leia a velocidade de um carro. Se ele ultrapassar 80km/h,
mostre uma mensagem dizendo que ele foi multado. A multa vai custar R$7,00 por
cada km acima do limite.
30. Crie um programa que leia um número inteiro e mostra na tela se ele é par ou ímpar.
31. Desenvolva um programa que pergunte a distancia de uma viagem em km. Calcule o
preço da passagem, cobrando R$0,50 por km para viagens de até 200km e R$0,45 para
viagens mais longas.
32. Faça um programa que leia um ano qualquer e mostre se ele é bissexto.
33. Faça um programa que leia três números e mostre qual é o maior e qual é o menor.
35. Desenvolva um programa que leia o comprimento de três retas e diga ao usuário se
elas podem ou não formar um triângulo.
print(“Processando...”)
Cores no Terminal
Exemplo: \033[style;text;background m
\033[0;33;44m
34 azul 44 azul
35 magenta 45 magenta
36 ciano 46 ciano
37 cinza 47 cinza
Teste \033[0;30;41m
Teste \033[4;33;44m
Teste \033[1;35;43m
Teste \033[30;42m
Teste \033[m (padrão do terminal)
Teste \033[7;30m
Atualizado 19/02/2021
Text background
30 preto 40 preto
31 vermelho 41 vermelho
32 verde 42 verde
33 amarelo 43 amarelo
34 azul 44 azul
35 magenta 45 magenta
36 ciano 46 ciano
37 cinza 47 cinza
Ex:
Nome = “Junior”
print(“Olá, prazer em te conhecer {}{}{}!!!”.format(‘\033[4;34m’, nome, ‘\033[m’)
Curso Python Mundo 2
Condições Aninhadas
If Elif
if ...:
Bloco de código 1
elif...:
bloco de código 2
else:
Bloco de código 3
Else é opcional.
Desafios
36. Escreva um programa para aprovar um empréstimo bancário para a compra de uma
casa. O programa vai perguntar o valor da casa, o salário do comprador e em quantos
anos ele vai pagar. Calcule o valor da prestação mensal, sabendo que ela não pode
exceder 30% do salário ou então o empréstimo será negado.
37. Escreva um programa que leia um número inteiro qualquer e peça para o usuário
escolher qual será a base de conversão:
1 – para binário
2 – para octal
3 – para hexadecimal
38. Escreva um programa que leia dois números inteiros e compare-os, mostrando na tela
uma mensagem:
- O primeiro valor é maior
- O segundo valor é maior
- Não existe valor maior, os dois são iguais
39. Faça um programa que leia o ano de nascimento de um jovem e informe, de acordo
com sua idade:
- Se ele ainda vai se alistar ao serviço militar
- Se é a hora de se alistar
- Se já passou da hora de se alistar
Seu programa também deverá mostrar o tempo que falta ou que passou do prazo
Dica: utilize date do módulo datetime
40. Crie um programa que leia duas notas de um aluno e calcule sua média, mostrando
uma mensagem no final, de acordo com a média atingida:
- Média abaixo de 5.0: REPROVADO
- Média entre 5.0 e 6.9: RECUPERAÇÃO
- Média 7.0 ou superior: APROVADO
42. Refaça o Desafio 35 dos triângulos, acrescentando o recurso de mostrar que tipo de
triângulo será formado:
- Equilátero: todos os lados iguais
- Isósceles: dois lados iguais
- Escaleno: todos os lados diferentes
43. Desenvolva uma lógica que leia o peso e a altura de uma pessoa. Calcule seu IMC e
mostre seu status, de acordo com a tabela abaixo:
- Abaixo de 18,5: Abaixo do peso
- Entre 18,5 e 25: Peso ideal
- 25 até 39: Sobrepeso
- Acima de 40: Obesidade mórbida
44. Elabore um programa que calcule o valor a ser pago por um produto, considerando o
seu preço normal e condição de pagamento:
- À vista: dinheiro/cheque: 10% de desconto
- À vista no cartão: 5% de desconto
- Em até 2x no cartão: preço normal
- 3x ou mais no cartão: 20% de juros
45. Crie um programa que faça o computador jogar Jokenpô com você
Pedra quebra tesoura
Tesoura corta papel
Papel embrulha a pedra
Repetições Controladas
Parte 1
Laços, repetições ou iterações
Um laço repete ações de acordo com um controle para limitar essas ações.
laço c no intervalo(1,10)
passo
pega
for c in range(1,10):
passo
pega
laço c no intervalo(0,3)
passo
pula
passo
pega
for c in range(0,3):
passo
pula
passo
pega
Usando estrutura condicional dentro do laço
Contagem de 0 a 5
for c in range (0, 6, +1):
Print(c)
print(“Fim”)
Pulando de 2 em 2
For c in range(0, 6, 2):
print(c)
print(“Fim”)
s=0
for c in range (0, 4):
n = int(input(“Digite um número: “)
s = s + n ou s+= n (forma alternativa para somar)
print(“O somatório dos valores é {}.”.format(s))
Desafios
46. Faça um programa que mostre na tela uma contagem regressiva para o estouro de
fogos de artifício, indo de 10 até 0, com uma pausa de 1 segundo entre eles.
47. Crie um programa que mostre todos os números pares que estão no intervalo entre 1
e 50.
48. Faça um programa que calcule a soma entre todos os números impares que são
múltiplos de 3 e que se encontram no intervalo entre 1 e 500.
49. Refaça o desafio 09, mostrando a tabuada de um número que o usuário escolher, só
que agora utilizando o laço for.
50. Desenvolva um programa que leia seis números inteiros e mostre a soma apenas
daqueles que forem pares. Se o valor digitado for ímpar, desconsidere-o.
51. Desenvolva um programa que leia o primeiro termo e a razão de uma Progressão
Aritmética. No final, mostre os 10 primeiros termos dessa progressão.
52. Faça um programa que leia um número inteiro e diga se ele é um número primo.
53. Crie um programa que leia uma frase qualquer e diga se ela é um palíndromo,
desconsiderando os espaços. Ex: Apos a sopa.
54. Crie um programa que leia o ano de nascimento de sete pessoas. No final, mostre
quantas pessoas ainda não atingiram a maioridade e quantas já são maiores.
Considere maior de idade aquele que atingiu 21 anos.
55. Faça um programa que leia o peso de 5 pessoas. No final, mostre qual foi o maior e o
menor peso lidos.
56. Desenvolva um programa que leia o nome, idade e sexo de 4 pessoas. No final do
programa, mostre:
Exemplo: U+1F386
print(‘U+1F386’)
Print(‘\U0001F386”)
peso
Informe seu peso: 9
Comando Append
Laços Parte 2
Estrutura While
É utilizado quando não se tem a informação de quantas vezes será necessário repetir a ação,
com condicional.
Esse tipo de estrutura é chamado de estrutura de repetição com teste lógico, ou estrutura de
repetição com variável de controle.
passo
pega
passo
pega
Exemplo
se chão
passo
se buraco
pula
se moeda
pega
pega
if chão:
passo
if buraco:
pula
if moeda:
pega
pega
Desafios
57. Faça um programa que leia o sexo de uma pessoa, mas só aceite “M” ou “F”. Caso
esteja errado, peça a digitação até ter um valor correto.
58. Melhore o jogo do desafio 28 onde o computador vai pensar em um número de 0 a 10.
Só que agora o jogador vai tentar adivinhar até acertar, mostrando no final quantos
palpites foram necessários para vencer.
59. Crie um programa que leia dois valores e mostre um menu na tela:
[ 1 ] somar
[ 2 ] multiplicar
[ 3 ] maior
[ 4 ] novos números
[ 5 ] sair
60. Faça um programa que leia um número qualquer e mostre seu fatorial.
Ex: 5! = 5x4x3x2x1 = 120
Tente fazer também com for.
61. Refaça o desafio 51, lendo o primeiro termo de uma PA, mostrando os 10 primeiros
termos da progressão usando a estrutura while.
62. Melhore o desafio 61, perguntando para o usuário se ele quer mostrar mais alguns
termos. O programa encerra quando ele disser que quer mostrar 0 termos.
63. Escreva um programa que leia um número n inteiro qualquer e mostre na tela os n
primeiros elementos de uma Sequência Fibonacci.
Ex: 0 1 1 2 3 5 8
64. Crie um programa que leia vários números inteiros pelo teclado. O programa só vai
parar quando o usuário digitar o valor 999, que é a condição de parada. No final,
mostre quantos números foram digitados e qual a soma entre eles (desconsiderando o
flag).
65. Crie um programa que leia vários números inteiros pelo teclado. No final da execução,
mostre a média entre todos os valores e qual foi o maior e o menor valores lidos. O
programa deve perguntar ao usuário se ele quer ou não continuar a digitar valores.
enquanto Verdadeiro
se chão
passo
se buraco
pula
se moeda
pega
se troféu
pula
interrompa
pega
while True:
if chão:
passo
if buraco:
pula
if moeda:
pega
if troféu:
pula
break
pega
Desafios
66. Crie um programa que leia vários números inteiros pelo teclado. O programa só vai
parar quando o usuário digitar 999, que é a condição de parada. No final, mostre
quantos números foram digitados e qual foi a soma entre eles (desconsiderando o
flag).
67. Faça um programa que mostre a tabuada de vários números, um de cada vez, para
cada valor digitado pelo usuário. O programa será interrompido quando o número
solicitado for negativo.
68. Faça um programa que jogue par ou ímpar com o computador. O jogo só será
interrompido quando o jogador perder, mostrando o total de vitórias consecutivas que
ele conquistou no final do jogo.
69. Crie um programa que leia a idade e o sexo de várias pessoas. A cada pessoa
cadastrada, o programa deverá perguntar se o usuário quer ou não continuar. No final,
mostre:
70. Crie um programa que leia o nome e o preço de vários produtos. O programa deverá
perguntar se o usuário vai continuar. No final, mostre:
a) Qual é o total gasto na compra
b) Quantos produtos custam mais de R$1000
c) Qual é o nome do produto mais barato
Mundo 3
Variáveis compostas
A 1ª é através de Tuplas
A 2ª é através de Listas
A 3ª é através de dicionários
Tuplas:
Começa por 0
print(lache[:3])
Para adicionar apenas um valor em uma tupla, deve-se utilizar vírgula no final.
t1 = (1,)
Caso não adicione, o python irá entender que é uma variável um valor inteiro
Podemos também criar Tuplas vazias
t1 = ()
L = [1, 2, 3]
T = tuple(L)
print(sorted(lanche))
Tupla pode ser apagado com o comando del, mas dessa forma deleta a tupla inteira, não tem
como deletar apenas um item.
Desafios
72. Crie um programa que tenha uma tupla totalmente preenchida com uma contagem
por extenso, de zero até vinte. Seu programa deverá ler um numero pelo teclado
(entre 0 e vinte) e mostrá-lo por extenso.
74. Crie um programa que vai gerar cinco números aleatórios e colocar em uma tupla.
Depois disso, mostre a listagem de números gerados e também indique o menor e o
maior valor que estão na tupla.
75. Desenvolva um programa que leia 4 valores pelo teclado e guarde-os em uma tupla.
No final, mostre:
76. Crie um programa que tenha uma tupla única com nomes de produtos e seus
respectivos preços, na sequência. No final, mostre uma listagem de preços,
organizando os dados em forma tabular.
77. Crie um programa que tenha uma tupla com várias palavras (não usar acentos). Depois
disso, você deve mostrar, para cada palavra, quais são as suas vogais.
Listas – Parte 1
Diferente das Tuplas, as listas não são imutáveis. É possível alterar os itens dentro das listas.
lanche[3] = ‘picolé’
Por não ser imutável, também é possível adicionar mais elementos dentro da lista.
Método append
lanche.append(‘cookie’)
0 1 2 3 4 5
Apagar elementos
Lanche.pop(3)
lanche.remove(‘pizza’)
Para remover pelo número do índice pode-se utilizar del ou pop. Para eliminar utilizando o
valor ou conteúdo, utiliza-se o remove. O comando remove só elimina a primeira ocorrência
do valor ou conteúdo. Se o valor não existir dentro da lista, irá dar erro.
Todos estes comandos irão eliminar o valor da lista, e reposicionar os elementos, ficando dessa
forma no exemplo:
0 1 2 3 4
Se utilizar o pop para eliminar um elemento que não existe isso irá causar um erro.
if ‘pizza’ in lanche:
lanche.remove(‘pizza’)
0, 1, 2, 3, 4, 5, 6
Você também pode inserir os elementos fora de ordem
valores = [8, 2, 5, 4, 9, 3, 0]
0, 1, 2, 3, 4, 5, 6
valores = [0, 2, 3, 4, 5 8, 9]
0, 1, 2, 3, 4, 5, 6
valores.sort(reverse=True)
valores = [9, 8, 5, 4, 3, 2, 0]
0, 1, 2, 3, 4, 5, 6
len(valores)
>7
valores = []
ou
valores = list()
a = [2, 3, 4, 7]
b=a
No entanto, se você tentar alterar a lista em b, isso automaticamente irá alterar a lista de a
também.
a = [2, 3, 4, 7]
b = a[:]
Desafios
78. Faça um programa que leia 5 valores numéricos e guarde-os numa lista. No final,
mostre qual foi o maior e o menor valor digitado e suas respectivas posições na lista.
79. Crie um programa onde o usuário possa digitar vários valores numéricos e cadastre-os
em uma lista. Caso o numero já exista lá dentro, ele não será adicionado. No final, será
exibidos todos os valores únicos digitados em ordem crescente.
80. Crie um programa onde o usuário possa digitar cinco valores numéricos e cadastre-os
em uma lista, já na posição correta de inserção (sem usar o sort()). No final, mostre a
lista ordenada na tela.
81. Crie um programa que vai ler vários números e colocar em uma lista. Depois disso,
mostre:
82. Crie um programa que vai ler vários números e colocar em uma lista. Depois disso, crie
duas listas extras que vão conter apenas os valores pares e ímpares digitados,
respectivamente. Ao final, mostre o conteúdo das três listas geradas.
83. Crie um programa onde o usuário digite uma expressão qualquer que use parênteses.
Seu aplicativo deverá analisar se a expressão passada está com os parênteses abertos
e fechados na ordem correta.
Listas – Parte 2
Ex:
Temos uma lista com o nome “dados”, que recebe algumas informações
dados = list()
dados.append(‘Pedro’)
dados.append(25)
print(dados[0]) ‘Pedro’
print(dados[1]) ‘25’
Pessoas = list()
Agora podemos criar uma cópia da lista dados dentro da lista pessoas
pessoas.append(dados[:])
Como vimos anteriormente, dois pontos faz com que a lista pessoas receba uma cópia da lista
dados, ao invés de apenas referenciar. Porém, na lista pessoas, o primeiro elemento será os
dois elementos de dados.
dados
‘Pedro’ 25
0 1
pessoas
‘Pedro’ 25
0 1
Pode-se fazer isso com os outros elementos de pessoas, inserindo outros elementos.
pessoas
0 1 2
print(pessoas[0][0])
o primeiro zero indica o índice 0 da lista pessoas, e o segundo 0 indica o índice 0 da primeira
lista dentro de pessoas, ou seja, ‘Pedro’.
print(pessoas[1][1])
print do índice 1 de pessoas e segundo item de dentro, sendo como resultado 19.
print(pessoas[2][0])
Nesse caso, sem especificar qual dos itens dentro de 1, será print dos dois itens na tela:
[‘Maria’, 19]
Desafios
84. Faça um programa que leia o nome e peso de várias pessoas, guardando tudo em uma
lista. No final, mostre:
a. Quantas pessoas foram cadastradas
b. Uma listagem com as pessoas mais pesadas (100kg ou mais)
c. Uma lista com as pessoas mais leves (70kg ou menos)
85. Crie um programa onde o usuário possa digitar sete valores numéricos e cadastre-os
em uma lista única que mantenha separados os valores pares e ímpares. No final,
mostre os valores pares e ímpares em ordem crescente.
(Dentro da lista, criar duas listas, uma para pares e outra para ímpares)
86. Crie um programa que crie uma matriz 3 x 3 e preencha com valores lidos pelo teclado.
88. Faça um programa que ajude um jogador da Mega Sena a criar palpites. O programa
vai perguntar quantos jogos serão gerados e vai sortear 6 números entre 1 e 60 para
cada jogo, cadastrando tudo em uma lista composta. Sem repetições no mesmo jogo.
Em ordem crescente.
89. Crie um programa que leia nome e duas notas de vários alunos e guarde tudo em uma
lista completa. No final, mostre um boletim contendo a média de cada um e permita
que o usuário possa mostrar as notas de cada aluno individualmente. 999 interrompe.
147
258
369
Dicionários
Diferentes de listas, pode-se referenciar aos índices por nomes ao invés de pelo número do
índice.
Índice literal
Tuplas ( )
Listas [ ]
Dicionários { }
dados = dict()
ou
Nome é o identificador
dados
‘Pedro’ 25
Nome idade
print(dados[‘idade]) -> 25
Comando append não funciona com dicionários. Para adicionar um novo valor é só fazer da
seguinte forma: dados[‘sexo’] = ‘M’
dados
‘Pedro’ 25 M
Nome idade sexo
Del dados[‘idade’]
dados
‘Pedro’ M
Nome sexo
Pode-se criar um dicionário, abrir a chave e fechar em outra linha. Na linha entre as chaves
pode-se adicionar a estrutura, com os nomes dos índices e seus conteúdos.
‘ano’: 1977,
Ex.: print(filme.items()) -> título, Star Wars, ano, 1977, diretor, George Lucas
for k, v in filme.items():
O ano é 1977
Por exemplo:
Lista locadora
0 1 2
Dessa forma temos uma estrutura de lista (locadora) com 3 elementos (0, 1 e 2). Dentro do
elemento 0 temos um dicionários e assim por diante.
Dicionário não aceita fatiamento, como fazíamos em listas para fazer cópias [:]
brasil.append(estado.copy())
Desafios
90. Faça um programa que leia nome e média de um aluno, guardando também a situação
em um dicionário. No final, mostre o conteúdo da estrutura na tela.
Ex.:
Nome: Joaquim
91. Crie um programa onde 4 jogadores joguem um dado e tenham resultados aleatórios.
Guarde esses resultados em um dicionário. No final, coloque esse dicionário em
ordem, sabendo que o vencedor tirou o maior número no dado.
92. Crie um programa que leia nome, ano de nascimento e carteira de trabalho e cadastre-
os (com idade) em um dicionário. Se por acaso a CTPS for diferente de zero, o
dicionário também receberá o ano de contratação e o salário. Calcule e acrescente,
além da idade, com quantos anos a pessoa vai se aposentar. Aposenta após 35 anos de
contribuição. Laço for mostrando os dados do dicionário
94. Crie um programa que leia nome, sexo e idade de várias pessoas, guardando os dados
de cada pessoa em um dicionário e todos os dicionários em uma lista. No final, mostre:
95. Aprimore o desafio 93 para que ele funcione com vários jogadores, incluindo um
sistema de visualização de detalhes de aproveitamento de cada jogador.
Conjuntos
Uma estrutura que pode ser criada a partir de listas, Tuplas ou qualquer estrutura de dados
enumerável.
a = set()
a.add(1)
a.add(2)
a.add(3)
print(a)
[1, 2, 3]
a.add(1)
print(a)
[1, 2, 3]
Exemplo:
a.add(0)
a.add(-1)
[0, 1, 2, 3, -1]
Testando se um elemento faz parte do conjunto
1 in a
True
-2 in a
False
b = set([2, 3])
{2, 3}
a = {0, 1, 2, 3, -1}
b = {2, 3}
a–b
(0, 1, -1)
a = {0, 1, 2, 3, -1}
b = {2, 3}
c = set([4, 5, 6])
a|b
{0, 1, 2, 3, -1)
a| c
{0, 1, 2, 3, 4, 5, 6, -1}
Também é possível utilizar len para descobrir o tamanho do conjunto
len(a)
len(c)
Funções – Parte 1
Por exemplo, podemos criar uma função para mostrar uma linha na tela dividindo as
informações para maior clareza do usuário.
def mostralinha():
print(“----------------------------------------------------“)
mostralinha()
mostralinha()
Quanto uma função é chamada, o programa é desviado até a função, executa as linhas de
código dessa função e depois retorna para executar o resto do programa.
Parâmetros
Podemos usar parâmetros para enviar dados para a função e personalizar os comandos.
def mensagem(msg):
print(“-----------------------------------------“)
print(msg)
print(“-----------------------------------------“)
96. Faça um programa que tenha um função chamada área(), que receba as dimensões de
um terreno retangular (largura e comprimento) e mostre a área do terreno.
97. Faça um programa que tenha uma função chamada escreva(), que receba um texto
qualquer como parâmetro e mostre uma mensagem com tamanho adaptável.
Ex.:
escreva(“Olá, mundo!”)
saída:
~~~~~~~~~~~
Olá, mundo!
~~~~~~~~~~~
98. Faça um programa que tenha uma função chamada contador(), que receba três
parâmetros: início, fim e passo e realize a contagem. Seu programa tem que realizar
três contagens através da função criada:
a. De 1 até 10, de 1 em 1
b. De 10 até 0, de 2 em 2
c. Uma contagem personalizada
99. Faça um programa que tenha uma função chamada maior(), que receba vários
parâmetros com valores inteiros. Seu programa tem que analisar todos os valores e
dizer qual deles é o maior.
100. Faça um programa que tenha uma lista chamada números e duas funções
chamadas sorteia() e somaPar(). A primeira função vai sortear 5 números e vai colocá-
los dentro da lista e a segunda função vai mostrar a soma entre todos os valores pares
sorteados pela função anterior.
Funções – Parte 2
Interactive Help
>>>help()
>?
Nesta tela podemos ver como os comandos e funções funcionam, como um manual.
Docstrings
Parâmetros opcionais
No caso de um parâmetro de uma função não receber valor nenhum, podemos indicar a
função que, neste caso, o parâmetro receberá o valor 0.
Ex.:
def somar(a, b, c)
s=a+b+c
somar(3, 2, 5)
somar(8, 4)
Da forma que a função acima está, quando somar for passar os valores 8 e 4, a função irá dar
erro, pois c não tem nenhum valor.
somar(b=4, c=2)
somar(c=1, a=4)
Escopo de variáveis
Em programação, escopo é o local onde a variável vai existir e o local onde não vai mais existir.
Exemplo:
def teste():
x=8
# Programa principal
n=2
No programa acima, n vale 2 em todo o programa, inclusive dentro da função teste. Isso se
chama escopo global. No entanto, declaramos x = 8 dentro da função. Esta variável só vale
dentro do escopo da função teste. No resto do programa, x não existe. Isso se chama escopo
local.
Existe um porém.
Se criarmos dentro da def teste uma variável como o nome a e atribuirmos, por exemplo, o
valor 8, a variável global não muda de valor. Será criado uma outra variável local dentro de def
teste com o valor 8, não interferindo na variável global a.
Dentro da função, caso seja necessário chamar a variável a global, basta fazer da seguinte
maneira:
def teste(b)
global a
a=8
Dessa forma, não será criada uma nova variável a, e sim será utilizada a variável a global
Retornando valores
Return
Ex.:
s=a+b+c
somar(3, 2, 5)
Para mostrar a string “A soma de...” apenas uma vez, podemos utilizar o comando return
def somar(a=0, b=0, c=0)
s=a+b+c
return s
r1 = somar(3, 2, 5)
r2 = somar(2, 2)
r3 = somar(6)
# Aula prática
def fatorial(num=1):
f = 1
for c in range(num, 0, -1):
f *= c
return f
def Par(n=0):
if n % 2 == 0:
return True
else:
return False
if par(num):
print(“É par”)
else:
print(“Não é par”)
Desafios
101. Crie um programa que tenha uma função chamada voto() que vai receber
como parâmetro o ano de nascimento de uma pessoa, retornando um valor literal
indicando se uma pessoa tem voto Negado, Opcional ou Obrigatório nas eleições.
102. Crie um programa que tenha uma função fatorial() que receba dois
parâmetros: o primeiro que indique o número a calcular e o outro chamado show, que
será um valor lógico (opcional) indicando se será mostrado ou não na tela o processo
de calculo do fatorial.
103. Faça um programa que tenha uma função chamada ficha(), que receba dois
parâmetros opcionais: o nome de um jogador e quantos gols ele marcou. O programa
deverá mostrar a ficha do jogador, mesmo que algum dado não tenha sido informado
corretamente.
104. Crie um programa que tenha uma função leiaInt(), que vai funcionar de forma
semelhante à função input() do python, só que fazendo a validação para aceitar
apenas um valor numérico.
Ex.:
n = leiaInt(“Digite um número: “)
105. Faça um programa que tenha um função notas() que pode receber várias notas
de alunos e vai retornar um dicionário com as seguintes informações:
a. Quantidade de notas
b. A maior nota
c. A menor nota
d. A média da turma
e. A situação (opcional)
106. Faça um mini-sistema que utilize o Interactive Help do Python. O usuário vai
digitar o comando e o manual vai aparecer. Quando o usuário digitar a palavra “FIM” o
programa se encerrará. Obs.: use cores.
Módulos e Pacotes
Módulos
Para modularizar um programa, podemos pegar todas as funções que criarmos e salvar em um
novo arquivo .py e depois reutilizarmos essas funções dentro do programa principal,
diminuindo bastante o tamanho. Para importar as funções, basta utilizar o comando import.
Vantagens:
Organização do código
Facilidade da manutenção
Ocultação de código detalhado
Reutilização em outros projetos
Pacotes
Da mesma forma que com os módulos pegamos funções e jogamos em um módulo quando o
programa fica muito grande, quando um módulo tem muitas funções podemos dividir o
módulo por assunto. Importa-se os pacotes da mesma forma com o comando import.
import uteis
Todo arquivo .py pode ser potencialmente um módulo. E dentro de um projeto python é toda
pasta é considerada um pacote
Pacotes normalmente são utilizados em programas muito grandes. Módulos para programas
grandes.
Dentro de cada uma das pastas deve existir um arquivo com o seguinte nome:
__init__.py
Dentro desse arquivo __ini__.py vai o código do módulo.
Desafios
108. Adapte o código do exercício 107, criando uma função adicional chamada
moeda() que consiga mostrar os valores como um valor monetário formatado.
109. Modifique as funções que foram criadas no desafio 107 para que elas aceitem
um parâmetro a mais, informando se o valor retornado por elas vai ser ou não
formatado pela função moeda(), desenvolvida no desafio 108.
110. Adicione ao módulo moeda.py criado nos desafios anteriores, uma função
chamada resumo(), que mostre na tela algumas informações geradas pelas funções
que já temos no módulo criado até aqui.
111. Crie um pacote chamado utilidadesCeV que tenha dois módulos internos
chamados moeda e dado. Transfira todas as funções criadas nos desafios 107, 108 e
109 para o primeiro pacote e mantenha tudo funcionando.
A codificação pode estar correto, mas ainda assim pode acontecer erros no compilador.
print(x) -> apesar da sintaxe correta, esse comando também pode dar erro.
Exemplo:
n = int(input(“Num”))
Caso o usuário digite o número 8, o programa exibirá a mensagem do print normalmente. Mas
caso o usuário digite “oito” isso causará uma exceção Valuerror.
Outro exemplo:
a = int(input(”Numerador: “)
b = int(input(“Denominador: “)
r=a/b
Eemplo:
r = 2/ ‘2’
‘2’ é um número?
Exceção TypeERror
lst = [3, 6, 4]
print(lst[3])
Exceção IndexError
import uteis
Utilizamos os comandos try e execpt para tratar as exceções. O comando else executa o código
caso tudo tiver dado certo. O comando finaly executa independente de der dado erro ou não.
Esse dois últimos (else e finally) são opcionais.
try:
operação
except:
falhou
else:
deu certo
finally:
deu certo/falha
Podemos também exibir ao usuário qual foi o erro com except Exception.
try:
a = int(input("Numerador: "))
b = int(input("Denominador: "))
r = a/b
except Exception as erro:
print(f"Erro! O problema encontrado foi {erro.__class__}")
else:
print(f"O resultado é {r:.1f}")
finally:
print("Volte sempre! Muito obrigado!")
C:\Users\Junior\PycharmProjects\pythonTeste\venv\Scripts\python.exe
C:/Users/Junior/PycharmProjects/pythonTeste/aula23.py
Numerador: 1
Denominador: zero
Desafios
113. Reescreva a função leiaInt() que fizemos no desafio 104, incluindo agora a
possibilidade de digitação de um número de tipo inválido. Aproveite e crie uma função
leiaFloat() com a mesma funcionalidade.
114. Crie um código em Python que teste se o site Pudim está acessível pelo
computador usado.
115. Crie um pequeno sistema modularizado que permita cadastrar pessoas pelo
seu nome e idade em um arquivo de texto simples. O sistema só vai ter 2 opções:
cadastrar uma nova pessoa e listar todas as pessoas cadastradas.
Para salvar um arquivo de texto através do Python, utilizamos o método write() do objeto file.
Recebe como argumento o nome do arquivo.
arquivo.write(texto_a_ser_inserido)
Caso o método write() seja invocado sobre um arquivo que foi aberto pelo método ‘w’,
o conteúdo do arquivo será substituído pelo novo conteúdo fornecido ao método, pois
o método write() primeiramente trunca o arquivo (apaga todo o soeu conteúdo), e só
então permite a gravação de texto novo. Ou seja, ele sobrescreve o conteúdo do
arquivo.
Para preservar o conteúdo existente no arquivo, devemos abri-lo usando o modo ‘a’
(append), que permite acrescentar texto novo ao final do arquivo, sem apagar o
conteúdo já existente. Veja o exemplo a seguir:
print("\nTexto alterado:")
arquivo = open('arq01.txt','r')
for linha in arquivo:
linha = linha.rstrip()
print (linha)
arquivo.close()