0% acharam este documento útil (0 voto)
515 visualizações

Curso Python

1) O documento apresenta anotações sobre os primeiros comandos em Python, incluindo print, variáveis, tipos de dados, operadores e manipulação de texto. 2) São explicados comandos como print, input, variáveis, tipos numéricos e lógicos, operadores matemáticos e de comparação, além de funções para fatiar e analisar texto. 3) Também são introduzidos conceitos como módulos, listas, números aleatórios e exercícios propostos para treinar os tópicos aprendidos

Enviado por

Junior J. Santos
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
515 visualizações

Curso Python

1) O documento apresenta anotações sobre os primeiros comandos em Python, incluindo print, variáveis, tipos de dados, operadores e manipulação de texto. 2) São explicados comandos como print, input, variáveis, tipos numéricos e lógicos, operadores matemáticos e de comparação, além de funções para fatiar e analisar texto. 3) Também são introduzidos conceitos como módulos, listas, números aleatórios e exercícios propostos para treinar os tópicos aprendidos

Enviado por

Junior J. Santos
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 49

Curso Python – Mundo 1

Anotações Aula “Primeiros Comandos”

print- usado para enviar mensagem na tela

print(“msg”)

Pode-se usar aspas simples ou aspas duplas

Para o Python 3, todos os comandos são funções. Toda função tem que ter parênteses

Para representar números, não é necessário aspas

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’

Nesse caso, o sinal de + irá juntar as duas msgs.

Pode-se usar a vírgula para juntar msgs tbm

print(‘Olá’ +5)

Neste caso irá retorna erro, deve-se então utilizar a vírgula no lugar de +

print(‘Olá” , 5)

Utilizando 3 aspas pode-se escrever um print com várias linhas

Exemplo:

Print(‘’’Digite a opção desejada:

1- Opção 1

2- Opção 2

3- Opção 3’’’

Variáveis

Escrever sempre em letras minúsculas


Em Python, toda variável é um objeto

Toda variável pode receber um valor

Nome=

(nome recebe)

nome=’Junior’

idade=32

peso=75.6

Agora podemos mostrar essas informações na tela

print(nome , idade , peso)

Input: comando para ler informações que o usuário insere

Nome=input(‘Qual é o seu nome?’)

File-> new file: abre janela para escrever scripts

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.

nome = input(‘Digite seu nome: ‘)

print(‘Prazer em te conhecer, {}’.format(nome())

{} irá formatar a variável nome e trazer para dentro das chaves

Outra forma:

print(f”Prazer em te conhecer, {nome})

print(f“O {nome} tem {anos} e seu salário é {salário:.2f}”)


alinhamento:

a esquerda: {<}

centralizado com tracinhos:{-^}

a direita: {>}

Outro comando para centralizar: .center(30)

\t -> tabulação

Tipos Primitivos de dados

Int-> números inteiros (7, -1, 9875)

Float-> números reais (1.5, 0.3, -7.56565, 7.0)

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)

Outra maneira de fazer print

print(‘A soma é: {}!‘.format(s))

print('A soma de {} e {} é {}'.format(n1, n2, s))

type(variável)-> para saber qual o tipo da variável

.isnumeric-> verifica se é possível converter a string para numérico

.isalpha-> verifica se é alfabético

.isalnum-> verifica se é alfanumérico

.isspace-> verifica se só foi digitado espaços em branco

print(‘É alfabético?’, v1.isalpha())

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

%módulo ou resto da divisão

== sinal de igual

!= sinal de diferente

Ordem de precedência

1- Parênteses () – pode colocar parênteses dentro de parênteses


2- Potências
3- Multiplicação, divisão, divisão inteira, módulo
4- Adição e subtração

Pow(4,3) outra forma de potenciação

85**(1/2) – forma de calcular raiz quadrada

‘Oi’ + Olá

‘OiOlá’

Oi*5

‘OiOiOiOiOi’

‘=’*5

‘=====’

{20} escreve a variável em 20 espaços

{>20} alinhamento a direita


{^20} alinhamento centralizado

,end=’’

junta duas linhas em uma só

\n

Quebra de linha

{:.2f} – formatação de números com vírgula

Exercício

Ler um valor de um produto, calcular desconto (15%) a vista e juros a prazo (8%).

Módulos

Pode-se importar módulos para adicionar novas funções ao Python

import(nome da biblioteca) – importa todas as funções da biblioteca

From(nome da biblioteca)import(nome da função) – importa apenas a função desejada

Biblioteca math

import math

importa biblioteca com mais funções matemáticas


import math
num = int(input('Digite um número: '))
raiz = math.sqrt(num)
print('A raiz de {} é igual a {}'.format(num, math.ceil(raiz)))

math.ceil – arredonda resultado para cima

math.floor – arredonda resultado para baixo

outra forma de importar, é utilizando o from

from math import sqrt (raiz quadrada)

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

from math import sqrt, floor

num = int(input(‘Digite um número: ‘)

raiz = sqrt(num)

print(‘A raiz de {} é igual a {:.2f}’.format(num, floor(raiz))

Criar listas

Em python listas ficam entre colchetes:

Lista = [aluno1, aluno2, aluno3]

Biblioteca Random

Com essa função é possível gerar números aleatórios

import random
num = random.random()
print(num)

Será gerado um número entre 0 e 1

Para estabelecer um intervalo, utiliza-se da seguinte forma


import random
num = random.randint(1, 10)
print(num)

random.choice(lista) – escolhe um dos itens de uma lista

random.shuffle(lista) – embaralha ordem de lista

Instalando Bibliotecas

File, Preferences, Project[nome do seu projeto], Project interpreter, clicar em +

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.

21. Faça um programa que abra e reproduza um áudio em mp3.

Manipulando texto

String = cadeia de texto

Exemplo: ‘Curso em Vídeo Python’

Para o Python, toda cadeia de texto está entre aspas simples ou aspas duplas. Também existe
a possibilidade de usar aspas triplas.

Atribuição de string dentro de uma variável

frase = ‘Curso em Vídeo Python’

cada caractere vai ocupar um micro espaço dentro da memória

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

Fatiar uma string consiste em pegar pedaços dessa string.

Frase[9]

Em python colchetes serve para trabalhar com listas

Dessa forma, frase[9] vai identificar somente o caractere dessa posição 9

Python diferencia maiúsculas de minúsculas. É possível fazer a transformação de um para


outro.

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[9:21] -> “Vídeo Python”


Frase[9:21:2] -> pula de 2 em 2 caracteres: “VdoPto”

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.

len(frase) -> 21 caracteres

outra forma de analisar

frase.count(‘o’) -> conta quantas vezes aparece a letra O

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.

‘Curso’ in frase -> o operador in informa se ‘Curso’ existe na string frase.

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.

Para alterar na memória:

Frase = frase.replace(‘Python’, ‘Android’)

Frase.upper() -> deixa todas as letras em maiúsculas na string. O que já for maiúscula mantem,
o que não for transforma.

Frase.upper()[0] -> pega só a primeira letra da string

Frase.lower() -> mantém o que é minúsculo, e transforma o resto em minúsculo.


Frase.captalize() -> Transforma todos os caracteres em minúsculo, e o primeiro em maiúsculo.

Frase.title() - > transforma a primeira letra de cada palavra em maiúsculo.

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.strip() -> elimina os espaços no início e fim da string.

Frase.rstrip() -> r de right, começa a tratar a string pela direita. Não remove os espaços no
início.

Frase.lstrip() -> remove os espaços da esquerda (left) e mantém os da direita.

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

Utilizando aspas triplas

Quando se quer escrever textos longos na tela, pode-se utilizar

Print(“””Welcome! Are you completely new to programming?

about why and how to get started with Python. Fortunately

an experienced programmer in any programming language

(whatever it may be) can pick up Python very quickly.


It also easy for begginers to use and learn, so jump it!”””)

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

a. Quantas vezes aparece a letra “a”


b. Em que posição ela aparece a primeira vez
c. Em que posição ela aparece a ultima vez

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

Anteriormente, aprendemos estrutura de comandos sequenciais.


Os comandos indentados fazem parte dos blocos condicionais.
If e Else devem estar alinhados a esquerda.

if carro.esquerda():
bloco True
else:
bloco False
Somente if para estrutura simples, if else para estrutura composta

Exemplo:

tempo = int((input(“Quanto tempo tem seu carro?”))


if tempo <= 3:
print(“Seu carro é novo!”)
else:
print(“Seu carro é velho!”)
Print(“Fim”)

Condição simplificada

tempo = int((input(“Quanto tempo tem seu carro?”))


print(“Carro novo” if tempo <= 3 else “carro velho”)
print(“Fim”)

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.

34. Escreva um programa que pergunte o salário de um funcionário e calcule o valor do


seu aumento. Para salários superiores a R$1250,00 calcule um aumento de 10%. Para
os inferiores ou iguais, o aumento é de 15%.

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.

Método sleep da biblioteca time


Faz o computador esperar por alguns segundos para simular um processamento mais
demorado

from time import sleep

print(“Processando...”)

sleep(2) -> espera por 2 segundos

Cores no Terminal

ANSI – escape sequence

Sempre começa com \

Exemplo: \033[style;text;background m

\033[0;33;44m

Style text background

0 none 30 branco 40 branco

1 bold 31 vermelho 41 vermelho

4 Underline 32 verde 42 verde

7 Negative 33 amarelo 43 amarelo

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

97 branco 107 branco

Outra forma de trabalhar com cor

Direto pelo format

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

Há mais de duas condições previstas

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

41. A Confederação Nacional de Natação precisa de um programa que leia o ano de


nascimento de um atleta e mostre sua categoria, de acordo com a idade:
- Até 9 anos: MIRIM
- Até 14 anos: INFANTIL
- Até 19 anos: JUNIOR
- Até 20 anos: SÊNIOR
- Acima: MASTER

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

Python já tem conversores para outras bases decimas


bin(num)- converte para binários
oct(num) – converte para octal
hex(num)- converte para hexadecimal
comparação:
o python aceita comparação de grandezas como na matemática
Exemplo:
if 7 > média >= 5:

também é possível comparar mais de duas variáveis


if r1 == r2 == r3

para concatenar prints inserir end=’’


print(“Podem formar um triângulo “, end=’’)

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

Laço c no intervalo (0,3)


se moeda
pega
passo
pula
passo
pega

for c in range (0, 6):


print(c)
print(“Fim”)
o código acima ira contar de 0 até 5, pois o último não é exibido

for c in range (6, 0, -1):


print(c)
print(“Fim”)
Já este faz uma contagem regressiva

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:

- A média de idade do grupo


- Qual é o nome do homem mais velho
- Quantas mulheres tem menos de 20 anos

Como utiliza emojis

Acesso o site do Unicode (http://www.unicode.org/emoji/charts/full-emoji-list.html) e procure


o emoji desejado. Selecione o código e copie e cole.

Exemplo: U+1F386

print(‘U+1F386’)

Apague o sinal de + e digite 3 zeros. Antes de U insira \

Print(‘\U0001F386”)

Informe seu peso: 10

peso
Informe seu peso: 9

Informe seu peso: 11

Comando Append

Adicionar um elemento em uma lista de forma dinâmica e existem diversas razões


para isso ser possível:

 Não conhecer previamente o valor a ser adicionado;


 Garantir que sua lista tenha espaço para o novo valor;

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.

Enquanto não chegar na maçã

Esse tipo de estrutura é chamado de estrutura de repetição com teste lógico, ou estrutura de
repetição com variável de controle.

enquanto não maçã

passo

pega

while not apple

passo

pega
Exemplo

enquanto não maçã

se chão

passo

se buraco

pula

se moeda

pega

pega

while not apple:

if chão:

passo

if buraco:

pula

if moeda:

pega

pega

sexo = str(input(“Informe seu sexo: [M/F]“)).strip().upper()[0]

while sexo not in “MF”:

sexo = str(input(“Dados inválidos. Por favor, informe seu sexo: “)).strip().upper()[0]

print(“Sexo {} registrado com sucesso!”.format(sexo))

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

Seu programa deverá realizar a operação solicitada em cada caso.

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.

Interrompendo repetições while

Utilize o comando break para interromper o looping

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

while True -> loop infinito

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:

a) Quantas pessoas tem mais de 18 anos


b) Quantos homens foram cadastrados
c) Quantas mulheres tem menos de 20 anos

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

71. Crie um programa que simule o funcionamento de um caixa eletrônico. No início,


pergunte ao usuário qual será o valor a ser sacado (número inteiro) e o programa vai
informar quantas cédulas de cada valor serão entregues.
Obs.: Considere que o caixa possui cédulas de R$50, R$20, R$10 e R$1

Mundo 3

Variáveis compostas

É um tipo de variável que pode armazenar vários valores

Existem 3 tipos de variáveis compostas:

A 1ª é através de Tuplas

A 2ª é através de Listas

A 3ª é através de dicionários

Tuplas:

São acessados por índices.

Começa por 0

As Tuplas são imutáveis

lanche = (‘Hambúguer’, ‘Suco’, ‘Pizza’, ‘Pudim’)

No novo python também pode utilizar sem parênteses

Na hora de referenciar utiliza colchetes

O python sempre vai ignorar o último elemento

print(lache[:3])

(‘Hambúrguer’, ‘Suco’, ‘Pizza’)

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

podemos criar Tuplas a partir de listas, utilizando a função tuple.

L = [1, 2, 3]

T = tuple(L)

for comida in lanche:

print(f“Eu vou comer {comida}”)

print(“Comi pra caramba”)

Comando sorted ordena os itens dentro da tupla

print(sorted(lanche))

Juntar duas Tuplas


a = (2, 5, 4)
b = (5, 8, 1, 2)
c = a + b
print(c)

count – conta quantas vezes tal elemento aparece na tupla

print(c.count(5)) – irá contar quantas vezes 5 aparece em c

index- mostra em posição está o elemento

print(c.index(8)) – 8 está na posição 1

Em python, é possível inserir tanto letras quanto números na tupla.

Tupla pode ser apagado com o comando del, mas dessa forma deleta a tupla inteira, não tem
como deletar apenas um item.

pessoa = (‘Junior’, 33, ‘M’, 75)

del(pessoa) – irá deletar a variável pessoa

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.

73. Crie um tupla preenchida com os 20 primeiros colocados na Tabela do Campeonato


Brasileiro de Futebol, na ordem de colocação. Depois, mostre:

a. Apenas os 5 primeiros colocados


b. Os últimos 4 colocados da tabela
c. Uma lista com os times em ordem alfabética
d. Em que posição da tabela está o time da Chapecoense

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:

a. Quantas vezes apareceu o número 9


b. Em que posição foi digitado o primeiro valor 3
c. Quais foram os números pares

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.

Listas utilizam colchetes.

lista = [‘hambúrguer’, ‘cerveja’, ‘pizza’, ‘pudim’]

lanche[3] = ‘picolé’

lista = [‘hambúrguer’, ‘cerveja’, ‘pizza’, ‘picolé’]

Por não ser imutável, também é possível adicionar mais elementos dentro da lista.

Método append

lanche.append(‘cookie’)

lista = [‘hambúrguer’, ‘cerveja’, ‘pizza’, ‘picolé’, ‘cookie’]

Append adiciona o elemento no final da lista.

Para adicionar um elemento em outras posições, existe o método insert


lanche.insert(0,’cachorro quente’)

lista = [‘cachorro quente’, ‘hambúrguer’, ‘cerveja’, ‘pizza’, ‘picolé’, ‘cookie’]

0 1 2 3 4 5

Apagar elementos

del lanche[3] -> elimina o elemento na posição 3

Outra forma de eliminar um elemento:

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:

lista = [‘cachorro quente’, ‘hambúrguer’, ‘cerveja’, ‘picolé’, ‘cookie’]

0 1 2 3 4

lanche.pop() -> elimina o último elemento

Se utilizar o pop para eliminar um elemento que não existe isso irá causar um erro.

Para evitar isso, é só utilizar uma condição if

if ‘pizza’ in lanche:

lanche.remove(‘pizza’)

Criar listas através de Range

valores = list(range(4, 11))

list é uma função

O último elemento não é considerado, neste caso a lista vai até 10

Os elementos receberão os números na ordem:

valores = [4, 5, 6, 7, 8, 9, 10]

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

Para ordenar os números em sequência, é só utilizar o método sort

valores.sort() -> ordena todos os valores

valores = [0, 2, 3, 4, 5 8, 9]

0, 1, 2, 3, 4, 5, 6

Para ordenar de forma inversa, utiliza-se o parâmetro reverse

valores.sort(reverse=True)

valores = [9, 8, 5, 4, 3, 2, 0]

0, 1, 2, 3, 4, 5, 6

Função len indica o tamanho da lista

len(valores)

>7

Para criar lista vazia:

valores = []

ou

valores = list()

Passando valores de uma lista para outra

a = [2, 3, 4, 7]

b=a

Neste caso b exibirá os mesmos elementos de a.

No entanto, se você tentar alterar a lista em b, isso automaticamente irá alterar a lista de a
também.

Para evitar essa ligação, utilize dessa forma:

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:

a. Quantos números foram digitados


b. A lista de valores ordenada de forma decrescente
c. Se o valor 5 foi digitado e está ou não na lista

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

Adicionando uma lista dentro de outra

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’

Agora criamos outra lista com o nome pessoas

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

‘Pedro’ 25 ‘Maria’ 19 ‘João’ 32


0 1 0 1 0 1

0 1 2

pessoas = [[‘Pedro’, 25], [‘Maria’, 19], [‘João’, 32]]

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

print do terceiro item no índice pessoas, índice 0 de dentro. ‘João’


print(pessoas[1])

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.

No final, mostre a matriz na tela, com a formatação correta.

87. Aprimore o desafio anterior, mostrando no final:


a. A soma de todos os valores pares digitados
b. A soma dos valores da terceira coluna
c. O maior valor da segunda linha

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

É mais um tipo de estrutura composta, como tuplas e listas.

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

dados = { ‘nome’: ‘Pedro’, ‘idade’: 25}

Nome é o identificador

dados

‘Pedro’ 25
Nome idade

print(dados[‘nome’]) -> Pedro

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

Comando del para remover elementos do dicionário

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.

filme = {‘título: ‘Star Wars’,

‘ano’: 1977,

‘diretor’: ‘George Lucas’

Em Python, chamamos esses elementos de chaves ou ‘keys’.

Podemos a qualquer momento acessar itens, chaves ou valores.

Valor: retorna todos os valores do dicionário.

Ex.: print(filme.values()) -> Star Wars, 1977, George Lucas

Chave: retorna o índice, ou chaves.

Ex.: print(filme.keys()) -> título, ano, diretor

Item: retorna chaves e valores.

Ex.: print(filme.items()) -> título, Star Wars, ano, 1977, diretor, George Lucas

Da mesma forma que o enumerate, pode-se utilizar esses comandos em for.

for k, v in filme.items():

print(f“O {k} é {v}”)

O título é Star Wars

O ano é 1977

O diretor é George Lucas

É possível juntar todas as estruturas que vimos.

Por exemplo:

Lista locadora

Star George Vingadore Joss


1977 2012 Matrix 1999 Wachowski
Wars Lucas s Whedon
Filme Ano Diretor
Filme Ano Diretor Filme Ano Diretor

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.

print(locadora[0][‘ano’]) -> 1977

print(locadora[2][‘título’]) -> Matrix

Dicionário não aceita fatiamento, como fazíamos em listas para fazer cópias [:]

Para fazer cópias em dicionários utilizamos o método copy()

brasil.append(estado.copy())

Ordenando valores dentro de um dicionário

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

Média de Joaquim: 4.5

Nome é igual a Joaquim

Média é igual a 4.5

Situação é igual a Reprovado

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.

Sorteia um valor por vez com pausa, depois mostra o ranking

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

93. Crie um programa que gerencie o aproveitamento de um jogador de futebol. O


programa vai ler o nome do jogador e quantas partidas ele jogou. Depois vai ler a
quantidade de gols feitos em cada partida. No final, tudo isso será guardado em um
dicionário, incluindo o total de gols feitos durante o campeonato. Guardar gols em
uma lista.

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:

a. Quantas pessoas foram cadastradas

b. A média de idade do grupo

c. Uma lista com todas as mulheres

d. Uma lista com todas as pessoas com idade acima da média

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]

Conjuntos não mantem a ordem.

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

Criando a partir de lista

b = set([2, 3])

{2, 3}

Operações com conjuntos

Podemos ver as diferenças entre os conjuntos

a = {0, 1, 2, 3, -1}

b = {2, 3}

a–b

(0, 1, -1)

Retorna apenas os resultado de a que não contém em b

União de conjuntos é efetuada com o comando |

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

Funções são rotinas utilizadas constantemente no programa.

Utilizamos def para declarar uma função.

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

Sempre que eu quiser mostrar a linha, basta chamar a função.

mostralinha()

print(‘ SISTEMA DE ALUNOS ‘)

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.

Entre o programa principal e a def o python pede 2 linhas de espaço.

Parâmetros

Podemos usar parâmetros para enviar dados para a função e personalizar os comandos.

def mensagem(msg):

print(“-----------------------------------------“)

print(msg)

print(“-----------------------------------------“)

mensagem(“ SISTEMA DE ALUNOS “)


Desafios

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

Interactive help ou ajuda interativa: função interna help()

Para utilizar a função help() ir até python console e digitar help()

>>>help()

>?

Nesta tela podemos ver como os comandos e funções funcionam, como um manual.

Também é possível utilizar o comando help no ambiente de programação.


help(print)
Ao executar o comando acima, será exibido as informações a respeito do comando.

Docstrings

São strings de documentação.

Serve para documentar funções que criamos dentro de nosso programa.

Docstring começa exatamente na linha após ao comando def.

Para criar uma docstring é só abrir aspas duplas 3 vezes.

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

print(f“A soma dos valores é {s}”)

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.

Para evitar isso, informamos que c recebe 0 nestes casos.

def somar(a, b, c=0)

Também, caso necessário, é possível colocar todos os parâmetros como opcionais.

def somar(a=0, b=0, c=0)

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

print(f“Na função teste n vale {n}”)

print(f”Na função teste x vale {x}”)

# Programa principal

n=2

print(f“No programa principal, n vale {n}”)

print(f“No programa principal, x vale {x}”)

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

Também existe importação local e global.

Retornando valores

Return

Serve para que a função retorne um valor ao programa principal.

Ex.:

def somar(a=0, b=0, c=0)

s=a+b+c

print(f“A soma é {s}”)

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)

print(f“Meus cálculos foram {r1}, {r2}, {r3}”)

# Aula prática
def fatorial(num=1):
f = 1
for c in range(num, 0, -1):
f *= c
return f

n = int(input("Digite um número: "))


print(f"O fatorial de {n} é {fatorial(n)}")

Return pode retornar valor lógico (verdadeiro ou falso)

def Par(n=0):

if n % 2 == 0:

return True

else:

return False

num = int(inpu(“Digite um número: “)

if par(num):

print(“É par”)

else:

print(“Não é par”)

Importar módulos dentro da função economiza memória

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)

Adicione também as docstrings da função. Indicar as notas no próprio código.

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

A modularização de um programa serve pra dividir um programa grande, aumentar a


legibilidade e facilitar a manutenção. Surgiu na década de 60.

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

Em outras linguagens é chamado de bibliotecas.

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

from uteis import datas

from uteis import cores

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.

from uteis import numeros

num = int(input("Digite um valor: "))


fat = numeros.fatorial(num)
dobro = numeros.dobro(num)
triplo = numeros.triplo(num)
print(f"O fatorial de {num} é {fat}")
print(f"O dobro de {num} é {dobro}")
print(f"O triplo de {num} é {triplo}")

Desafios

107. Crie um módulo chamado moeda.py que tenha as funções incorporadas


aumentar() 10%, diminuir()13%, dobro() e metade(). Faça também um programa que
importe esse módulo e use algumas dessas funções.

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.

112. Dentro do pacote utilidadesCeV que criamos no desafio 111, temos um


modulo chamado dado. Crie uma função chamada leiaDinheiro() que seja capaz de
funcionar como a função input(), mas como uma validação de dados para aceitar
apenas os valores que seja monetários. Tem que aceitar virgula ou ponto flutuante.

Tratamento de Erros e Exceções

Erros sempre acontecem, falhas fazem parte da programação.

Não são erros como esse: primt(x) -> erro de sintaxe

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.

Nesse caso, caso não inicialize a variável x, o programa acarretará um erro.

Nameerror: name ‘x’ is not defined

Neste caso não se da nome de erro, e sim de excessão.

Exemplo:

n = int(input(“Num”))

print(f”Você digitou o número {n}”)

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

No exemplo acima, se o usuário digitar 1 e 2, o resultado da divisão será 0.5. E se o usuário


digitar, por exemplo, 8 e 0? Divisão por zero na matemática não existe. No python, isso
causará outra exceção, ZeroDivisionError: Division by zero.

Eemplo:

r = 2/ ‘2’

‘2’ é um número?

Exceção TypeERror

lst = [3, 6, 4]

print(lst[3])

Elemento 3 não existe na lista.

Exceção IndexError

import uteis

Se o módulo não existir: ModuleNotFoundError


Como tratar exceções

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

Erro! O problema encontrado foi <class 'ValueError'>

Volte sempre! Muito obrigado!

Process finished with exit code 0

Todo try pode ter mais de um except, identificando cada exceção.

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)

Veja o exemplo a seguir, usando o modo w (para criar o arquivo):

with open('arq01.txt', 'w') as arquivo:


arquivo.write('Texto adicionado à primeira linha.\n')
arquivo.write('Texto que vai na segunda linha.\n')
with open('arq01.txt') as arquivo:
print(arq01.read())

Um ponto importante a ser lembrado é de que o método write() não acrescenta o


caractere de newline automaticamente, por isso precisamos fornecê-lo junto com o
texto (\n).
Acrescentando texto a um arquivo existente

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:

# Acrescentando texto ao arquivo criado, usando o modo de acesso 'a'


print("\n")
texto = input("Digite uma frase para acrescentar ao arquivo:\n")
arquivo = open('arq01.txt','a')
arquivo.write(texto + "\n")
print("Operação concluída no arquivo " + arquivo.name + " usando o modo de acesso " +
arquivo.mode)
arquivo.close()

print("\nTexto alterado:")
arquivo = open('arq01.txt','r')
for linha in arquivo:
linha = linha.rstrip()
print (linha)
arquivo.close()

Note que a frase digitada pelo usuário é acrescentada ao final do arquivo,


preservando o conteúdo anterior.

Você também pode gostar