SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
300
EXERCÍCIOS RESOLVIDOS E
COMENTADOS EM PYTHON
FERNANDO FELTRIN
AVISOS
Este livro conta com mecanismo antipirataria Amazon Kindle Protect
DRM. Cada cópia possui um identificador próprio rastreável, a distribuição
ilegal deste conteúdo resultará nas medidas legais cabíveis.
É permitido o uso de trechos do conteúdo para uso como fonte desde
que dados os devidos créditos ao autor.
SOBRE O AUTOR
Fernando Feltrin é Engenheiro da Computação com especializações na
área de ciência de dados e inteligência artificial, Professor licenciado para
docência de nível técnico e superior, Autor de mais de 10 livros sobre
programação de computadores e responsável pelo desenvolvimento e
implementação de ferramentas voltadas a modelos de redes neurais artificiais
aplicadas à radiologia (diagnóstico por imagem).
SISTEMÁTICA
Este livro é um tratado prático, logo, seu formato é um tanto quanto
diferente do convencional por se tratar de um compêndio de exercícios
resolvidos e comentados.
Sendo assim, todos os exercícios estarão dispostos no molde acima
representado, facilitando o entendimento dos mesmos de acordo com este
padrão.
ÍNDICE
Sumário
AVISOS 3
SOBRE O AUTOR 4
SISTEMÁTICA 5
ÍNDICE 6
INTRODUÇÃO 37
EXERCÍCIOS PYTHON 38
1 - Crie três variáveis com três tipos de dados diferentes, respeitando sua
sintaxe:........................................................................................................ 38
2 - Crie um comentário de no máximo uma linha: ..................................... 38
3 - Crie um comentário de mais de uma linha:........................................... 39
4 - Escreva um programa que mostra em tela a mensagem: Olá Mundo!!!
.................................................................................................................... 39
5 - Crie uma variável nome e atribua para a mesma um nome digitado pelo
usuário: ....................................................................................................... 40
6 - Exiba em tela o valor e o tipo de dado da variável num1: Sendo num1 =
1987. ........................................................................................................... 40
7 - Peça para que o usuário digite um número, em seguida exiba em tela o
número digitado. ........................................................................................ 41
8 - Peça para que o usuário digite um número, em seguida o converta para
float, exibindo em tala tanto o número em si quanto seu tipo de dado.... 41
9 - Crie uma lista com 5 nomes de pessoas:............................................... 42
10 - Mostre o tamanho da lista nomes / o número de elementos da lista
nomes: ........................................................................................................ 43
Mostre separadamente apenas o terceiro elemento dessa lista: .............. 43
11 - Some os valores das variáveis num1 e num2: Sendo num1 = 52 e num2
= 106. Por fim exiba em tela o resultado da soma. .................................... 43
12 - Some os valores das variáveis num1 e num2, atribuindo o resultado da
soma a uma nova variável homônima. Exiba em tela o conteúdo dessa
variável........................................................................................................ 44
13 - Subtraia os valores de num1 e num2: ................................................. 45
14 - Realize as operações de multiplicação e de divisão entre os valores das
variáveis num1 e num2:.............................................................................. 45
15 - Eleve o valor de num1 a oitava potência, sendo num1 = 51:.............. 46
16 - Escreva um programa que pede que o usuário dê entrada em dois
valores, em seguida, exiba em tela o resultado da soma, subtração,
multiplicação e divisão desses números:.................................................... 46
17 - Dadas duas variáveis num1 e num2 com valores 100 e 89,
respectivamente, verifique se o valor de num1 é maior que o de num2: . 47
18 - Verifique se os valores de num1 e de num2 são iguais:...................... 48
19 - Verifique se os valores de num1 e de num2 são diferentes:............... 48
20 - Verifique se o valor de num1 é igual ou menor que 100: ................... 49
21 - Verifique se os valores de num1 e de num1 são iguais ou menores que
100. ............................................................................................................. 49
22 - Verifique se os valores de num1 ou de num2 são iguais ou maiores que
100: ............................................................................................................. 50
23 - Verifique se o valor de num1 consta nos elementos de lista1. Sendo
num1 = 100 e lista1 = [10, 100, 1000, 10000, 100000]............................... 51
24 - Crie duas variáveis com dois valores numéricos inteiros digitados pelo
usuário, caso o valor do primeiro número for maior que o do segundo, exiba
em tela uma mensagem de acordo, caso contrário, exiba em tela uma
mensagem dizendo que o primeiro valor digitado é menor que o segundo:
.................................................................................................................... 51
25 - Peça para que o usuário digite um número, em seguida exiba em tela
uma mensagem dizendo se tal número é PAR ou se é ÍMPAR:.................. 52
26 - Crie uma variável com valor inicial 0, enquanto o valor dessa variável for
igual ou menos que 10, exiba em tela o próprio valor da variável. A cada
execução a mesma deve ter seu valor atualizado, incrementado em 1
unidade. ...................................................................................................... 53
27 - Crie uma estrutura de repetição que percorre a string ‘Nikola Tesla’,
exibindo em tela letra por letra desse nome:............................................. 54
28 - Crie uma lista com 8 elementos de uma lista de compras de
supermercado, por meio de um laço de repetição for liste individualmente
cada um dos itens dessa lista...................................................................... 55
29 - Crie um programa que lê um valor de início e um valor de fim, exibindo
em tela a contagem dos números dentro desse intervalo......................... 56
30 - Crie um programa que realiza a contagem de 0 a 20, exibindo apenas os
números pares: ........................................................................................... 57
31 - Crie um programa que realiza a Progressão Aritmética de 20 elementos,
com primeiro termo e razão definidos pelo usuário: ................................. 58
32 - Crie um programa que exibe em tela a tabuada de um determinado
número fornecido pelo usuário:................................................................. 59
33 - Crie um programa que realiza a contagem regressiva de 20 segundos:
.................................................................................................................... 60
34 - Crie um programa que realiza a contagem de 1 até 100, usando apenas
de números ímpares, ao final do processo exiba em tela quantos números
ímpares foram encontrados nesse intervalo, assim como a soma dos
mesmos:...................................................................................................... 62
35 - Crie um programa que pede ao usuário que o mesmo digite um número
qualquer, em seguida retorne se esse número é primo ou não, caso não,
retorne também quantas vezes esse número é divisível: .......................... 63
36 - Crie um programa que pede que o usuário digite um nome ou uma frase,
verifique se esse conteúdo digitado é um palíndromo ou não, exibindo em
tela esse resultado...................................................................................... 64
37 - Declare uma variável que por sua vez recebe um nome digitado pelo
usuário, em seguida, exiba em tela uma mensagem de boas-vindas que
incorpora o nome anteriormente digitado, fazendo uso de f’strings. ....... 66
38 - Peça para que o usuário digite um número, diretamente dentro da
função print( ) eleve esse número ao quadrado, exibindo o resultado
incorporado a uma mensagem:.................................................................. 67
39 - Dada a seguinte lista: nomes = [‘Ana’, ‘Carlos’, ‘Daiane’, ‘Fernando’,
‘Maria’], substitua o terceiro elemento da lista por ‘Jamile’:..................... 68
40 - Adicione o elemento ‘Paulo’ na lista nomes:....................................... 69
41 - Adicione o elemento ‘Eliana’ na lista nomes, especificamente na terceira
posição da lista:........................................................................................... 69
42 - Remova o elemento ‘Carlos’ da lista nomes:....................................... 70
43 - Mostre o segundo, terceiro e quarto elemento da lista nomes.
Separadamente, mostre apenas o último elemento da lista nomes:......... 70
44 – Crie um dicionário via método construtor dict( ), atribuindo para o
mesmo ao menos 5 conjuntos de chaves e valores representando objetos e
seus respectivos preços: ............................................................................. 71
45 – A partir da seguinte lista [‘C’, ‘JavaScript’, ‘Lua’, ‘Python’] verifique
primeiramente e retorne ao usuário se a linguagem de programação Python
consta na lista. Retorne uma mensagem amigável ao usuário para estas duas
situações: .................................................................................................... 72
46 – A partir de um simples dicionário composto por três itens, {‘Alto Nível’:
‘Python, ‘Médio Nível’: ’C’, ‘Baixo Nível’: ‘Assembly’}, verifique se ‘Python’
consta no dicionário em questão, utilizando de negação lógica para tal
verificação:.................................................................................................. 74
47 – Crie um dicionário usando o construtor de dicionários do Python,
alimente os valores do mesmo com os dados de duas listas: .................... 75
48 - Crie uma simples estrutura de dados simulando um cadastro para uma
loja. Nesse cadastro deve conter informações como nome, idade, sexo,
estado civil, nacionalidade, faixa de renda, etc... Exiba em tela tais dados:
.................................................................................................................... 76
49 - Crie um programa que recebe dados de um aluno como nome e suas
notas em supostos 3 trimestres de aula, retornando um novo dicionário com
o nome do aluno e a média de suas notas: ................................................ 77
50 - Crie um sistema de perguntas e respostas que interage com o usuário,
pedindo que o mesmo insira uma resposta. Caso a primeira questão esteja
correta, exiba em tela uma mensagem de acerto e parta para a próxima
pergunta, caso incorreta, exiba uma mensagem de erro e pule para próxima
pergunta:..................................................................................................... 79
51 - Crie uma função de nome funcao1, que por sua vez não realiza nenhuma
ação:............................................................................................................ 81
52 - Atribua a função funcao1 a uma variável:........................................... 81
53 - Crie uma função que retorna um valor padrão:.................................. 82
54 - Crie uma função que exibe em tela uma mensagem de boas-vindas: 83
55 - Crie uma função que recebe um nome como parâmetro e exibe em tela
uma mensagem de boas-vindas. O nome deve ser fornecido pelo usuário,
incorporado na mensagem de boas-vindas da função:.............................. 83
56 - Crie uma função que recebe um valor digitado pelo usuário e eleva esse
valor ao quadrado:...................................................................................... 84
57 - Crie uma função com dois parâmetros relacionados ao nome e
sobrenome de uma pessoa, a função deve retornar uma mensagem de boas-
vindas e esses dados devem ser digitados pelo usuário:............................ 85
58 - Crie uma função com dois parâmetros, sendo um deles com um
dado/valor predeterminado:...................................................................... 86
59 - Crie uma função com três parâmetros, sendo dois deles com
dados/valores padrão, alterando o terceiro deles contornando o paradigma
da justaposição de argumentos:................................................................. 88
60 - Crie uma função que pode conter dois ou mais parâmetros, porém sem
um número definido e declarado de parâmetros: ..................................... 89
61 - Crie uma função de número de parâmetros indefinido, que realiza a
soma dos números repassados como parâmetro, independentemente da
quantidade de números:............................................................................. 90
62 - Crie uma função que recebe parâmetros tanto por justaposição (*args)
quanto nomeados (**kwargs): ................................................................... 91
63 - Escreva um programa que retorna o número de Fibonacci: Sendo o
número de Fibonacci um valor iniciado em 0 ou em 1 onde cada termo
subsequente corresponde à soma dos dois anteriores.............................. 93
64 - Crie um programa modularizado, onde em um arquivo teremos uma
lista de médicos fictícios a serem consultados, em outro arquivo, teremos a
estrutura principal do programa, que por sua vez realiza o agendamento de
uma consulta médica com base na interação com o usuário..................... 94
65 - Aprimore o exemplo anterior, incluindo um módulo simulando o
cadastro de usuários em um plano de saúde, apenas permitindo o
agendamento de consulta caso o usuário que está interagindo com o
programa conste no cadastro:.................................................................... 97
66 - Crie uma função que recebe parâmetros tanto por justaposição quanto
nomeados a partir de uma lista e de um dicionário, desempacotando os
elementos e reorganizando os mesmos como parâmetros da função: ..... 99
67 - Crie uma classe de nome Carro e lhe dê três atributos: nome, ano e cor.
.................................................................................................................. 100
68 - Crie uma classe Pessoa, instancie a mesma por meio de uma variável e
crie alguns atributos de classe dando características a essa pessoa. Por fim
exiba em tela alguma mensagem que incorpore os atributos de classe
criados:...................................................................................................... 101
69 - Crie uma classe que armazena algumas características de um carro, em
seguida crie dois carros distintos, de características diferentes, usando da
classe para construção de seus objetos/variáveis.................................... 102
70 - Crie uma classe Pessoa com método inicializador e alguns objetos de
classe vazios dentro da mesma que representem características de uma
pessoa: ...................................................................................................... 103
71 - Crie uma classe de nome Inventario com os atributos de classe pré-
definidos item1 e item2, a serem cadastrados manualmente pelo usuário,
simulando um simples carrinho de compras:........................................... 104
72 - Crie uma classe Biblioteca que possui uma estrutura molde básica para
cadastro de um livro de acordo com seu título, porém que espera a inclusão
de um número não definido de títulos. Em seguida cadastre ao menos 5
livros nessa biblioteca:.............................................................................. 105
73 - Crie uma calculadora simples de 4 operações (soma, subtração,
multiplicação e divisão) usando apenas de estrutura de código orientada a
objetos: ..................................................................................................... 107
74 - Mostre via terminal a string ‘Bem vindo ao mundo da programação!!!’
de trás para frente usando indexação:..................................................... 108
75 - Escreva um programa que encontre todos os números que são divisíveis
por 7, mas que não são múltiplos de 5, entre 2000 e 2200 (ambos incluídos).
Os números obtidos devem ser impressos em sequência, separados por
vírgula e em uma única linha:................................................................... 108
76 - Escreva um programa, uma calculadora simples de 4 operações, onde o
usuário escolherá entre uma das 4 operações (soma, subtração,
multiplicação e divisão). Lembrando que o usuário digitará apenas dois
valores, e escolherá apenas uma operação matemática do menu. ......... 110
77 - Crie uma função que recebe um número e retorna o mesmo dividido
em duas metades, sendo cada metade um elemento de uma lista:........ 111
78 - Crie um programa que gera um dicionário a partir de um valor digitado
pelo usuário, de modo que serão exibidos todos valores antecessores a este
número multiplicados por eles mesmos. Supondo que o usuário tenha
digitado 4, a saída deve ser {1: 1, 2: 4, 3: 9, 4: 16} : ................................. 112
79 - Defina uma função que pode aceitar duas strings como entrada,
exibindo em tela apenas a string de maior tamanho/comprimento. Caso as
duas strings tenham mesmo tamanho, exiba em tela as duas:................ 113
80 - Escreva um programa que recebe um texto do usuário e o converte para
código Morse, exibindo em tela o texto em formato Morse, seguindo a
padronização “ . - " (ponto, traço). ........................................................... 115
81 - Escreva um programa que recebe do usuário um número de 0 a 100 e
transcreve o mesmo por extenso. Por exemplo o usuário digita 49, então é
retornara a string ‘quarenta e nove’......................................................... 116
82 - Crie uma função que recebe um nome e um sobrenome do usuário,
retornando os mesmos no padrão americano, ou seja, sobrenome primeiro,
seguido do nome: ..................................................................................... 120
83 - Crie um programa que gera uma senha aleatória, com um tamanho
definido pelo usuário:............................................................................... 121
84 - Crie uma função que exibe em tela tanto o conteúdo de uma variável
local quanto de uma variável global, sendo as variáveis de mesmo nome,
porém uma não substituindo a outra:...................................................... 122
85 – Crie um programa que recebe um número digitado pelo usuário,
convertendo o mesmo para algarismo de número Romano, exibindo em tela
esse dado já convertido:........................................................................... 123
86 – Crie um programa que mostra a data atual, formatada para dia-mês-
ano, hora:minuto:segundo. ...................................................................... 125
87 – Crie um programa que exibe a versão atual do Python instalada no
sistema:..................................................................................................... 126
88 – A partir de uma lista composta apenas de dados numéricos, gere outra
lista usando de list comprehension usando como base a lista anterior,
compondo a nova com os valores dos elementos originais elevados ao cubo:
.................................................................................................................. 127
89 – Dada uma estrutura inicial de um carrinho de compras com 5 itens e
seus respectivos valores, assim como uma função que soma os valores dos
itens do carrinho, retornando um valor total. Aprimore a função deste
código usando de list comprehension:..................................................... 128
90 – Escreva uma função que recebe do usuário um número qualquer e
retorna para o mesmo tal número elevado ao quadrado. Crie uma
documentação para essa função que possa ser acessada pelo usuário
diretamente via IDE. ................................................................................. 130
91 – Escreva um programa que recebe uma frase qualquer, mapeando a
mesma e retornando ao usuário cada palavra com a frequência com que a
mesma aparece na frase em questão....................................................... 131
92 – Crie um programa que recebe do usuário uma sequência de números
aleatórios separados por vírgula, armazene os números um a um, em
formato de texto, como elementos ordenados de uma lista. Mostre em tela
a lista com seus respectivos elementos após ordenados......................... 133
93 – Escreva um programa, da forma mais reduzida o possível, que recebe
do usuário uma série de nomes, separando os mesmos e os organizando em
ordem alfabética. Em seguida, exiba em tela os nomes já ordenados..... 134
94 – Escreva um simples programa que recebe do usuário um número
qualquer, retornando ao mesmo se este número digitado é um número
perfeito. .................................................................................................... 136
95 – Escreva uma função que recebe uma lista de elementos totalmente
aleatórios e os ordena de forma crescente de acordo com seu valor
numérico:.................................................................................................. 137
96 – Crie uma estrutura toda orientada a objetos que recebe do usuário uma
string qualquer, retornando a mesma com todas suas letras convertidas
para letra maiúscula. Os métodos de classe para cada funcionalidade devem
ser independentes entre si, porém trabalhar no escopo geral da classe. 139
97 – Escreva de forma reduzida um programa que recebe do usuário um
nome e duas notas, salvando tais dados como um elemento de uma lista.
Exiba em tela o conteúdo dessa lista........................................................ 141
98 – Crie um programa que gera o valor de salário de funcionários
considerando apenas horas trabalhadas e horas extras, sendo o valor fixo da
hora trabalhada R$29,11 e da hora extra R$5,00. Crie uma regra onde o
funcionário só tem direito a receber horas extras a partir de 40 horas
trabalhadas da forma convencional. ........................................................ 142
99 – Reescreva o código anterior adicionando um mecanismo simples de
validação que verifica se os dados inseridos pelo usuário são de tipos
numéricos, caso não sejam, que o processo seja encerrado.................... 144
100 – Crie um programa que recebe uma nota entre 0 e 1.0, classificando de
acordo com a nota se um aluno fictício está aprovado ou em recuperação
de acordo com sua nota. A média para aprovação deve ser 0.6 ou mais, e o
programa deve realizar as devidas validações para caso o usuário digite a
nota em um formato inválido................................................................... 146
101 – Crie uma estrutura molde (orientada a objetos) para cadastro de
veículos, tendo como características que os descrevem sua marca, modelo,
ano, cor e valor. Cadastre ao menos três veículos, revelando seu número
identificador de objeto alocado em memória, assim como o retorno
esperado pelo usuário quando o mesmo consultar tal veículo................ 148
102 – Crie um programa que recebe do usuário três números diferentes,
retornando para o mesmo qual destes números é o de maior valor. Usar de
funções aninhadas para realizar as devidas comparações entre os valores
dos números: ............................................................................................ 150
103 – Crie um programa que atua como mecanismo controlador de um
sistema direcional, registrando a direção e o número de passos executado.
Ao final do processo, exiba em tela o número de referência para um plano
cartesiano. Ex: Se o usuário digitar CIMA 5, BAIXO 3, ESQUERDA 3 e DIREITA
2, o resultado será a coordenada 2. ......................................................... 152
104 – Crie uma estrutura orientada a objetos híbrida, para cadastro de
usuários, que permita ser instanciada por uma variável de modo que a
mesma pode ou não repassar argumentos para seus objetos de classe na
hora em que instancia tal classe. Para isso, a classe deve conter
atributos/objetos de classe padrão e instanciáveis de fora da classe...... 154
105 – Gere uma lista com 50 elementos ordenados de forma crescente.
Inicialmente usando do método convencional (e do construtor de listas
padrão), posteriormente reescrevendo o código usando de list
comprehension. ........................................................................................ 157
106 – Reescreva a estrutura de código abaixo, de um simples programa que
gera uma lista com as possíveis combinações entre duas outras listas [1,2,3]
e [4,5,6], reduzindo e otimizando a mesma via list comprehension:....... 159
107 – Escreva um programa que cria uma array de 5 elementos do tipo int.
Exiba em tela todos os elementos da array, em seguida exiba
individualmente apenas os elementos pares da mesma de acordo com sua
posição de índice....................................................................................... 161
108 – Crie uma array composta de 6 elementos aleatórios, porém com
valores sequenciais crescentes. Uma vez criada a array, exiba em tela seu
conteúdo em seu formato original, e em seu formato invertido............. 162
109 – Dada a seguinte lista simples de elementos [1, 3, 5, 7, 9, 11, 13, 15, 17,
19, 21], transforme a mesma em um objeto do tipo array, em seguida exiba
em tela o tamanho dessa array (número de elementos), separadamente,
exiba o tamanho da array em bytes e seu marcador de posição alocada em
memória.................................................................................................... 163
110 – Escreva um programa que, usando puramente de lógica, encontra
todos os números que são divisíveis por 7 e múltiplos de 5, dentro do
intervalo de 0 a 500 (incluindo tais valores)............................................. 165
111 – Escreva um programa que gera um número aleatório entre 0 a 10,
salvando esse número em uma variável, onde o usuário é convidado a
interagir tentando adivinhar qual foi o número gerado até acertar. Caso o
usuário acerte o número, exiba uma mensagem o parabenizando, também
exibindo incorporado em uma mensagem o número em si..................... 166
112 – Escreva um programa que executa um bloco de código situado dentro
de um comentário..................................................................................... 168
113 – Escreva um programa que recebe uma palavra qualquer do usuário,
aplicando sobre a mesma uma formatação de estilo, retornando a mesma
com marcadores para negrito, itálico e sublinhado. As funções que aplicam
os estilos devem ser separadas entre si, porém executadas em conjunto via
decoradores para uma função principal................................................... 169
114 – Escreva um programa que lê uma palavra ou frase digitada pelo
usuário, retornando o número de letras maiúsculas e minúsculas da mesma.
Usar apenas de lógica e de funções embutidas ao sistema...................... 171
115 – Escreva um programa que verifica se uma determinada palavra consta
em um texto de origem. Texto: “Python é uma excelente linguagem de
programação!!!”. ...................................................................................... 173
116 – Escreva um programa que verifica se um endereço de site foi digitado
corretamente, validando se em tal endereço constam o prefixo ‘www.’ E o
sufixo ‘.com.br’, pedindo que o usuário digite repetidas vezes o endereço
até o mesmo for validado como correto. ................................................. 174
117 – Escreva um programa que recebe uma lista de elementos mistos,
trocando de posições apenas o primeiro e o último elemento. Lista de
referência [11, 22, 33, 44, 55, 66, 77, 88, 99, ‘X’]..................................... 176
118 – Escreva um programa que realiza a validação de uma senha digitada
pelo usuário. O mecanismo de validação deve verificar se a senha digitada
possui um tamanho mínimo de 6 caracteres, tamanho máximo de 16
caracteres, ao menos uma letra entre a e z, ao menos uma letra maiúscula
e ao menos um símbolo especial.............................................................. 177
119 – Escreva um programa que realiza a contagem do número de segundas
feiras que caem no dia 1º de cada mês, dentro do intervalo do ano 2010 até
o ano de 2020. .......................................................................................... 180
120 – Escreva um programa que exibe uma mensagem em formato de
contagem regressiva, contando de 10 até 0, com o intervalo de 2 segundos
entre uma mensagem e outra. ................................................................. 182
121– Escreva um programa que retorna a data e hora da última vez em que
um determinado arquivo foi modificado.................................................. 184
122 – Escreva um programa que extrai os dados / valores dos elementos de
uma tupla, que representa uma escala de dias de atendimento, para suas
respectivas variáveis individuais. Exiba em tela uma mensagem referente
aos dias 3 e 4 da escala............................................................................. 187
123– Crie uma função reduzida para separar elementos negativos e
positivos de uma lista, sem aplicar qualquer tipo de ordenação sobre os
mesmos..................................................................................................... 188
124 – Escreva um programa que retorna os 5 elementos mais comuns de um
texto (caracteres individuais), exibindo em tela tanto os elementos em si
quanto o número de incidências de tais elementos................................. 189
125 – Escreva um programa que recebe três conjuntos numéricos de
mesmos valores, o terceiro conjunto deve ser uma cópia literal do segundo.
Exiba em tela os conteúdos dos conjuntos, seu identificador de memória e
se alguns destes conjuntos compartilham do mesmo identificador (se
internamente são o mesmo objeto alocado em memória)...................... 191
126 – Crie uma ferramenta implementável em qualquer código que realiza
a contagem de número de variáveis locais presentes em uma determinada
função do código....................................................................................... 193
127 – Escreva um programa que recebe do usuário um nome e um telefone,
verificando se o nome digitado consta em uma base de dados pré-existente,
caso não conste, cadastre esse novo nome e telefona na base de dados.
.................................................................................................................. 195
128 – Crie uma calculadora de 7 operações (soma, subtração, multiplicação,
divisão, exponenciação, divisão inteira e módulo de uma divisão) com toda
sua estrutura orientada à objetos. ........................................................... 197
129 – Escreva um programa que recebe uma fila composta de valores
referente a idades de pessoas, extraindo os 3 elementos de maior idade
para uma outra fila prioritária, sem que os elementos prioritários sejam
rearranjados.............................................................................................. 201
130 – Na frase “A Radiologia é a ciência que estuda a anatomia por meio de
exames de imagem.” realize a contagem dos caracteres de sua composição,
retornando quais os 6 caracteres mais recorrentes, e quantas vezes os
mesmos aparecem na frase acima: .......................................................... 203
131 – Crie uma estrutura de código que lê o conteúdo interno de uma
função, retornando o número de identificação da função e o número de
variáveis que a mesma possui alocadas em memória.............................. 205
132 – Uma vez que temos a lista [“maçã”, “banana”, “laranja”, “abacate”,
“pêssego”], busque extrair o segundo e o quarto elemento da lista de forma
ainda mais reduzida e otimizada do que quando utilizamos list
comprehension. ........................................................................................ 206
133 – Crie uma estrutura de código de validação de uma senha digitada pelo
usuário. Após inserida a senha, a mesma deve ser inspecionada em busca
das seguintes características: Conter entre 6 e 16 caracteres, conter ao
menos uma letra minúscula, conter ao menos um número, conter ao menos
uma letra maiúscula e conter ao menos um caractere especial ($#@*!&).
.................................................................................................................. 207
134 – Escreva uma estrutura de validação que verifica se o endereço de um
site foi digitado corretamente. O endereço escrito deve ser em formato de
domínio brasileiro (terminado em .com.br) e para o processo de validação
não pode ser usado expressões regulares................................................ 211
135 – Considerando a lista [11, 22, 33, 44, 55, 66, 77, 88, 99, 'X'], reorganize
seus elementos de forma a inverter o primeiro e o último elemento de
posição, sem alterar a ordem dos demais elementos.............................. 212
136 – Reorganize os elementos da lista [-1, 6, -9, -8, 4, 0, -3, 2, 7, 1, 8, -2] em
ordem crescente e a partir da mesma, gere duas novas listas, uma contendo
apenas os elementos negativos e outra contendo apenas os elementos
positivos. Por fim, exiba em tela o conteúdo da lista original e das 3 novas
listas geradas............................................................................................. 213
137 – Supondo que tenhamos uma lista composta por elementos em forma
de dicionário, elementos estes aleatórios descrevendo em suas chaves e
valores alguns carros com seus respectivos anos de fabricação, reorganize
os elementos dessa lista de acordo com um critério pré-estabelecido, nesse
caso, o ano de fabricação.......................................................................... 215
138 – Crie um mecanismo que lê e interpreta uma array, retornando ao
usuário o número de elementos da mesma, assim como seu tamanho em
bytes e seu endereço de alocação em memória. ..................................... 216
139 – Crie um programa que recebe um texto digitado pelo usuário,
retornando para o mesmo quantas letras maiúsculas e minúsculas foram
identificadas no texto. Apresente dois códigos, um convencional e um
reduzido: ................................................................................................... 218
140 – Crie um programa que lê um arquivo qualquer, retornando ao usuário
os dados referentes a data e hora da última modificação desse arquivo.221
141 – Crie um método de classe com parâmetros nomeados, justapostos,
com valor padrão, tipo de dado definido na declaração e que retorna um
tipo de dado obrigatório e específico no retorno da função, nesta ordem.
Como referência, o método convencional def inventario(item, localizacao,
quantidade, preco, categoria) deve ser transformado para um método
discriminado, onde cada tipo de parâmetro possui uma identidade e
características próprias............................................................................. 226
142 – Crie uma classe composta por atributos “somente leitura”, da forma
mais reduzida possível:............................................................................. 227
143 – Crie manualmente um sistema de contagem regressiva, a contar de
10, atualizando seus dados a cada 2 segundos. ....................................... 229
144 – Crie uma estrutura de código que simula o sistema de dependência de
uma blockchain em um cluster de processamento. Nesse processo é
permitido usar de alguma estrutura de repetição, e o cluster inicial deve
conter ao menos 4 blocos de origem........................................................ 231
145 – Escreva um programa que, a partir de uma lista de elementos, retorne
o tipo de dado de cada elemento. A lista em questão é:
lista=[(1,),[1,2,3],(1),{4,5},{'nome':'A','value':
2},10,[],1+3j,1.2,True,False,None,'Hello World!'].
.................................................................................................................. 234
146 – Crie uma simples ferramenta de análise exploratória de dados, que
recebe uma lista / array, retornando a partir dos dados da mesma os valores
referentes ao maior número, menor número, número de elementos totais,
soma de todos elementos, média aritmética, mediana, variança e desvio
padrão. A lista em questão é: lista = [-1505, 2518, 2333, 4682, -
1740, 1067, 995, 22, 2, -1153, -4098, 4560, 2958, 3640, -4154, 2345,4, -
1601, 158, -4044, -98, 707, 359, -3088, 527, -3004, -4045, 563, -
4137, 4598, -3862, 488, -1, 3445, 3820, 504, -1475, 1626, -1252, 2059, 16, -
1472, 2610, -4643, 2912, -2517, -4604, -1476, 3950, -4640, -229, 229, -
3452, 4309, 2356, 66, 3728, -1846, -635, -3581, 4457, -2592, -1066,4, -
1006, -164, 805, -4500, -455, 2245, -4959,2, -
2415, 2038, 4512, 1243, 349, -1153, 3623, 631, 2209, -3349, -2417, 4429, -
1324, -4101, -1354, 4400, -4968, -4433, 2042, 904, 932, 1331, 4955, -
3775, -333, 1012, 2192, -161, -224, 1505, -1615, -2165, 3666, -4253, -358, -
3939, -2641, 1228, -608, -2280, 4939, -3355, 1340, -57, 3346, 2686, -
1572, 1991, -2351, -3972, -1683, -1509, -2488, 266, -2991, -795, -
4032, 2397, 2391, 3654, -1044, -2204, -2440, -1280, 2714, -4151, -
1951, 3684, -4251, 3748, -4359, -1436, -2190, 4538, -3563, 1542, 1926, -
3940, -2274, -4223, 2504, -4112, 2388].................................................... 236
147 – A partir da lista lista=['a', 'a', 'a', 'b', 'c', 'k', 'a', 1, 2, 3, 4, 'j', 'l', 'm'] gere
uma nova lista porém sem elementos repetidos. .................................... 238
148 – Supondo que temos um simples carrinho de compras, em formato de
lista composta por alguns elementos onde cada elemento da mesma é um
dicionário descrevendo um item, crie um mecanismo que retorna ao usuário
o valor total do carrinho, seu item mais caro e também seu item mais barato.
.................................................................................................................. 239
149 – Uma vez apresentada a lista x = [10, 12, 35], apresente ao menos 5
formas de retornar ao usuário a soma dos elementos dessa lista........... 241
150 – Uma prática comum é para certos contextos gerar listas, dicionários,
ou qualquer outro tipo de contêiner de dados com alguns valores padrão ou
gerados a partir de algum critério. Nessa linha de raciocínio, crie um gerador
de dicionário que, com um dado inteiro n fornecido pelo usuário, retorna
um dicionário composto por todos números antecessores ao número n e
seus valores quando elevados ao quadrado............................................. 244
151 – Crie um diretório chamado backups, dentro desse diretório, crie uma
pasta numerada para cada mês do ano, por exemplo mês_03. Antes de criar
a pasta backup, verifique se a mesma já existe no diretório raiz do projeto.
.................................................................................................................. 245
152 – Crie um simples jogo de adivinhação que gera um número aleatório
de 0 a 10, em seguida recebe um número do usuário e, caso o mesmo tenha
acertado o número, recebe uma mensagem de sucesso, caso contrário,
pede que o usuário insira um novo número até acertar a adivinhação... 248
153 – Crie um template de mala direta contendo uma mensagem, envie a
mensagem para 5 pessoas listadas em uma simples base de dados aqui
representada pela lista nomes = ['Anna', 'Paulo', 'Maria', 'Rafael', 'Patricia']
de modo que a mensagem seja personalizada a cada um dos nomes da lista.
.................................................................................................................. 250
154 – Crie um simples mecanismo que lê um determinado texto, nesse caso
“Python 3.9”, retornando ao usuário a quantidade de números encontrados
no texto e que números são estes, ordenados em ordem posicional (na exata
ordem em que foram identificados no texto). ......................................... 252
155 – Crie um simples mecanismo validador que recebe do usuário um texto
qualquer e retorna ao mesmo se tal texto pertence ou não a uma frase pré-
definida, nesse caso:
'Python é uma excelente linguagem de programação!!!'......................... 253
156 – Escreva uma função que recebe do usuário um número longo
qualquer, o convertendo para notação numérica computacional (número
original considerado como bytes, convertido de acordo com seu tamanho
para kilobytes, megabytes, gigabytes, etc...) e retornando em forma legível
ao usuário. ................................................................................................ 255
157 – Escreva um programa que recebe do usuário um intervalo de tempo
em anos, retornando a partir desta informação o número de ocorrências de
um dia específico (nesse caso, as segundas-feiras) dentro de um dia
específico do mês (nesse caso, no dia primeiro de cada mês do intervalo de
tempo previamente definido)................................................................... 257
158 – Crie uma pasta chamada imagens, entre na pasta e retorne seu
caminho completo para uma variável. Exiba em tela o caminho completo da
pasta imagens. .......................................................................................... 259
159 – Crie um mecanismo otimizado de múltipla escolha que recebe do
usuário um determinado número em sua forma numérica e retorna para o
mesmo o número escrito por extenso:..................................................... 260
160 – Crie uma simples função que soma dois números fornecidos pelo
usuário, retornando o resultado de tal operação matemática. Para a função
soma( ), crie uma documentação acessível pelo usuário diretamente via
código, orientando o mesmo a respeito do funcionamento da função,
simulando que tal função é modularizada ou que de alguma forma seu
código não é explícito. .............................................................................. 262
161 – Implemente um sistema de carrinho com inserção e remoção de
elementos via comando, da forma mais reduzida possível, porém sem fazer
uso de compreensão de listas ou funções vazias, apenas estruturas
condicionais simples. O sistema deve se manter ativo até que o usuário
digite um comando para sair. ................................................................... 265
162 – Escreva um simples módulo / pacote que inspeciona uma
determinada pasta, retornando o nome de todos arquivos de imagem
contidos na pasta, caso houver. ............................................................... 268
163 – Crie um simples mecanismo que valida a inserção de elementos em
um dicionário, verificando se o elemento a ser adicionado ao mesmo já
existe no dicionário atual.......................................................................... 269
164 – Uma vez que temos dois conjuntos numéricos iniciais c1 = (2, 4, 6, 8,
10) e c2 = (2, 4, 6, 8, 10) e um terceiro conjunto nomeado como c3, gerado
a partir do conteúdo de c2. Equiparando os três conjuntos, verifique se os
mesmos possuem mesmo conteúdo e mesmo identificador de memória.
.................................................................................................................. 271
165 – Escreva um programa que procura um certo dado / valor a partir de
múltiplos dicionários, conforme dado inserido pelo usuário. Os dicionários
em questão devem possuir itens domésticos representados com nome e
preço. Retorne ao usuário o item consultado, de qual dicionário foi extraído
e seu valor em reais. ................................................................................. 275
166 – Crie três classes representando três funcionários de uma empresa,
descreva como atributo de classe primário o cargo, e como atributos
secundários seus respectivos nomes e salários, estes dados devem ser
imutáveis. Insira os registros destes funcionários em uma lista e exiba em
tela o conteúdo da lista de funcionários................................................... 277
167 – A partir de uma simples base de dados em uma lista, composta por
['1001', '1002', '1003', '1004', '1005', '1006', None, '1008', '1009'], gere uma
nova base de dados a partir desta contendo apenas dados válidos. Retorne
ao usuário uma mensagem informando a posição de índice do dado inválido
da base de dados original. ........................................................................ 280
168 – Supondo que temos uma lista composta por
['Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado', 'Domingo', 'Segunda'],
reordene os elementos da lista de modo a obter a sequência [‘Segunda’,
'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado', 'Domingo']........................... 282
169 – Uma vez que temos uma lista contendo como elementos próprios uma
série de tuplas compostas por uma categoria e por um tipo de exame de
imagem, reconstrua essa base de dados em um dicionário, unificando as
categorias de exames e agrupando seus subtipos. .................................. 284
170 – Otimize o código anterior fazendo uso de defaultdict( ). Realize a
comparação do tempo de processamento necessário para ambos os
métodos.................................................................................................... 285
171 – Supondo que temos um dicionário, representando usuários de um
sistema, onde cada item do dicionário é um usuário descrito por seu id,
nome, sobrenome e e-mail, exiba em tela de forma estruturada
(exatamente como escrita no corpo do código) o conteúdo desse dicionário.
.................................................................................................................. 290
172 – Crie um mecanismo que gera um número pseudorrandômico, no
intervalo entre 0 e 1, exibindo tal número em tela com 5 casas decimais após
a vírgula..................................................................................................... 292
173 – Dada a lista ['python', 'java', 'php', 'c++', 'c#', 'javascript', 'kotlin', 'r'],
retorne duas novas listas geradas a partir da lista inicial, com seus elementos
reordenados de forma aleatória, porém reproduzível............................. 294
174 - Supondo que a lista data =
[59.19, 72.05, 66.82, 81.15, 66.33, 94.87, 99.65, 70.13, 55.75, 87.71,
95.43, 93.17, 98.54, 68.31, 59.24, 88.94, 79.44, 83.91, 84.4, 68.21] é o
retorno dos últimos 20 registros de um sensor qualquer, retorne a média
simples, a média harmônica e a média geométrica destes valores. Os
resultados devem conter a precisão de 5 casas decimais. ....................... 295
175 - Supondo que para um determinado propósito temos uma classe de
nome Menu, que quando instanciada recebe um dado / valor que deve
obrigatoriamente ser de tipo numérico para criação de seu respectivo
objeto / atributo de classe. A validação por sua vez deve ocorrer a partir do
método construtor da classe. ................................................................... 298
176 - Como bem sabemos, operações matemáticas em Python realizadas a
partir de valores numéricos muito próximos tendem a gerar números com
casas decimais, valores em casas decimais normalmente “arredondados”
por questões de performance. Porém, em computação científica pode ser
necessário números com grande número de casas decimais pois estes
valores, quanto mais extensos, simbolizam maior precisão. Realize a simples
soma de dois valores 0.1 e 0.2, retornando um terceiro número de no
mínimo 20 casas decimais. ....................................................................... 300
177 - Uma vez que temos as frações 1/4 e 5/8, realize a soma dessas frações,
exibindo em tela detalhadamente seus numeradores, denominadores e o
próprio resultado da soma........................................................................ 301
178 - Crie um mecanismo de desempacotamento de dados, capaz de reduzir
listas aninhadas para uma só lista comum sem alterar o comportamento de
seus elementos. A lista a ser usada de referência é:
[[1, 2, [3, 4, 5, 6, 7, 8]], [9, 10, 11, 12]]...................................................... 304
179 - Implemente dois mecanismos de extração de dados a partir de
dicionários aninhados, sendo ao menos um deles o método convencional,
utilizando da notação padrão de extração de dados a partir das chaves de
um dicionário............................................................................................ 305
EXERCÍCIOS NUMPY 308
1 – Realize uma instalação silenciosa da versão mais atualizada da biblioteca
Numpy:...................................................................................................... 308
2 – Realize a importação da biblioteca Numpy, em seguida exiba em tela a
versão da biblioteca instalada em seu ambiente virtualizado:................. 308
3 – Crie uma array do tipo Numpy contendo 15 elementos de valor zero:
.................................................................................................................. 310
4 – Crie uma array Numpy de formato 4x4 preenchida com elementos de
valor inicial zero. Tais elementos devem ser de tipo inteiro.................... 311
5 – Crie uma array Numpy composta de 10 elementos, todos de valor 5:
.................................................................................................................. 312
6 – Crie uma array Numpy composta de números inteiros, dentro do
intervalo de 10 a 40: ................................................................................. 313
7 – Crie uma array Numpy composta apenas de elementos de valores pares,
dentro do intervalo de 10 a 50: ................................................................ 314
8 – Crie uma array Numpy de formato 3x3, composta de elementos de
valores inteiros entre 0 e 8: ...................................................................... 315
9 – Crie uma array Numpy de formato 10x10, preenchida com valor 128,
sendo cada elemento de tipo float:.......................................................... 316
10 – Crie uma array Numpy composta por apenas um elemento numérico
aleatório de valor entre 0 e 1: .................................................................. 318
11 – Crie uma array Numpy composta por 25 números naturais gerados
aleatoriamente: ........................................................................................ 318
12 – Crie uma array Numpy composta por 50 elementos de valores
simetricamente separados (linearmente espaçados, escalonados entre 0 e
1: ............................................................................................................... 319
13 – Dada uma matriz inicial de formato 5x5, composta de elementos
numéricos sequenciais entre 20 e 45, gere uma array Numpy contendo
elementos a partir da terceira linha e segunda coluna da matriz de origem:
.................................................................................................................. 320
14 – Realize exatamente o mesmo processo do exercício anterior, porém
reduzindo o código utilizando de métodos geradores de arrays: ............ 322
15 – Dada uma array Numpy inicial de formato 5x5, com elementos
aleatoriamente gerados dentro do intervalo 20 a 44, exiba em tela a array
em si, a soma de todos seus elementos e o desvio padrão dos mesmos: 323
16 – A partir de uma array Numpy inicial de formato 5x5, composta por
elementos de valores numéricos entre 20 e 44, exiba em tela o resultado da
soma de todos os elementos da primeira, da primeira coluna, da quarta linha
e da quarta coluna: ................................................................................... 325
17 – Crie uma array Numpy de formato 10x10, composta de 100 elementos
de valores escalonados entre 0 e 1:.......................................................... 327
18 – Fornecidas 4 matrizes diferentes, cada uma composta de diversos
elementos de valores próprios, verifique se o retorno padrão gerado por
cada matriz é o valor lógico True.............................................................. 328
19 - Fornecidas 4 matrizes diferentes, cada uma composta de diversos
elementos de valores próprios, verifique se o retorno padrão gerado por
cada linha de cada matriz é o valor lógico True........................................ 331
20 - Dadas 4 matrizes diferentes, cada uma composta de elementos próprios
de valores diversos, verifique se em cada array/matriz existe ao menos um
elemento válido. Também verifique a relação entre os elementos de mesma
coluna em suas respectivas linhas, retornando True caso algum dos
elementos seja válido nesta comparação................................................. 333
21 - Fornecida uma array Numpy composta por alguns elementos próprios,
verifique cada um dos elementos de sua composição, retornando True para
cada elemento que não for de tipo numérico.......................................... 336
22 – A partir de três arrays Numpy A, B e C, composta pelos seguintes
elementos [0.4, 0.5], [0.39999999, 0.5000001] e [0.39, 0.5000001],
respectivamente, verifique se internamente, pelos critérios padrões de
arredondamento, os valores dos elementos entre tais arrays são
considerados iguais:.................................................................................. 337
23 – Reutilizando as arrays A e B do exemplo anterior, realize a comparação
direta do conteúdo de tais arrays:............................................................ 339
24 – Através das mesmas arrays dos exercícios anteriores, realize a
comparação das mesmas no que diz respeito a qual array é maior em função
dos valores de seus elementos:................................................................ 341
25 – Crie uma array Numpy em formato de matriz transversa / matriz de
identidade, contendo 10 elementos de valor 1 na diagonal, todos de tipo
inteiro:....................................................................................................... 342
26 – Nos mesmos moldes do exercício anterior, crie uma matriz, dessa vez
diagonal, composta de 10 elementos em sua diagonal:........................... 344
27 – Crie uma array Numpy composta de 20 elementos de valores gerados
aleatoriamente. A array deve ter a capacidade de ser replicada por seu
método gerador, produzindo os mesmos valores de elementos
independentemente do número de execuções........................................ 345
28 – Fornecida uma array composta de alguns elementos de valores
próprios, exiba em tela cada um dos elementos da array separadamente
respeitando sua ordem:............................................................................ 346
29 – Simulando o resultado do sorteio de uma loteria, gere uma array
Numpy composta de 6 elementos aleatórios, de valores entre 1 e 50, sem
que tais números se repitam e de forma que o resultado possa ser replicado:
.................................................................................................................. 348
30 – Crie uma array Numpy de formato 5x5, composta de números
sequenciais a partir do número 20. Salve esta array em um arquivo nomeado
array.npy. Carregue a array contida no arquivo array.npy para uma variável
e exiba em tela o conteúdo desta array: .................................................. 349
31 – Crie uma array Numpy de 3 linhas e 4 colunas, composta por números
sequenciais até 12. Salve tal array em um arquivo de texto simples nomeado
como array.txt. Carregue este arquivo para uma variável, em seguida
exibindo em tela seu conteúdo................................................................. 350
32 – Usando de uma array Numpy exatamente igual a do exercício anterior,
converta a mesma para uma lista, exibindo em tela seu conteúdo:........ 351
33 – Utilizando da mesma array Numpy proposta pelo exercício anterior,
realize a inversão de suas linhas, tornando a última linha como primeira e
vice versa: ................................................................................................. 352
34 – Dada uma array 4x4 inicialmente composta de elementos de valor 1,
insira uma nova linha acima e abaixo, assim como uma coluna a esquerda e
à direita da matriz inicial........................................................................... 354
35 – A partir de duas arrays Numpy iniciais, uma composta por elementos
numéricos sequenciais entre 0 e 8 distribuídos em formato 4x4, e uma
segunda de mesmo formato composta por elementos numéricos aleatórios.
Exiba em tela quais são os elementos comuns às duas arrays:................ 355
36 – A partir de uma array Numpy formato 2x3 composta de elementos
numéricos aleatórios, extraia os mesmos para uma lista, ordenando-os em
forma numérica crescente:....................................................................... 356
37 – Dada uma array Numpy de formato 3x3, composta de elementos de
valores numéricos decimais, exiba em tela a posição de índice de cada linha
onde consta o elemento de maior valor................................................... 358
38 - Uma vez que temos uma array Numpy composta por [[4.99, 3.49, 9.99],
[1.99, 9.99, 4.99], [14.99, 2.39, 7.29]], exiba em tela de modo crescente cada
elemento de cada segmento e também cada segmento do menor para o
maior de acordo com seus valores: .......................................................... 359
39 - Uma vez que temos uma array Numpy composta por [[4.99, 3.49, 9.99],
[1.99, 8.99, 4.99], [14.99, 2.39, 7.29]], exiba em tela em forma de lista uma
array contendo apenas os elementos de valor numérico maior que 8:... 361
40 - Supondo que temos uma array Numpy 3x3 composta de alguns valores
numéricos quaisquer, filtre a array, modificando seus campos de valores
maiores que 10 para o valor fixo 10.1: ..................................................... 362
41 – Reaproveitando a array Numpy fornecida para o exercício anterior, uma
array bidimensional, reduza a mesma para um vetor (array unidimensional):
.................................................................................................................. 363
42 - Fornecida uma array Numpy de formato 3x3, composta de alguns
elementos numéricos de valores próprios, "anule" os valores, zerando os
mesmos, obtendo assim uma nova array de mesmas características, porém
valores zerados. ........................................................................................ 364
43 – Reutilizando a array do exemplo anterior em sua totalidade, atualize os
valores de todos seus elementos para 5.55: ............................................ 365
44 - Crie uma array Numpy de formato 6x6 que represente uma matriz de
base triangular:......................................................................................... 366
45 - Crie uma array Numpy de formato (2,3,4) composta de elementos de
valores numéricos próprios: ..................................................................... 367
46 - Crie uma imagem ruído de tamanho 800x600p a partir de uma array
Numpy:...................................................................................................... 369
47 - Crie uma imagem ruído de tamanho 200x300p, em 3 canais de cores,
com valores de pixels aleatórios entre 0 a 255, a partir de uma array Numpy.
Tal imagem deve ser reproduzível............................................................ 370
48 - Uma vez que temos em mãos uma array Numpy 2x3 (2,3) composta por
elementos de valores próprios, adicione uma nova dimensão a essa array,
alterando seu formato para (1,2,3): ......................................................... 372
49 - Crie duas imagens ruído de tamanho 300x300 pixels em 3 canais de cor,
adicione uma dimensão para cada imagem transformando-a em uma matriz
de voxels. Crie uma nova imagem ruído a partir das duas imagens geradas
anteriormente:.......................................................................................... 374
50 - Supondo que em uma estrutura de código temos uma array Numpy [[[1,
2, 3], [6, 3, 2]]], formato (1,2,3), reduza uma dimensão desta array tornando-
a uma array formato (2,3):........................................................................ 376
51 - Fornecida uma array Numpy 2x2 composta de valores de 0 a 4 gerada
via arange( ), reverta a posição de todos seus elementos usando apenas da
notação de fatiamento de listas: .............................................................. 377
52 - Supondo que temos uma imagem 10x10 pixels em 3 canais de cor,
extraia apenas os dados referentes ao canal de cor 0 da mesma............ 378
53 - Supondo que temos uma imagem de tamanho 10x10 pixels em 3 canais
de cor, a partir da mesma, crie uma nova imagem de tamanho 5x5. A nova
imagem deve conter os dados referentes ao bloco formado pelas primeiras
5 linhas e 5 colunas da imagem de origem............................................... 379
54 - Dadas duas arrays Numpy A e B compostas de seus elementos próprios,
crie uma terceira array a partir da concatenação simples das duas
anteriores.................................................................................................. 381
55 - Dadas duas arrays Numpy A e B com seus elementos próprios, realize a
concatenação das mesmas, adicionando cada elemento de B ao final de sua
respectiva coluna em A:............................................................................ 382
56 - Fornecidas 3 arrays Numpy unidimensionais a1, a2 e a3 compostas por
elementos de valores próprios, crie uma nova array a partir do
empilhamento das 3 arrays anteriores e a atribua a uma variável:......... 383
57 - Fornecida uma array Numpy estruturada em 5 linhas e 8 colunas,
composta de elementos de valores próprios entre 0 e 9, crie a partir da
mesma 3 novas arrays, sendo a primeira composta dos elementos das
primeiras duas colunas, a segunda array composta dos elementos das
próximas 4 colunas, por fim a última array composta dos elementos das
duas últimas colunas da array de origem: Não é permitido o uso de
fatiamento. ............................................................................................... 384
58 - Gere uma array Numpy formato 10 linhas, 6 colunas, com valores
aleatórios distribuídos entre 0 e 1. Contabilize o número de elementos de
valor 1 e exiba em tela o resultado: A array deve ser reproduzível. ........ 387
59 - Gere uma array Numpy de 10 linhas, 4 colunas, composta de elementos
de valores aleatórios. Defina o número de casas decimais como 5 para cada
um dos elementos. ................................................................................... 389
60 - Fornecida uma array Numpy [1.2e-6, 1.7e-7], exiba em tela os valores
desta array sem a notação científica e com 8 casas decimais.................. 390
61 - Uma vez que temos em mãos uma array Numpy inicialmente
estruturada em 8 linhas, 4 colunas, compostas de elementos de valores
próprios, atualize a array, removendo por completo a terceira coluna da
mesma: Não é permitido o uso de fatiamento......................................... 391
62 - Fornecidas duas arrays Numpy A e B, formatos 2x4, compostas por
elementos de valores próprios, calcule a média aritmética entre as mesmas,
atribuindo os valores retornados a uma nova array................................. 393
63 - Dadas duas arrays Numpy iniciais A e B, reaproveitadas do exercício
anterior, crie uma terceira array composta pelo resultado da multiplicação
dos elementos das arrays A e B................................................................ 394
64 - Fornecida a array Numpy [[3, 4, 9, 2], [5, 3, 2, 5]], crie uma nova array
baseada na raiz quadrada de cada um dos elementos da array de origem.
.................................................................................................................. 396
65 - Providas duas arrays Numpy A e B, compostas de elementos de valores
próprios, calcule e exiba em tela o produto escalar de A sobre B............ 397
66 - Com base na array Numpy [[5, 8, 16], [4, 1, 8], [-4, 4, -11]], calcule o
"traço" de tal matriz (soma dos elementos na diagonal principal). ......... 398
67 - Supondo que temos uma lista convertida para uma array, onde em sua
estrutura temos pares de elementos representando um identificador de um
produto e um preço, exiba em tela tal array, porém apenas com os pares de
elementos referentes aos produtos aleatoriamente distribuídos. O
resultado deve ser replicável.................................................................... 399
68 - Uma vez que temos uma array Numpy [2, 1, 6, 4, 5, 3], retorne a
referência dos índices que ordenariam de forma crescente os elementos da
array:......................................................................................................... 400
69 - Gere uma array Numpy estruturada em 10 linhas, 8 colunas, composta
por elementos de valores aleatórios. Com base na primeira array, crie uma
segunda array, porém com valores arredondados em duas casas decimais:
.................................................................................................................. 401
70 - A partir de uma array Numpy [4, 5, 1] que representa um polinômio A(x)
= 4x² + 5x + 1, retorne as raízes quadradas destes valores. ..................... 403
71 - Dada uma array Numpy [[-4, 3, 0, 1, -5], [6, -4, -2, 1, 3]], retorne o "sinal"
de cada elemento, exibindo em tela tais valores. .................................... 404
72 - Crie duas arrays Numpy composta dos respectivos elementos '001',
'002' e '003' para a primeira array, 'ABC', 'DFG' e 'HIJ' para a segunda, valide
tais elementos como de tipo string, em seguida crie uma terceira array a
partir da concatenação de tais arrays anteriores..................................... 405
73 - Fornecida uma array Numpy composta inicialmente por ['1', '2', '3', '4',
'5'], com elementos em forma de string mesmo, adicione para cada um dos
elementos três zeros à sua esquerda, obtendo '0001', '0002' e assim por
diante. ....................................................................................................... 406
74 - A partir da array Numpy [['PLW CDR 11B TEN', 'AMC LPP'], ['CDR PKO
KGH', 'CCC QMK']], separe os elementos das arrays, isolando cada string em
uma nova array......................................................................................... 407
75 - # Dada uma array Numpy composta por [[' #Steam#games#'], ['#
#YouTube#videos']], remova os caracteres # substituindo os mesmos por
espaços em branco dentro da mesma string, além disso, remova quaisquer
espaços em branco antes e depois das strings......................................... 408
76 - # A partir de uma array Numpy alimentada com algumas hashtags com
referência a música e estilos musicais, contabilize o número de palavras
'metal' contidas em cada um dos elementos da array............................. 408
EXERCÍCIOS PANDAS 410
1 – Realize uma instalação silenciosa da versão mais atualizada da biblioteca
Pandas:...................................................................................................... 410
2 – Importe a biblioteca Pandas, a referenciando apenas como “pd”:.... 410
3 – Exiba em tela a versão da biblioteca Pandas instalada em seu Sistema:
.................................................................................................................. 411
4 - Fornecida uma lista composta de 5 nomes/elementos em forma de
string, crie uma Série a partir desta lista, exibindo em tela seu tipo de dado
e conteúdo:............................................................................................... 412
5 - A partir de um dicionário composto por seus respectivos itens de
chave:valor, crie uma Serie, exibindo em tela seu conteúdo:.................. 413
6 - Dado um dicionário composto de seus itens próprios, converta o mesmo
para uma Serie, em seguida exiba em tela apenas seus valores em forma de
lista:........................................................................................................... 414
7 - Uma vez fornecido um dicionário composto de seus itens próprios,
reaproveitado do exercício anterior, converta tal contêiner de dados em um
DataFrame, em seguida adicionando uma coluna nomeada 'Preço'. Exiba em
tela o conteúdo do DataFrame assim como seu tipo de dado:................ 416
8 - Replique o DataFrame criado no exemplo anterior, exibindo em tela seu
sumário informativo: ................................................................................ 417
9 - A partir do DataFrame anterior, exiba em tela as métricas aplicadas sobre
seus valores numéricos (nº de elementos, média simples de seus valores,
desvio padrão, valor mínimo e valor máximo): ........................................ 418
10 - Reaproveitando o dicionário fornecido para o exemplo anterior,
transforme o mesmo em uma Serie, adicionando dois novos itens de um
dicionário 'Cel Nokia 5.4': 1199 e 'Cel iPhone 14': 8999. Exiba em tela o
conteúdo da Serie após atualização: ........................................................ 420
11 - A partir do dicionário do exercício anterior, crie um DataFrame,
inserindo um índice padrão no mesmo e duas colunas nomeadas 'Item' e
'Preço'. Exiba em tela o conteúdo do DataFrame após concluídas suas
modificações............................................................................................. 422
12 - Complementar ao exercício anterior, uma vez criado um DataFrame a
partir de um dicionário, crie a partir do mesmo um novo DataFrame onde o
índice é baseado nos valores dos itens em ordem crescente: Exiba em tela
os dois DataFrames................................................................................... 423
13 - Dando continuidade com base no mesmo DataFrame do exemplo
anterior, a partir do DataFrame pdestoque, calcule e exiba em tela a média
dos valores dos itens................................................................................. 425
14 - Nos mesmos moldes do exercício anterior, a partir do DataFrame
pdestoque exiba em tela o maior e o menor valor encontrado em seus
elementos, respectivamente: ................................................................... 426
15 - A partir do DataFrame criado para os exercícios anteriores, separe
somente a coluna referente aos nomes dos itens, exibindo em tela a lista de
todos estes itens: ...................................................................................... 428
16 - Utilizando do método pd.Series( ), gere uma Serie com indexação
própria e composta por 10 elementos pares entre 0 e 20:...................... 430
17 - Fornecida uma lista ['01', '02', '03', '04', '05'], converta a mesma para
uma Serie, em seguida altere seu tipo de dado para de tipo inteiro. Exiba em
tela os tipos de dados antes e após a conversão, assim como o conteúdo da
Serie. ......................................................................................................... 432
18 - Crie um DateTimeIndex referente ao mês de maio do ano de 2022, cada
elemento deste objeto deve ser um dos dias do mês de maio................ 434
19 - Crie um DataFrame composto de todas as segundas-feiras desde o início
do ano 2020 até a metade do ano 2022: Cada elemento do DataFrame deve
estar na notação ano-mês-dia. Exiba em tela o conteúdo do DataFrame.
.................................................................................................................. 435
20 - Crie um objeto de tipo DateTimeIndex, contendo todas as horas do mês
de maio de 2022. Exiba em tela o número total de horas do mês de maio
contabilizadas pelo método...................................................................... 437
21 - A partir de um objeto DateTimeIndex, representando o mês de maio de
2022, crie um DataFrame composto tanto pela data referente a cada dia do
mês, quanto do número de cada dia em relação ao número de dias do ano.
.................................................................................................................. 438
22 - Crie um objeto DateTimeIndex referente ao mês de maio de 2022, insira
três novas colunas do DataFrame 'Ano', 'Mes' e ' Dia', atribuindo para tais
colunas seus devidos elementos: ............................................................. 440
23 - Crie um objeto DateTimeIndex referente ao mês de maio de 2022, insira
três novas colunas do DataFrame 'Ano', 'Mes' e ' Dia', atribuindo para tais
colunas seus devidos elementos, por fim, remova a coluna Data: .......... 442
24 - A partir de um dicionário composto por três itens, sendo cada um dos
mesmos compostos por números aleatoriamente gerados para suas
respectivas chaves 'normal', 'uniforme' e 'binomial', organize tais dados em
um DataFrame, defina o campo 'normal' como índice. Exiba em tela o
DataFrame................................................................................................. 444
25 - A partir do modelo proposto para o exercício anterior, crie um novo
DataFrame com índice manual, organizando os demais elementos de acordo
com o índice.............................................................................................. 447
26 - A partir do dicionário proposto para os exercícios anteriores, apenas de
tamanho modificado para 50 valores em cada chave, uma vez transformado
em um DataFrame, exiba em tela apenas os 5 primeiros e os 5 últimos
elementos do DataFrame. ........................................................................ 449
27 - Ainda fazendo uso do DataFrame gerado para os exemplos anteriores,
contabilize e exiba em tela o valor de 0 e 1 encontrados para o campo
'binomial':.................................................................................................. 450
28 - Encerrando o uso do DataFrame dfnumeros, exporte para um arquivo
csv os últimos 25 elementos deste DataFrame. Carregue o arquivo gerado,
atribuindo seu conteúdo para uma nova variável, em seguida exiba seu
conteúdo em tela...................................................................................... 452
29 - A partir do link fornecido, atribua a base de dados Telco Customer Churn
a um DataFrame associado a uma variável. Exiba em tela as 5 primeiras
linhas da base de dado.............................................................................. 454
30 - Exiba em tela os nomes de todas as colunas da base de dados /
DataFrame:................................................................................................ 456
31 - Remova as colunas OnlineBackup, DeviceProtection, TechSupport,
MultipleLines, OnlineSecurity, PaperlessBilling e PaymentMethod:........ 457
32 - Seguindo com o DataFrame proposto, exiba em tela o número de
registros inválidos para cada uma das categorias restantes: ................... 458
33 - Retorne o valor da mediana dos valores da coluna TotalCharges:.... 460
34 - Preencha os dados ausentes/faltantes da coluna TotalCharges com o
valor da média calculada anteriormente para a mesma:......................... 460
35 - Modifique a notação dos valores da coluna TotalCharges, convertendo
tais valores para números com casas decimais. Exiba em tela apenas os
valores da coluna TotalCharges, mais especificamente o número de
ocorrências de tais valores........................................................................ 462
36 - Converta as colunas 'gender', 'SeniorCitizen', 'Partner', 'Dependents',
'PhoneService', 'InternetService', 'StreamingTV', 'Contract',
'StreamingMovies' e 'Churn' para tipo categórico. Da mesma forma,
converta as colunas 'tenure' e 'MonthlyCharges' para tipo numérico:.... 464
37 - Exiba em tela de modo organizado os dados categóricos da base de
dados df: ................................................................................................... 467
38 - Exiba em tela a distribuição dos valores da coluna Churn da base de
dados:........................................................................................................ 468
39 - A partir dos dados da coluna 'Churn', calcule a mediana de seus valores
com base na coluna 'MonthlyCharges':.................................................... 469
40 - Salve os valores produzidos para os encargos médios mensais calculados
anteriormente em um dicionário. Exiba em tela o dicionário.................. 470
41 – Exiba em tela os 5 maiores e os 5 menores valores encontrados para os
encargos mensais computados no DataFrame......................................... 471
42 – Exiba em tela o valor da soma cumulativa dos encargos mensais
calculados ao longo de todo período mensurado: ................................... 472
43 - Salve uma amostra da base de dados em formato de planilha Excel,
contendo apenas os 50 primeiros registros da base de dados de origem:
.................................................................................................................. 473
MINI PROJETOS 474
01 - A partir do texto fornecido, retorne ao usuário o tipo de dado e o
número de elementos. Em seguida realize o tratamento do texto,
removendo suas divisões e caracteres especiais. Por fim, contabilize as
palavras únicas do texto, exibindo em tela o número de ocorrência das
mesmas e separadamente as dez mais recorrentes................................. 474
02 – Escreva um programa que recebe do usuário 5 números quaisquer, no
intervalo entre 0 e 99, separados por vírgula, exibindo tais números tanto
em formato de lista quanto de conjunto numérico. ................................ 484
Em um segundo momento, aprimore o código inicial implementando a
validação das entradas do usuário de modo a conferir se o mesmo digitou 5
números conforme solicitado................................................................... 484
Do mesmo modo, implemente a validação no que diz respeito ao valor
máximo de cada número fornecido pelo usuário (nesse caso 99)........... 484
Por fim, reescreva o programa inicial em formato orientado à objetos: . 484
CONCLUSÃO 500
LIVROS 501
CURSO 502
INTRODUÇÃO
Se tratando de programação, independentemente da linguagem, um
dos maiores erros dos estudantes ou entusiastas da área é o fato de os
mesmos apenas se limitarem a replicar os exemplos dos conceitos da
linguagem, não praticando de fato, seja explorando outras possibilidades de
mesmo propósito, seja não resolvendo exercícios que estimulem a aplicação
da lógica e implementação das ferramentas que a linguagem de programação
oferece para resolução de problemas computacionais.
Sendo assim, o intuito deste pequeno livro é trazer à tona desde os
conceitos mais básicos da linguagem Python até tópicos específicos e
avançados por meio de exercícios, de modo que cada conceito será revisado
conforme a necessidade de sua aplicação, assim como para programadores
que já possuem uma bagagem de conhecimento, tais exemplos servirão para
os mesmos realizar engenharia reversa nos conceitos entendendo os porquês
de cada estrutura de código.
Esse livro foi escrito de forma que os exercícios estão dispostos de
forma gradual no que diz respeito à sua dificuldade, todo e qualquer exercício
terá suas devidas explicações para cada linha de código, porém de forma
gradual à medida que avançaremos pelos exercícios iremos cada vez nos
atendo mais às suas particularidades do que conceitos iniciais. Em função
disso, faça os exercícios em sua ordem, não avançando quando encontrada
alguma dificuldade, assim como quando se sentir confiável, tente outros
métodos de resolução dos mesmos exercícios.
Dessa forma, garanto que você aprenderá de uma vez por todas como
aplicar seus conhecimentos em problemas computacionais reais.
Então... vamos direto para prática!
EXERCÍCIOS PYTHON
1 - Crie três variáveis com três tipos de dados diferentes, respeitando sua
sintaxe:
nome = 'Fernando'
ano = 1987
valor = 19.99
Para declarar uma variável basta dar um nome para a mesma, seguido
do operador de atribuição “ = “ e do conteúdo a ser atribuído para essa variável.
A forma como o atributo da variável é escrita fará com que o
interpretador identifique automaticamente o tipo de dado em questão. Nesse
caso, para a variável nome temos uma string, da mesma forma para variável
ano temos um int assim como para variável valor temos um dado atribuído do
tipo float.
2 - Crie um comentário de no máximo uma linha:
# Exemplo de comentário simples, de até uma linha.
Comentários curtos em Python devem iniciar com o símbolo “ # “, dessa
forma o conteúdo desta linha de código será simplesmente ignorado pelo
interpretador.
3 - Crie um comentário de mais de uma linha:
'''Apenas explorando a possibilidade de criar um
comentário composto de mais de uma linha, que
permite uma explicação mais elaborada sobre o
código em questão.'''
Todo comentário maior que uma linha em Python deve ter seu
conteúdo entre aspas triplas simples ‘’’ ‘’’ ou aspas triplas duplas “”” “””, de
acordo com a preferência do desenvolvedor.
4 - Escreva um programa que mostra em tela a mensagem: Olá Mundo!!!
print('Olá Mundo!!!')
Usando da função print( ) por sua vez parametrizada com a string ‘Olá
Mundo!!!’, ao executar o código será exibido em tela / em terminal a
mensagem Olá Mundo!!!.
O retorno será:
Olá Mundo!!!
5 - Crie uma variável nome e atribua para a mesma um nome digitado pelo
usuário:
nome = input('Por favor, digite o seu nome: ')
De acordo com o enunciado do exercício, inicialmente declaramos uma
variável de nome nome, que por meio da função input( ) pede que o usuário
digite algo, nesse caso, seu próprio nome.
Ao terminar de digitar o nome e pressionar a tecla ENTER, o conteúdo
digitado estará atribuído para a variável nome.
6 - Exiba em tela o valor e o tipo de dado da variável num1: Sendo num1 = 1987.
num1 = 1987
print(num1)
print(type(num1))
Inicialmente é declarada uma variável de nome num1, que por sua vez
tem atribuída o número int 1987. Parametrizando a função print( ) com a
variável num1, obteremos como retorno o valor da mesma.
Já quando parametrizamos nossa função print( ) com a função type( )
por sua vez parametrizada com a variável num1, o retorno esperado é que seja
exibido em tela o tipo de dado associado a essa variável.
O retorno será:
1987
Int
7 - Peça para que o usuário digite um número, em seguida exiba em tela o
número digitado.
num = input('Digite um número: ')
print(f'O número digitado é : {num}')
Declarada a variável num, por sua vez parametrizada com a função
input( ) que interage com o usuário pedindo que o mesmo digite um número,
podemos exibir esse número em tela via função print( ).
Usando de f’strings e máscaras de substituição podemos criar um
retorno um pouco mais elaborado, incorporando na string o conteúdo da
variável num.
Supondo que o usuário tenha digitado 106, o retorno será:
O número digitado é: 106
8 - Peça para que o usuário digite um número, em seguida o converta para float,
exibindo em tala tanto o número em si quanto seu tipo de dado.
num = input('Digite um número: ')
num = float(num)
print(num)
print(type(num))
Uma vez criada nossa variável num, com seu conteúdo vindo da
interação com o usuário, podemos atualizar o conteúdo dessa variável,
mudando inclusive seu tipo de dado. Para isso, nossa variável num recebe como
atributo o método float( ) parametrizado com ela mesma.
Dessa forma, o conteúdo atribuído a variável num é convertido de
formato e salvo sobrescrevendo o conteúdo antigo dessa variável. Por meio da
função print( ) podemos exibir em tela tanto o tipo quanto o conteúdo da
variável num.
Supondo que o usuário tenha digitado 52, o retorno será:
52
float
9 - Crie uma lista com 5 nomes de pessoas:
nomes = ['Ana', 'Carlos', 'Daiane', 'Fernando', 'Maria']
print(nomes)
Uma lista em Python, tipo de dado muito similar a uma array em outras
linguagens de programação, é uma estrutura de dados que serve para guardar
mais de um dado associado a uma variável, sem distinção da quantia nem do
tipo de dado em questão, a única ressalva é que para que tal tipo de estrutura
de dado seja reconhecida corretamente pelo interpretador do Python, a
mesma deve obedecer a sintaxe, toda e qualquer lista tem seus dados dentro
de “ [ ] “ colchetes.
O retorno será:
[‘Ana’, ‘Carlos’, ‘Daiane’, ‘Fernando’, ‘Maria’]

Mais conteúdo relacionado

Mais procurados

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2isa_ise
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informáticasocrahn
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 

Mais procurados (20)

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 

Semelhante a 300 Exercícios Python

50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...Fernando Belome Feltrin
 
Apostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spoladorApostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spoladorEliene Meira
 
Apostila fireworks-cs5
Apostila fireworks-cs5Apostila fireworks-cs5
Apostila fireworks-cs5aulaemvideo
 
Algoritmos jabour
Algoritmos jabourAlgoritmos jabour
Algoritmos jabourfjabour
 
Apostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spoladorApostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spoladorFernando Macedo
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmospaula maria
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmososmarpx
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosRicardo Borges
 
Apostila adobe-flash-cs5
Apostila adobe-flash-cs5Apostila adobe-flash-cs5
Apostila adobe-flash-cs5aulaemvideo
 
Apostila completa de access
Apostila completa de accessApostila completa de access
Apostila completa de accessmazinho1955
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199Alan Lima
 
Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programaçãoJucir
 

Semelhante a 300 Exercícios Python (20)

50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
50+ Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
 
Bsf v6 manual
Bsf v6 manualBsf v6 manual
Bsf v6 manual
 
Apostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spoladorApostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spolador
 
Apostila fireworks-cs5
Apostila fireworks-cs5Apostila fireworks-cs5
Apostila fireworks-cs5
 
Apostila fireworks-cs5
Apostila fireworks-cs5Apostila fireworks-cs5
Apostila fireworks-cs5
 
Algoritmos jabour
Algoritmos jabourAlgoritmos jabour
Algoritmos jabour
 
Apostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spoladorApostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spolador
 
MANUAL-l355__uu7.pdf
MANUAL-l355__uu7.pdfMANUAL-l355__uu7.pdf
MANUAL-l355__uu7.pdf
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
apostila Algoritmos.pdf
apostila Algoritmos.pdfapostila Algoritmos.pdf
apostila Algoritmos.pdf
 
Apostila adobe-flash-cs5
Apostila adobe-flash-cs5Apostila adobe-flash-cs5
Apostila adobe-flash-cs5
 
Acw2 q adminhb-por
Acw2 q adminhb-porAcw2 q adminhb-por
Acw2 q adminhb-por
 
Apostila completa de access
Apostila completa de accessApostila completa de access
Apostila completa de access
 
Php
PhpPhp
Php
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199
 
TG KickGames
TG KickGamesTG KickGames
TG KickGames
 
Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programação
 

300 Exercícios Python

  • 1.
  • 2. 300 EXERCÍCIOS RESOLVIDOS E COMENTADOS EM PYTHON FERNANDO FELTRIN
  • 3. AVISOS Este livro conta com mecanismo antipirataria Amazon Kindle Protect DRM. Cada cópia possui um identificador próprio rastreável, a distribuição ilegal deste conteúdo resultará nas medidas legais cabíveis. É permitido o uso de trechos do conteúdo para uso como fonte desde que dados os devidos créditos ao autor.
  • 4. SOBRE O AUTOR Fernando Feltrin é Engenheiro da Computação com especializações na área de ciência de dados e inteligência artificial, Professor licenciado para docência de nível técnico e superior, Autor de mais de 10 livros sobre programação de computadores e responsável pelo desenvolvimento e implementação de ferramentas voltadas a modelos de redes neurais artificiais aplicadas à radiologia (diagnóstico por imagem).
  • 5. SISTEMÁTICA Este livro é um tratado prático, logo, seu formato é um tanto quanto diferente do convencional por se tratar de um compêndio de exercícios resolvidos e comentados. Sendo assim, todos os exercícios estarão dispostos no molde acima representado, facilitando o entendimento dos mesmos de acordo com este padrão.
  • 6. ÍNDICE Sumário AVISOS 3 SOBRE O AUTOR 4 SISTEMÁTICA 5 ÍNDICE 6 INTRODUÇÃO 37 EXERCÍCIOS PYTHON 38 1 - Crie três variáveis com três tipos de dados diferentes, respeitando sua sintaxe:........................................................................................................ 38 2 - Crie um comentário de no máximo uma linha: ..................................... 38 3 - Crie um comentário de mais de uma linha:........................................... 39 4 - Escreva um programa que mostra em tela a mensagem: Olá Mundo!!! .................................................................................................................... 39 5 - Crie uma variável nome e atribua para a mesma um nome digitado pelo usuário: ....................................................................................................... 40 6 - Exiba em tela o valor e o tipo de dado da variável num1: Sendo num1 = 1987. ........................................................................................................... 40 7 - Peça para que o usuário digite um número, em seguida exiba em tela o número digitado. ........................................................................................ 41 8 - Peça para que o usuário digite um número, em seguida o converta para float, exibindo em tala tanto o número em si quanto seu tipo de dado.... 41 9 - Crie uma lista com 5 nomes de pessoas:............................................... 42 10 - Mostre o tamanho da lista nomes / o número de elementos da lista nomes: ........................................................................................................ 43 Mostre separadamente apenas o terceiro elemento dessa lista: .............. 43
  • 7. 11 - Some os valores das variáveis num1 e num2: Sendo num1 = 52 e num2 = 106. Por fim exiba em tela o resultado da soma. .................................... 43 12 - Some os valores das variáveis num1 e num2, atribuindo o resultado da soma a uma nova variável homônima. Exiba em tela o conteúdo dessa variável........................................................................................................ 44 13 - Subtraia os valores de num1 e num2: ................................................. 45 14 - Realize as operações de multiplicação e de divisão entre os valores das variáveis num1 e num2:.............................................................................. 45 15 - Eleve o valor de num1 a oitava potência, sendo num1 = 51:.............. 46 16 - Escreva um programa que pede que o usuário dê entrada em dois valores, em seguida, exiba em tela o resultado da soma, subtração, multiplicação e divisão desses números:.................................................... 46 17 - Dadas duas variáveis num1 e num2 com valores 100 e 89, respectivamente, verifique se o valor de num1 é maior que o de num2: . 47 18 - Verifique se os valores de num1 e de num2 são iguais:...................... 48 19 - Verifique se os valores de num1 e de num2 são diferentes:............... 48 20 - Verifique se o valor de num1 é igual ou menor que 100: ................... 49 21 - Verifique se os valores de num1 e de num1 são iguais ou menores que 100. ............................................................................................................. 49 22 - Verifique se os valores de num1 ou de num2 são iguais ou maiores que 100: ............................................................................................................. 50 23 - Verifique se o valor de num1 consta nos elementos de lista1. Sendo num1 = 100 e lista1 = [10, 100, 1000, 10000, 100000]............................... 51 24 - Crie duas variáveis com dois valores numéricos inteiros digitados pelo usuário, caso o valor do primeiro número for maior que o do segundo, exiba em tela uma mensagem de acordo, caso contrário, exiba em tela uma mensagem dizendo que o primeiro valor digitado é menor que o segundo: .................................................................................................................... 51 25 - Peça para que o usuário digite um número, em seguida exiba em tela uma mensagem dizendo se tal número é PAR ou se é ÍMPAR:.................. 52
  • 8. 26 - Crie uma variável com valor inicial 0, enquanto o valor dessa variável for igual ou menos que 10, exiba em tela o próprio valor da variável. A cada execução a mesma deve ter seu valor atualizado, incrementado em 1 unidade. ...................................................................................................... 53 27 - Crie uma estrutura de repetição que percorre a string ‘Nikola Tesla’, exibindo em tela letra por letra desse nome:............................................. 54 28 - Crie uma lista com 8 elementos de uma lista de compras de supermercado, por meio de um laço de repetição for liste individualmente cada um dos itens dessa lista...................................................................... 55 29 - Crie um programa que lê um valor de início e um valor de fim, exibindo em tela a contagem dos números dentro desse intervalo......................... 56 30 - Crie um programa que realiza a contagem de 0 a 20, exibindo apenas os números pares: ........................................................................................... 57 31 - Crie um programa que realiza a Progressão Aritmética de 20 elementos, com primeiro termo e razão definidos pelo usuário: ................................. 58 32 - Crie um programa que exibe em tela a tabuada de um determinado número fornecido pelo usuário:................................................................. 59 33 - Crie um programa que realiza a contagem regressiva de 20 segundos: .................................................................................................................... 60 34 - Crie um programa que realiza a contagem de 1 até 100, usando apenas de números ímpares, ao final do processo exiba em tela quantos números ímpares foram encontrados nesse intervalo, assim como a soma dos mesmos:...................................................................................................... 62 35 - Crie um programa que pede ao usuário que o mesmo digite um número qualquer, em seguida retorne se esse número é primo ou não, caso não, retorne também quantas vezes esse número é divisível: .......................... 63 36 - Crie um programa que pede que o usuário digite um nome ou uma frase, verifique se esse conteúdo digitado é um palíndromo ou não, exibindo em tela esse resultado...................................................................................... 64 37 - Declare uma variável que por sua vez recebe um nome digitado pelo usuário, em seguida, exiba em tela uma mensagem de boas-vindas que incorpora o nome anteriormente digitado, fazendo uso de f’strings. ....... 66
  • 9. 38 - Peça para que o usuário digite um número, diretamente dentro da função print( ) eleve esse número ao quadrado, exibindo o resultado incorporado a uma mensagem:.................................................................. 67 39 - Dada a seguinte lista: nomes = [‘Ana’, ‘Carlos’, ‘Daiane’, ‘Fernando’, ‘Maria’], substitua o terceiro elemento da lista por ‘Jamile’:..................... 68 40 - Adicione o elemento ‘Paulo’ na lista nomes:....................................... 69 41 - Adicione o elemento ‘Eliana’ na lista nomes, especificamente na terceira posição da lista:........................................................................................... 69 42 - Remova o elemento ‘Carlos’ da lista nomes:....................................... 70 43 - Mostre o segundo, terceiro e quarto elemento da lista nomes. Separadamente, mostre apenas o último elemento da lista nomes:......... 70 44 – Crie um dicionário via método construtor dict( ), atribuindo para o mesmo ao menos 5 conjuntos de chaves e valores representando objetos e seus respectivos preços: ............................................................................. 71 45 – A partir da seguinte lista [‘C’, ‘JavaScript’, ‘Lua’, ‘Python’] verifique primeiramente e retorne ao usuário se a linguagem de programação Python consta na lista. Retorne uma mensagem amigável ao usuário para estas duas situações: .................................................................................................... 72 46 – A partir de um simples dicionário composto por três itens, {‘Alto Nível’: ‘Python, ‘Médio Nível’: ’C’, ‘Baixo Nível’: ‘Assembly’}, verifique se ‘Python’ consta no dicionário em questão, utilizando de negação lógica para tal verificação:.................................................................................................. 74 47 – Crie um dicionário usando o construtor de dicionários do Python, alimente os valores do mesmo com os dados de duas listas: .................... 75 48 - Crie uma simples estrutura de dados simulando um cadastro para uma loja. Nesse cadastro deve conter informações como nome, idade, sexo, estado civil, nacionalidade, faixa de renda, etc... Exiba em tela tais dados: .................................................................................................................... 76 49 - Crie um programa que recebe dados de um aluno como nome e suas notas em supostos 3 trimestres de aula, retornando um novo dicionário com o nome do aluno e a média de suas notas: ................................................ 77
  • 10. 50 - Crie um sistema de perguntas e respostas que interage com o usuário, pedindo que o mesmo insira uma resposta. Caso a primeira questão esteja correta, exiba em tela uma mensagem de acerto e parta para a próxima pergunta, caso incorreta, exiba uma mensagem de erro e pule para próxima pergunta:..................................................................................................... 79 51 - Crie uma função de nome funcao1, que por sua vez não realiza nenhuma ação:............................................................................................................ 81 52 - Atribua a função funcao1 a uma variável:........................................... 81 53 - Crie uma função que retorna um valor padrão:.................................. 82 54 - Crie uma função que exibe em tela uma mensagem de boas-vindas: 83 55 - Crie uma função que recebe um nome como parâmetro e exibe em tela uma mensagem de boas-vindas. O nome deve ser fornecido pelo usuário, incorporado na mensagem de boas-vindas da função:.............................. 83 56 - Crie uma função que recebe um valor digitado pelo usuário e eleva esse valor ao quadrado:...................................................................................... 84 57 - Crie uma função com dois parâmetros relacionados ao nome e sobrenome de uma pessoa, a função deve retornar uma mensagem de boas- vindas e esses dados devem ser digitados pelo usuário:............................ 85 58 - Crie uma função com dois parâmetros, sendo um deles com um dado/valor predeterminado:...................................................................... 86 59 - Crie uma função com três parâmetros, sendo dois deles com dados/valores padrão, alterando o terceiro deles contornando o paradigma da justaposição de argumentos:................................................................. 88 60 - Crie uma função que pode conter dois ou mais parâmetros, porém sem um número definido e declarado de parâmetros: ..................................... 89 61 - Crie uma função de número de parâmetros indefinido, que realiza a soma dos números repassados como parâmetro, independentemente da quantidade de números:............................................................................. 90 62 - Crie uma função que recebe parâmetros tanto por justaposição (*args) quanto nomeados (**kwargs): ................................................................... 91
  • 11. 63 - Escreva um programa que retorna o número de Fibonacci: Sendo o número de Fibonacci um valor iniciado em 0 ou em 1 onde cada termo subsequente corresponde à soma dos dois anteriores.............................. 93 64 - Crie um programa modularizado, onde em um arquivo teremos uma lista de médicos fictícios a serem consultados, em outro arquivo, teremos a estrutura principal do programa, que por sua vez realiza o agendamento de uma consulta médica com base na interação com o usuário..................... 94 65 - Aprimore o exemplo anterior, incluindo um módulo simulando o cadastro de usuários em um plano de saúde, apenas permitindo o agendamento de consulta caso o usuário que está interagindo com o programa conste no cadastro:.................................................................... 97 66 - Crie uma função que recebe parâmetros tanto por justaposição quanto nomeados a partir de uma lista e de um dicionário, desempacotando os elementos e reorganizando os mesmos como parâmetros da função: ..... 99 67 - Crie uma classe de nome Carro e lhe dê três atributos: nome, ano e cor. .................................................................................................................. 100 68 - Crie uma classe Pessoa, instancie a mesma por meio de uma variável e crie alguns atributos de classe dando características a essa pessoa. Por fim exiba em tela alguma mensagem que incorpore os atributos de classe criados:...................................................................................................... 101 69 - Crie uma classe que armazena algumas características de um carro, em seguida crie dois carros distintos, de características diferentes, usando da classe para construção de seus objetos/variáveis.................................... 102 70 - Crie uma classe Pessoa com método inicializador e alguns objetos de classe vazios dentro da mesma que representem características de uma pessoa: ...................................................................................................... 103 71 - Crie uma classe de nome Inventario com os atributos de classe pré- definidos item1 e item2, a serem cadastrados manualmente pelo usuário, simulando um simples carrinho de compras:........................................... 104 72 - Crie uma classe Biblioteca que possui uma estrutura molde básica para cadastro de um livro de acordo com seu título, porém que espera a inclusão de um número não definido de títulos. Em seguida cadastre ao menos 5 livros nessa biblioteca:.............................................................................. 105
  • 12. 73 - Crie uma calculadora simples de 4 operações (soma, subtração, multiplicação e divisão) usando apenas de estrutura de código orientada a objetos: ..................................................................................................... 107 74 - Mostre via terminal a string ‘Bem vindo ao mundo da programação!!!’ de trás para frente usando indexação:..................................................... 108 75 - Escreva um programa que encontre todos os números que são divisíveis por 7, mas que não são múltiplos de 5, entre 2000 e 2200 (ambos incluídos). Os números obtidos devem ser impressos em sequência, separados por vírgula e em uma única linha:................................................................... 108 76 - Escreva um programa, uma calculadora simples de 4 operações, onde o usuário escolherá entre uma das 4 operações (soma, subtração, multiplicação e divisão). Lembrando que o usuário digitará apenas dois valores, e escolherá apenas uma operação matemática do menu. ......... 110 77 - Crie uma função que recebe um número e retorna o mesmo dividido em duas metades, sendo cada metade um elemento de uma lista:........ 111 78 - Crie um programa que gera um dicionário a partir de um valor digitado pelo usuário, de modo que serão exibidos todos valores antecessores a este número multiplicados por eles mesmos. Supondo que o usuário tenha digitado 4, a saída deve ser {1: 1, 2: 4, 3: 9, 4: 16} : ................................. 112 79 - Defina uma função que pode aceitar duas strings como entrada, exibindo em tela apenas a string de maior tamanho/comprimento. Caso as duas strings tenham mesmo tamanho, exiba em tela as duas:................ 113 80 - Escreva um programa que recebe um texto do usuário e o converte para código Morse, exibindo em tela o texto em formato Morse, seguindo a padronização “ . - " (ponto, traço). ........................................................... 115 81 - Escreva um programa que recebe do usuário um número de 0 a 100 e transcreve o mesmo por extenso. Por exemplo o usuário digita 49, então é retornara a string ‘quarenta e nove’......................................................... 116 82 - Crie uma função que recebe um nome e um sobrenome do usuário, retornando os mesmos no padrão americano, ou seja, sobrenome primeiro, seguido do nome: ..................................................................................... 120
  • 13. 83 - Crie um programa que gera uma senha aleatória, com um tamanho definido pelo usuário:............................................................................... 121 84 - Crie uma função que exibe em tela tanto o conteúdo de uma variável local quanto de uma variável global, sendo as variáveis de mesmo nome, porém uma não substituindo a outra:...................................................... 122 85 – Crie um programa que recebe um número digitado pelo usuário, convertendo o mesmo para algarismo de número Romano, exibindo em tela esse dado já convertido:........................................................................... 123 86 – Crie um programa que mostra a data atual, formatada para dia-mês- ano, hora:minuto:segundo. ...................................................................... 125 87 – Crie um programa que exibe a versão atual do Python instalada no sistema:..................................................................................................... 126 88 – A partir de uma lista composta apenas de dados numéricos, gere outra lista usando de list comprehension usando como base a lista anterior, compondo a nova com os valores dos elementos originais elevados ao cubo: .................................................................................................................. 127 89 – Dada uma estrutura inicial de um carrinho de compras com 5 itens e seus respectivos valores, assim como uma função que soma os valores dos itens do carrinho, retornando um valor total. Aprimore a função deste código usando de list comprehension:..................................................... 128 90 – Escreva uma função que recebe do usuário um número qualquer e retorna para o mesmo tal número elevado ao quadrado. Crie uma documentação para essa função que possa ser acessada pelo usuário diretamente via IDE. ................................................................................. 130 91 – Escreva um programa que recebe uma frase qualquer, mapeando a mesma e retornando ao usuário cada palavra com a frequência com que a mesma aparece na frase em questão....................................................... 131 92 – Crie um programa que recebe do usuário uma sequência de números aleatórios separados por vírgula, armazene os números um a um, em formato de texto, como elementos ordenados de uma lista. Mostre em tela a lista com seus respectivos elementos após ordenados......................... 133
  • 14. 93 – Escreva um programa, da forma mais reduzida o possível, que recebe do usuário uma série de nomes, separando os mesmos e os organizando em ordem alfabética. Em seguida, exiba em tela os nomes já ordenados..... 134 94 – Escreva um simples programa que recebe do usuário um número qualquer, retornando ao mesmo se este número digitado é um número perfeito. .................................................................................................... 136 95 – Escreva uma função que recebe uma lista de elementos totalmente aleatórios e os ordena de forma crescente de acordo com seu valor numérico:.................................................................................................. 137 96 – Crie uma estrutura toda orientada a objetos que recebe do usuário uma string qualquer, retornando a mesma com todas suas letras convertidas para letra maiúscula. Os métodos de classe para cada funcionalidade devem ser independentes entre si, porém trabalhar no escopo geral da classe. 139 97 – Escreva de forma reduzida um programa que recebe do usuário um nome e duas notas, salvando tais dados como um elemento de uma lista. Exiba em tela o conteúdo dessa lista........................................................ 141 98 – Crie um programa que gera o valor de salário de funcionários considerando apenas horas trabalhadas e horas extras, sendo o valor fixo da hora trabalhada R$29,11 e da hora extra R$5,00. Crie uma regra onde o funcionário só tem direito a receber horas extras a partir de 40 horas trabalhadas da forma convencional. ........................................................ 142 99 – Reescreva o código anterior adicionando um mecanismo simples de validação que verifica se os dados inseridos pelo usuário são de tipos numéricos, caso não sejam, que o processo seja encerrado.................... 144 100 – Crie um programa que recebe uma nota entre 0 e 1.0, classificando de acordo com a nota se um aluno fictício está aprovado ou em recuperação de acordo com sua nota. A média para aprovação deve ser 0.6 ou mais, e o programa deve realizar as devidas validações para caso o usuário digite a nota em um formato inválido................................................................... 146 101 – Crie uma estrutura molde (orientada a objetos) para cadastro de veículos, tendo como características que os descrevem sua marca, modelo, ano, cor e valor. Cadastre ao menos três veículos, revelando seu número
  • 15. identificador de objeto alocado em memória, assim como o retorno esperado pelo usuário quando o mesmo consultar tal veículo................ 148 102 – Crie um programa que recebe do usuário três números diferentes, retornando para o mesmo qual destes números é o de maior valor. Usar de funções aninhadas para realizar as devidas comparações entre os valores dos números: ............................................................................................ 150 103 – Crie um programa que atua como mecanismo controlador de um sistema direcional, registrando a direção e o número de passos executado. Ao final do processo, exiba em tela o número de referência para um plano cartesiano. Ex: Se o usuário digitar CIMA 5, BAIXO 3, ESQUERDA 3 e DIREITA 2, o resultado será a coordenada 2. ......................................................... 152 104 – Crie uma estrutura orientada a objetos híbrida, para cadastro de usuários, que permita ser instanciada por uma variável de modo que a mesma pode ou não repassar argumentos para seus objetos de classe na hora em que instancia tal classe. Para isso, a classe deve conter atributos/objetos de classe padrão e instanciáveis de fora da classe...... 154 105 – Gere uma lista com 50 elementos ordenados de forma crescente. Inicialmente usando do método convencional (e do construtor de listas padrão), posteriormente reescrevendo o código usando de list comprehension. ........................................................................................ 157 106 – Reescreva a estrutura de código abaixo, de um simples programa que gera uma lista com as possíveis combinações entre duas outras listas [1,2,3] e [4,5,6], reduzindo e otimizando a mesma via list comprehension:....... 159 107 – Escreva um programa que cria uma array de 5 elementos do tipo int. Exiba em tela todos os elementos da array, em seguida exiba individualmente apenas os elementos pares da mesma de acordo com sua posição de índice....................................................................................... 161 108 – Crie uma array composta de 6 elementos aleatórios, porém com valores sequenciais crescentes. Uma vez criada a array, exiba em tela seu conteúdo em seu formato original, e em seu formato invertido............. 162 109 – Dada a seguinte lista simples de elementos [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21], transforme a mesma em um objeto do tipo array, em seguida exiba em tela o tamanho dessa array (número de elementos), separadamente,
  • 16. exiba o tamanho da array em bytes e seu marcador de posição alocada em memória.................................................................................................... 163 110 – Escreva um programa que, usando puramente de lógica, encontra todos os números que são divisíveis por 7 e múltiplos de 5, dentro do intervalo de 0 a 500 (incluindo tais valores)............................................. 165 111 – Escreva um programa que gera um número aleatório entre 0 a 10, salvando esse número em uma variável, onde o usuário é convidado a interagir tentando adivinhar qual foi o número gerado até acertar. Caso o usuário acerte o número, exiba uma mensagem o parabenizando, também exibindo incorporado em uma mensagem o número em si..................... 166 112 – Escreva um programa que executa um bloco de código situado dentro de um comentário..................................................................................... 168 113 – Escreva um programa que recebe uma palavra qualquer do usuário, aplicando sobre a mesma uma formatação de estilo, retornando a mesma com marcadores para negrito, itálico e sublinhado. As funções que aplicam os estilos devem ser separadas entre si, porém executadas em conjunto via decoradores para uma função principal................................................... 169 114 – Escreva um programa que lê uma palavra ou frase digitada pelo usuário, retornando o número de letras maiúsculas e minúsculas da mesma. Usar apenas de lógica e de funções embutidas ao sistema...................... 171 115 – Escreva um programa que verifica se uma determinada palavra consta em um texto de origem. Texto: “Python é uma excelente linguagem de programação!!!”. ...................................................................................... 173 116 – Escreva um programa que verifica se um endereço de site foi digitado corretamente, validando se em tal endereço constam o prefixo ‘www.’ E o sufixo ‘.com.br’, pedindo que o usuário digite repetidas vezes o endereço até o mesmo for validado como correto. ................................................. 174 117 – Escreva um programa que recebe uma lista de elementos mistos, trocando de posições apenas o primeiro e o último elemento. Lista de referência [11, 22, 33, 44, 55, 66, 77, 88, 99, ‘X’]..................................... 176 118 – Escreva um programa que realiza a validação de uma senha digitada pelo usuário. O mecanismo de validação deve verificar se a senha digitada possui um tamanho mínimo de 6 caracteres, tamanho máximo de 16
  • 17. caracteres, ao menos uma letra entre a e z, ao menos uma letra maiúscula e ao menos um símbolo especial.............................................................. 177 119 – Escreva um programa que realiza a contagem do número de segundas feiras que caem no dia 1º de cada mês, dentro do intervalo do ano 2010 até o ano de 2020. .......................................................................................... 180 120 – Escreva um programa que exibe uma mensagem em formato de contagem regressiva, contando de 10 até 0, com o intervalo de 2 segundos entre uma mensagem e outra. ................................................................. 182 121– Escreva um programa que retorna a data e hora da última vez em que um determinado arquivo foi modificado.................................................. 184 122 – Escreva um programa que extrai os dados / valores dos elementos de uma tupla, que representa uma escala de dias de atendimento, para suas respectivas variáveis individuais. Exiba em tela uma mensagem referente aos dias 3 e 4 da escala............................................................................. 187 123– Crie uma função reduzida para separar elementos negativos e positivos de uma lista, sem aplicar qualquer tipo de ordenação sobre os mesmos..................................................................................................... 188 124 – Escreva um programa que retorna os 5 elementos mais comuns de um texto (caracteres individuais), exibindo em tela tanto os elementos em si quanto o número de incidências de tais elementos................................. 189 125 – Escreva um programa que recebe três conjuntos numéricos de mesmos valores, o terceiro conjunto deve ser uma cópia literal do segundo. Exiba em tela os conteúdos dos conjuntos, seu identificador de memória e se alguns destes conjuntos compartilham do mesmo identificador (se internamente são o mesmo objeto alocado em memória)...................... 191 126 – Crie uma ferramenta implementável em qualquer código que realiza a contagem de número de variáveis locais presentes em uma determinada função do código....................................................................................... 193 127 – Escreva um programa que recebe do usuário um nome e um telefone, verificando se o nome digitado consta em uma base de dados pré-existente, caso não conste, cadastre esse novo nome e telefona na base de dados. .................................................................................................................. 195
  • 18. 128 – Crie uma calculadora de 7 operações (soma, subtração, multiplicação, divisão, exponenciação, divisão inteira e módulo de uma divisão) com toda sua estrutura orientada à objetos. ........................................................... 197 129 – Escreva um programa que recebe uma fila composta de valores referente a idades de pessoas, extraindo os 3 elementos de maior idade para uma outra fila prioritária, sem que os elementos prioritários sejam rearranjados.............................................................................................. 201 130 – Na frase “A Radiologia é a ciência que estuda a anatomia por meio de exames de imagem.” realize a contagem dos caracteres de sua composição, retornando quais os 6 caracteres mais recorrentes, e quantas vezes os mesmos aparecem na frase acima: .......................................................... 203 131 – Crie uma estrutura de código que lê o conteúdo interno de uma função, retornando o número de identificação da função e o número de variáveis que a mesma possui alocadas em memória.............................. 205 132 – Uma vez que temos a lista [“maçã”, “banana”, “laranja”, “abacate”, “pêssego”], busque extrair o segundo e o quarto elemento da lista de forma ainda mais reduzida e otimizada do que quando utilizamos list comprehension. ........................................................................................ 206 133 – Crie uma estrutura de código de validação de uma senha digitada pelo usuário. Após inserida a senha, a mesma deve ser inspecionada em busca das seguintes características: Conter entre 6 e 16 caracteres, conter ao menos uma letra minúscula, conter ao menos um número, conter ao menos uma letra maiúscula e conter ao menos um caractere especial ($#@*!&). .................................................................................................................. 207 134 – Escreva uma estrutura de validação que verifica se o endereço de um site foi digitado corretamente. O endereço escrito deve ser em formato de domínio brasileiro (terminado em .com.br) e para o processo de validação não pode ser usado expressões regulares................................................ 211 135 – Considerando a lista [11, 22, 33, 44, 55, 66, 77, 88, 99, 'X'], reorganize seus elementos de forma a inverter o primeiro e o último elemento de posição, sem alterar a ordem dos demais elementos.............................. 212 136 – Reorganize os elementos da lista [-1, 6, -9, -8, 4, 0, -3, 2, 7, 1, 8, -2] em ordem crescente e a partir da mesma, gere duas novas listas, uma contendo
  • 19. apenas os elementos negativos e outra contendo apenas os elementos positivos. Por fim, exiba em tela o conteúdo da lista original e das 3 novas listas geradas............................................................................................. 213 137 – Supondo que tenhamos uma lista composta por elementos em forma de dicionário, elementos estes aleatórios descrevendo em suas chaves e valores alguns carros com seus respectivos anos de fabricação, reorganize os elementos dessa lista de acordo com um critério pré-estabelecido, nesse caso, o ano de fabricação.......................................................................... 215 138 – Crie um mecanismo que lê e interpreta uma array, retornando ao usuário o número de elementos da mesma, assim como seu tamanho em bytes e seu endereço de alocação em memória. ..................................... 216 139 – Crie um programa que recebe um texto digitado pelo usuário, retornando para o mesmo quantas letras maiúsculas e minúsculas foram identificadas no texto. Apresente dois códigos, um convencional e um reduzido: ................................................................................................... 218 140 – Crie um programa que lê um arquivo qualquer, retornando ao usuário os dados referentes a data e hora da última modificação desse arquivo.221 141 – Crie um método de classe com parâmetros nomeados, justapostos, com valor padrão, tipo de dado definido na declaração e que retorna um tipo de dado obrigatório e específico no retorno da função, nesta ordem. Como referência, o método convencional def inventario(item, localizacao, quantidade, preco, categoria) deve ser transformado para um método discriminado, onde cada tipo de parâmetro possui uma identidade e características próprias............................................................................. 226 142 – Crie uma classe composta por atributos “somente leitura”, da forma mais reduzida possível:............................................................................. 227 143 – Crie manualmente um sistema de contagem regressiva, a contar de 10, atualizando seus dados a cada 2 segundos. ....................................... 229 144 – Crie uma estrutura de código que simula o sistema de dependência de uma blockchain em um cluster de processamento. Nesse processo é permitido usar de alguma estrutura de repetição, e o cluster inicial deve conter ao menos 4 blocos de origem........................................................ 231
  • 20. 145 – Escreva um programa que, a partir de uma lista de elementos, retorne o tipo de dado de cada elemento. A lista em questão é: lista=[(1,),[1,2,3],(1),{4,5},{'nome':'A','value': 2},10,[],1+3j,1.2,True,False,None,'Hello World!']. .................................................................................................................. 234 146 – Crie uma simples ferramenta de análise exploratória de dados, que recebe uma lista / array, retornando a partir dos dados da mesma os valores referentes ao maior número, menor número, número de elementos totais, soma de todos elementos, média aritmética, mediana, variança e desvio padrão. A lista em questão é: lista = [-1505, 2518, 2333, 4682, - 1740, 1067, 995, 22, 2, -1153, -4098, 4560, 2958, 3640, -4154, 2345,4, - 1601, 158, -4044, -98, 707, 359, -3088, 527, -3004, -4045, 563, - 4137, 4598, -3862, 488, -1, 3445, 3820, 504, -1475, 1626, -1252, 2059, 16, - 1472, 2610, -4643, 2912, -2517, -4604, -1476, 3950, -4640, -229, 229, - 3452, 4309, 2356, 66, 3728, -1846, -635, -3581, 4457, -2592, -1066,4, - 1006, -164, 805, -4500, -455, 2245, -4959,2, - 2415, 2038, 4512, 1243, 349, -1153, 3623, 631, 2209, -3349, -2417, 4429, - 1324, -4101, -1354, 4400, -4968, -4433, 2042, 904, 932, 1331, 4955, - 3775, -333, 1012, 2192, -161, -224, 1505, -1615, -2165, 3666, -4253, -358, - 3939, -2641, 1228, -608, -2280, 4939, -3355, 1340, -57, 3346, 2686, - 1572, 1991, -2351, -3972, -1683, -1509, -2488, 266, -2991, -795, - 4032, 2397, 2391, 3654, -1044, -2204, -2440, -1280, 2714, -4151, - 1951, 3684, -4251, 3748, -4359, -1436, -2190, 4538, -3563, 1542, 1926, - 3940, -2274, -4223, 2504, -4112, 2388].................................................... 236 147 – A partir da lista lista=['a', 'a', 'a', 'b', 'c', 'k', 'a', 1, 2, 3, 4, 'j', 'l', 'm'] gere uma nova lista porém sem elementos repetidos. .................................... 238 148 – Supondo que temos um simples carrinho de compras, em formato de lista composta por alguns elementos onde cada elemento da mesma é um dicionário descrevendo um item, crie um mecanismo que retorna ao usuário o valor total do carrinho, seu item mais caro e também seu item mais barato. .................................................................................................................. 239 149 – Uma vez apresentada a lista x = [10, 12, 35], apresente ao menos 5 formas de retornar ao usuário a soma dos elementos dessa lista........... 241
  • 21. 150 – Uma prática comum é para certos contextos gerar listas, dicionários, ou qualquer outro tipo de contêiner de dados com alguns valores padrão ou gerados a partir de algum critério. Nessa linha de raciocínio, crie um gerador de dicionário que, com um dado inteiro n fornecido pelo usuário, retorna um dicionário composto por todos números antecessores ao número n e seus valores quando elevados ao quadrado............................................. 244 151 – Crie um diretório chamado backups, dentro desse diretório, crie uma pasta numerada para cada mês do ano, por exemplo mês_03. Antes de criar a pasta backup, verifique se a mesma já existe no diretório raiz do projeto. .................................................................................................................. 245 152 – Crie um simples jogo de adivinhação que gera um número aleatório de 0 a 10, em seguida recebe um número do usuário e, caso o mesmo tenha acertado o número, recebe uma mensagem de sucesso, caso contrário, pede que o usuário insira um novo número até acertar a adivinhação... 248 153 – Crie um template de mala direta contendo uma mensagem, envie a mensagem para 5 pessoas listadas em uma simples base de dados aqui representada pela lista nomes = ['Anna', 'Paulo', 'Maria', 'Rafael', 'Patricia'] de modo que a mensagem seja personalizada a cada um dos nomes da lista. .................................................................................................................. 250 154 – Crie um simples mecanismo que lê um determinado texto, nesse caso “Python 3.9”, retornando ao usuário a quantidade de números encontrados no texto e que números são estes, ordenados em ordem posicional (na exata ordem em que foram identificados no texto). ......................................... 252 155 – Crie um simples mecanismo validador que recebe do usuário um texto qualquer e retorna ao mesmo se tal texto pertence ou não a uma frase pré- definida, nesse caso: 'Python é uma excelente linguagem de programação!!!'......................... 253 156 – Escreva uma função que recebe do usuário um número longo qualquer, o convertendo para notação numérica computacional (número original considerado como bytes, convertido de acordo com seu tamanho para kilobytes, megabytes, gigabytes, etc...) e retornando em forma legível ao usuário. ................................................................................................ 255
  • 22. 157 – Escreva um programa que recebe do usuário um intervalo de tempo em anos, retornando a partir desta informação o número de ocorrências de um dia específico (nesse caso, as segundas-feiras) dentro de um dia específico do mês (nesse caso, no dia primeiro de cada mês do intervalo de tempo previamente definido)................................................................... 257 158 – Crie uma pasta chamada imagens, entre na pasta e retorne seu caminho completo para uma variável. Exiba em tela o caminho completo da pasta imagens. .......................................................................................... 259 159 – Crie um mecanismo otimizado de múltipla escolha que recebe do usuário um determinado número em sua forma numérica e retorna para o mesmo o número escrito por extenso:..................................................... 260 160 – Crie uma simples função que soma dois números fornecidos pelo usuário, retornando o resultado de tal operação matemática. Para a função soma( ), crie uma documentação acessível pelo usuário diretamente via código, orientando o mesmo a respeito do funcionamento da função, simulando que tal função é modularizada ou que de alguma forma seu código não é explícito. .............................................................................. 262 161 – Implemente um sistema de carrinho com inserção e remoção de elementos via comando, da forma mais reduzida possível, porém sem fazer uso de compreensão de listas ou funções vazias, apenas estruturas condicionais simples. O sistema deve se manter ativo até que o usuário digite um comando para sair. ................................................................... 265 162 – Escreva um simples módulo / pacote que inspeciona uma determinada pasta, retornando o nome de todos arquivos de imagem contidos na pasta, caso houver. ............................................................... 268 163 – Crie um simples mecanismo que valida a inserção de elementos em um dicionário, verificando se o elemento a ser adicionado ao mesmo já existe no dicionário atual.......................................................................... 269 164 – Uma vez que temos dois conjuntos numéricos iniciais c1 = (2, 4, 6, 8, 10) e c2 = (2, 4, 6, 8, 10) e um terceiro conjunto nomeado como c3, gerado a partir do conteúdo de c2. Equiparando os três conjuntos, verifique se os mesmos possuem mesmo conteúdo e mesmo identificador de memória. .................................................................................................................. 271
  • 23. 165 – Escreva um programa que procura um certo dado / valor a partir de múltiplos dicionários, conforme dado inserido pelo usuário. Os dicionários em questão devem possuir itens domésticos representados com nome e preço. Retorne ao usuário o item consultado, de qual dicionário foi extraído e seu valor em reais. ................................................................................. 275 166 – Crie três classes representando três funcionários de uma empresa, descreva como atributo de classe primário o cargo, e como atributos secundários seus respectivos nomes e salários, estes dados devem ser imutáveis. Insira os registros destes funcionários em uma lista e exiba em tela o conteúdo da lista de funcionários................................................... 277 167 – A partir de uma simples base de dados em uma lista, composta por ['1001', '1002', '1003', '1004', '1005', '1006', None, '1008', '1009'], gere uma nova base de dados a partir desta contendo apenas dados válidos. Retorne ao usuário uma mensagem informando a posição de índice do dado inválido da base de dados original. ........................................................................ 280 168 – Supondo que temos uma lista composta por ['Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado', 'Domingo', 'Segunda'], reordene os elementos da lista de modo a obter a sequência [‘Segunda’, 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado', 'Domingo']........................... 282 169 – Uma vez que temos uma lista contendo como elementos próprios uma série de tuplas compostas por uma categoria e por um tipo de exame de imagem, reconstrua essa base de dados em um dicionário, unificando as categorias de exames e agrupando seus subtipos. .................................. 284 170 – Otimize o código anterior fazendo uso de defaultdict( ). Realize a comparação do tempo de processamento necessário para ambos os métodos.................................................................................................... 285 171 – Supondo que temos um dicionário, representando usuários de um sistema, onde cada item do dicionário é um usuário descrito por seu id, nome, sobrenome e e-mail, exiba em tela de forma estruturada (exatamente como escrita no corpo do código) o conteúdo desse dicionário. .................................................................................................................. 290
  • 24. 172 – Crie um mecanismo que gera um número pseudorrandômico, no intervalo entre 0 e 1, exibindo tal número em tela com 5 casas decimais após a vírgula..................................................................................................... 292 173 – Dada a lista ['python', 'java', 'php', 'c++', 'c#', 'javascript', 'kotlin', 'r'], retorne duas novas listas geradas a partir da lista inicial, com seus elementos reordenados de forma aleatória, porém reproduzível............................. 294 174 - Supondo que a lista data = [59.19, 72.05, 66.82, 81.15, 66.33, 94.87, 99.65, 70.13, 55.75, 87.71, 95.43, 93.17, 98.54, 68.31, 59.24, 88.94, 79.44, 83.91, 84.4, 68.21] é o retorno dos últimos 20 registros de um sensor qualquer, retorne a média simples, a média harmônica e a média geométrica destes valores. Os resultados devem conter a precisão de 5 casas decimais. ....................... 295 175 - Supondo que para um determinado propósito temos uma classe de nome Menu, que quando instanciada recebe um dado / valor que deve obrigatoriamente ser de tipo numérico para criação de seu respectivo objeto / atributo de classe. A validação por sua vez deve ocorrer a partir do método construtor da classe. ................................................................... 298 176 - Como bem sabemos, operações matemáticas em Python realizadas a partir de valores numéricos muito próximos tendem a gerar números com casas decimais, valores em casas decimais normalmente “arredondados” por questões de performance. Porém, em computação científica pode ser necessário números com grande número de casas decimais pois estes valores, quanto mais extensos, simbolizam maior precisão. Realize a simples soma de dois valores 0.1 e 0.2, retornando um terceiro número de no mínimo 20 casas decimais. ....................................................................... 300 177 - Uma vez que temos as frações 1/4 e 5/8, realize a soma dessas frações, exibindo em tela detalhadamente seus numeradores, denominadores e o próprio resultado da soma........................................................................ 301 178 - Crie um mecanismo de desempacotamento de dados, capaz de reduzir listas aninhadas para uma só lista comum sem alterar o comportamento de seus elementos. A lista a ser usada de referência é: [[1, 2, [3, 4, 5, 6, 7, 8]], [9, 10, 11, 12]]...................................................... 304
  • 25. 179 - Implemente dois mecanismos de extração de dados a partir de dicionários aninhados, sendo ao menos um deles o método convencional, utilizando da notação padrão de extração de dados a partir das chaves de um dicionário............................................................................................ 305 EXERCÍCIOS NUMPY 308 1 – Realize uma instalação silenciosa da versão mais atualizada da biblioteca Numpy:...................................................................................................... 308 2 – Realize a importação da biblioteca Numpy, em seguida exiba em tela a versão da biblioteca instalada em seu ambiente virtualizado:................. 308 3 – Crie uma array do tipo Numpy contendo 15 elementos de valor zero: .................................................................................................................. 310 4 – Crie uma array Numpy de formato 4x4 preenchida com elementos de valor inicial zero. Tais elementos devem ser de tipo inteiro.................... 311 5 – Crie uma array Numpy composta de 10 elementos, todos de valor 5: .................................................................................................................. 312 6 – Crie uma array Numpy composta de números inteiros, dentro do intervalo de 10 a 40: ................................................................................. 313 7 – Crie uma array Numpy composta apenas de elementos de valores pares, dentro do intervalo de 10 a 50: ................................................................ 314 8 – Crie uma array Numpy de formato 3x3, composta de elementos de valores inteiros entre 0 e 8: ...................................................................... 315 9 – Crie uma array Numpy de formato 10x10, preenchida com valor 128, sendo cada elemento de tipo float:.......................................................... 316 10 – Crie uma array Numpy composta por apenas um elemento numérico aleatório de valor entre 0 e 1: .................................................................. 318 11 – Crie uma array Numpy composta por 25 números naturais gerados aleatoriamente: ........................................................................................ 318 12 – Crie uma array Numpy composta por 50 elementos de valores simetricamente separados (linearmente espaçados, escalonados entre 0 e 1: ............................................................................................................... 319
  • 26. 13 – Dada uma matriz inicial de formato 5x5, composta de elementos numéricos sequenciais entre 20 e 45, gere uma array Numpy contendo elementos a partir da terceira linha e segunda coluna da matriz de origem: .................................................................................................................. 320 14 – Realize exatamente o mesmo processo do exercício anterior, porém reduzindo o código utilizando de métodos geradores de arrays: ............ 322 15 – Dada uma array Numpy inicial de formato 5x5, com elementos aleatoriamente gerados dentro do intervalo 20 a 44, exiba em tela a array em si, a soma de todos seus elementos e o desvio padrão dos mesmos: 323 16 – A partir de uma array Numpy inicial de formato 5x5, composta por elementos de valores numéricos entre 20 e 44, exiba em tela o resultado da soma de todos os elementos da primeira, da primeira coluna, da quarta linha e da quarta coluna: ................................................................................... 325 17 – Crie uma array Numpy de formato 10x10, composta de 100 elementos de valores escalonados entre 0 e 1:.......................................................... 327 18 – Fornecidas 4 matrizes diferentes, cada uma composta de diversos elementos de valores próprios, verifique se o retorno padrão gerado por cada matriz é o valor lógico True.............................................................. 328 19 - Fornecidas 4 matrizes diferentes, cada uma composta de diversos elementos de valores próprios, verifique se o retorno padrão gerado por cada linha de cada matriz é o valor lógico True........................................ 331 20 - Dadas 4 matrizes diferentes, cada uma composta de elementos próprios de valores diversos, verifique se em cada array/matriz existe ao menos um elemento válido. Também verifique a relação entre os elementos de mesma coluna em suas respectivas linhas, retornando True caso algum dos elementos seja válido nesta comparação................................................. 333 21 - Fornecida uma array Numpy composta por alguns elementos próprios, verifique cada um dos elementos de sua composição, retornando True para cada elemento que não for de tipo numérico.......................................... 336 22 – A partir de três arrays Numpy A, B e C, composta pelos seguintes elementos [0.4, 0.5], [0.39999999, 0.5000001] e [0.39, 0.5000001], respectivamente, verifique se internamente, pelos critérios padrões de
  • 27. arredondamento, os valores dos elementos entre tais arrays são considerados iguais:.................................................................................. 337 23 – Reutilizando as arrays A e B do exemplo anterior, realize a comparação direta do conteúdo de tais arrays:............................................................ 339 24 – Através das mesmas arrays dos exercícios anteriores, realize a comparação das mesmas no que diz respeito a qual array é maior em função dos valores de seus elementos:................................................................ 341 25 – Crie uma array Numpy em formato de matriz transversa / matriz de identidade, contendo 10 elementos de valor 1 na diagonal, todos de tipo inteiro:....................................................................................................... 342 26 – Nos mesmos moldes do exercício anterior, crie uma matriz, dessa vez diagonal, composta de 10 elementos em sua diagonal:........................... 344 27 – Crie uma array Numpy composta de 20 elementos de valores gerados aleatoriamente. A array deve ter a capacidade de ser replicada por seu método gerador, produzindo os mesmos valores de elementos independentemente do número de execuções........................................ 345 28 – Fornecida uma array composta de alguns elementos de valores próprios, exiba em tela cada um dos elementos da array separadamente respeitando sua ordem:............................................................................ 346 29 – Simulando o resultado do sorteio de uma loteria, gere uma array Numpy composta de 6 elementos aleatórios, de valores entre 1 e 50, sem que tais números se repitam e de forma que o resultado possa ser replicado: .................................................................................................................. 348 30 – Crie uma array Numpy de formato 5x5, composta de números sequenciais a partir do número 20. Salve esta array em um arquivo nomeado array.npy. Carregue a array contida no arquivo array.npy para uma variável e exiba em tela o conteúdo desta array: .................................................. 349 31 – Crie uma array Numpy de 3 linhas e 4 colunas, composta por números sequenciais até 12. Salve tal array em um arquivo de texto simples nomeado como array.txt. Carregue este arquivo para uma variável, em seguida exibindo em tela seu conteúdo................................................................. 350
  • 28. 32 – Usando de uma array Numpy exatamente igual a do exercício anterior, converta a mesma para uma lista, exibindo em tela seu conteúdo:........ 351 33 – Utilizando da mesma array Numpy proposta pelo exercício anterior, realize a inversão de suas linhas, tornando a última linha como primeira e vice versa: ................................................................................................. 352 34 – Dada uma array 4x4 inicialmente composta de elementos de valor 1, insira uma nova linha acima e abaixo, assim como uma coluna a esquerda e à direita da matriz inicial........................................................................... 354 35 – A partir de duas arrays Numpy iniciais, uma composta por elementos numéricos sequenciais entre 0 e 8 distribuídos em formato 4x4, e uma segunda de mesmo formato composta por elementos numéricos aleatórios. Exiba em tela quais são os elementos comuns às duas arrays:................ 355 36 – A partir de uma array Numpy formato 2x3 composta de elementos numéricos aleatórios, extraia os mesmos para uma lista, ordenando-os em forma numérica crescente:....................................................................... 356 37 – Dada uma array Numpy de formato 3x3, composta de elementos de valores numéricos decimais, exiba em tela a posição de índice de cada linha onde consta o elemento de maior valor................................................... 358 38 - Uma vez que temos uma array Numpy composta por [[4.99, 3.49, 9.99], [1.99, 9.99, 4.99], [14.99, 2.39, 7.29]], exiba em tela de modo crescente cada elemento de cada segmento e também cada segmento do menor para o maior de acordo com seus valores: .......................................................... 359 39 - Uma vez que temos uma array Numpy composta por [[4.99, 3.49, 9.99], [1.99, 8.99, 4.99], [14.99, 2.39, 7.29]], exiba em tela em forma de lista uma array contendo apenas os elementos de valor numérico maior que 8:... 361 40 - Supondo que temos uma array Numpy 3x3 composta de alguns valores numéricos quaisquer, filtre a array, modificando seus campos de valores maiores que 10 para o valor fixo 10.1: ..................................................... 362 41 – Reaproveitando a array Numpy fornecida para o exercício anterior, uma array bidimensional, reduza a mesma para um vetor (array unidimensional): .................................................................................................................. 363
  • 29. 42 - Fornecida uma array Numpy de formato 3x3, composta de alguns elementos numéricos de valores próprios, "anule" os valores, zerando os mesmos, obtendo assim uma nova array de mesmas características, porém valores zerados. ........................................................................................ 364 43 – Reutilizando a array do exemplo anterior em sua totalidade, atualize os valores de todos seus elementos para 5.55: ............................................ 365 44 - Crie uma array Numpy de formato 6x6 que represente uma matriz de base triangular:......................................................................................... 366 45 - Crie uma array Numpy de formato (2,3,4) composta de elementos de valores numéricos próprios: ..................................................................... 367 46 - Crie uma imagem ruído de tamanho 800x600p a partir de uma array Numpy:...................................................................................................... 369 47 - Crie uma imagem ruído de tamanho 200x300p, em 3 canais de cores, com valores de pixels aleatórios entre 0 a 255, a partir de uma array Numpy. Tal imagem deve ser reproduzível............................................................ 370 48 - Uma vez que temos em mãos uma array Numpy 2x3 (2,3) composta por elementos de valores próprios, adicione uma nova dimensão a essa array, alterando seu formato para (1,2,3): ......................................................... 372 49 - Crie duas imagens ruído de tamanho 300x300 pixels em 3 canais de cor, adicione uma dimensão para cada imagem transformando-a em uma matriz de voxels. Crie uma nova imagem ruído a partir das duas imagens geradas anteriormente:.......................................................................................... 374 50 - Supondo que em uma estrutura de código temos uma array Numpy [[[1, 2, 3], [6, 3, 2]]], formato (1,2,3), reduza uma dimensão desta array tornando- a uma array formato (2,3):........................................................................ 376 51 - Fornecida uma array Numpy 2x2 composta de valores de 0 a 4 gerada via arange( ), reverta a posição de todos seus elementos usando apenas da notação de fatiamento de listas: .............................................................. 377 52 - Supondo que temos uma imagem 10x10 pixels em 3 canais de cor, extraia apenas os dados referentes ao canal de cor 0 da mesma............ 378 53 - Supondo que temos uma imagem de tamanho 10x10 pixels em 3 canais de cor, a partir da mesma, crie uma nova imagem de tamanho 5x5. A nova
  • 30. imagem deve conter os dados referentes ao bloco formado pelas primeiras 5 linhas e 5 colunas da imagem de origem............................................... 379 54 - Dadas duas arrays Numpy A e B compostas de seus elementos próprios, crie uma terceira array a partir da concatenação simples das duas anteriores.................................................................................................. 381 55 - Dadas duas arrays Numpy A e B com seus elementos próprios, realize a concatenação das mesmas, adicionando cada elemento de B ao final de sua respectiva coluna em A:............................................................................ 382 56 - Fornecidas 3 arrays Numpy unidimensionais a1, a2 e a3 compostas por elementos de valores próprios, crie uma nova array a partir do empilhamento das 3 arrays anteriores e a atribua a uma variável:......... 383 57 - Fornecida uma array Numpy estruturada em 5 linhas e 8 colunas, composta de elementos de valores próprios entre 0 e 9, crie a partir da mesma 3 novas arrays, sendo a primeira composta dos elementos das primeiras duas colunas, a segunda array composta dos elementos das próximas 4 colunas, por fim a última array composta dos elementos das duas últimas colunas da array de origem: Não é permitido o uso de fatiamento. ............................................................................................... 384 58 - Gere uma array Numpy formato 10 linhas, 6 colunas, com valores aleatórios distribuídos entre 0 e 1. Contabilize o número de elementos de valor 1 e exiba em tela o resultado: A array deve ser reproduzível. ........ 387 59 - Gere uma array Numpy de 10 linhas, 4 colunas, composta de elementos de valores aleatórios. Defina o número de casas decimais como 5 para cada um dos elementos. ................................................................................... 389 60 - Fornecida uma array Numpy [1.2e-6, 1.7e-7], exiba em tela os valores desta array sem a notação científica e com 8 casas decimais.................. 390 61 - Uma vez que temos em mãos uma array Numpy inicialmente estruturada em 8 linhas, 4 colunas, compostas de elementos de valores próprios, atualize a array, removendo por completo a terceira coluna da mesma: Não é permitido o uso de fatiamento......................................... 391 62 - Fornecidas duas arrays Numpy A e B, formatos 2x4, compostas por elementos de valores próprios, calcule a média aritmética entre as mesmas, atribuindo os valores retornados a uma nova array................................. 393
  • 31. 63 - Dadas duas arrays Numpy iniciais A e B, reaproveitadas do exercício anterior, crie uma terceira array composta pelo resultado da multiplicação dos elementos das arrays A e B................................................................ 394 64 - Fornecida a array Numpy [[3, 4, 9, 2], [5, 3, 2, 5]], crie uma nova array baseada na raiz quadrada de cada um dos elementos da array de origem. .................................................................................................................. 396 65 - Providas duas arrays Numpy A e B, compostas de elementos de valores próprios, calcule e exiba em tela o produto escalar de A sobre B............ 397 66 - Com base na array Numpy [[5, 8, 16], [4, 1, 8], [-4, 4, -11]], calcule o "traço" de tal matriz (soma dos elementos na diagonal principal). ......... 398 67 - Supondo que temos uma lista convertida para uma array, onde em sua estrutura temos pares de elementos representando um identificador de um produto e um preço, exiba em tela tal array, porém apenas com os pares de elementos referentes aos produtos aleatoriamente distribuídos. O resultado deve ser replicável.................................................................... 399 68 - Uma vez que temos uma array Numpy [2, 1, 6, 4, 5, 3], retorne a referência dos índices que ordenariam de forma crescente os elementos da array:......................................................................................................... 400 69 - Gere uma array Numpy estruturada em 10 linhas, 8 colunas, composta por elementos de valores aleatórios. Com base na primeira array, crie uma segunda array, porém com valores arredondados em duas casas decimais: .................................................................................................................. 401 70 - A partir de uma array Numpy [4, 5, 1] que representa um polinômio A(x) = 4x² + 5x + 1, retorne as raízes quadradas destes valores. ..................... 403 71 - Dada uma array Numpy [[-4, 3, 0, 1, -5], [6, -4, -2, 1, 3]], retorne o "sinal" de cada elemento, exibindo em tela tais valores. .................................... 404 72 - Crie duas arrays Numpy composta dos respectivos elementos '001', '002' e '003' para a primeira array, 'ABC', 'DFG' e 'HIJ' para a segunda, valide tais elementos como de tipo string, em seguida crie uma terceira array a partir da concatenação de tais arrays anteriores..................................... 405 73 - Fornecida uma array Numpy composta inicialmente por ['1', '2', '3', '4', '5'], com elementos em forma de string mesmo, adicione para cada um dos
  • 32. elementos três zeros à sua esquerda, obtendo '0001', '0002' e assim por diante. ....................................................................................................... 406 74 - A partir da array Numpy [['PLW CDR 11B TEN', 'AMC LPP'], ['CDR PKO KGH', 'CCC QMK']], separe os elementos das arrays, isolando cada string em uma nova array......................................................................................... 407 75 - # Dada uma array Numpy composta por [[' #Steam#games#'], ['# #YouTube#videos']], remova os caracteres # substituindo os mesmos por espaços em branco dentro da mesma string, além disso, remova quaisquer espaços em branco antes e depois das strings......................................... 408 76 - # A partir de uma array Numpy alimentada com algumas hashtags com referência a música e estilos musicais, contabilize o número de palavras 'metal' contidas em cada um dos elementos da array............................. 408 EXERCÍCIOS PANDAS 410 1 – Realize uma instalação silenciosa da versão mais atualizada da biblioteca Pandas:...................................................................................................... 410 2 – Importe a biblioteca Pandas, a referenciando apenas como “pd”:.... 410 3 – Exiba em tela a versão da biblioteca Pandas instalada em seu Sistema: .................................................................................................................. 411 4 - Fornecida uma lista composta de 5 nomes/elementos em forma de string, crie uma Série a partir desta lista, exibindo em tela seu tipo de dado e conteúdo:............................................................................................... 412 5 - A partir de um dicionário composto por seus respectivos itens de chave:valor, crie uma Serie, exibindo em tela seu conteúdo:.................. 413 6 - Dado um dicionário composto de seus itens próprios, converta o mesmo para uma Serie, em seguida exiba em tela apenas seus valores em forma de lista:........................................................................................................... 414 7 - Uma vez fornecido um dicionário composto de seus itens próprios, reaproveitado do exercício anterior, converta tal contêiner de dados em um DataFrame, em seguida adicionando uma coluna nomeada 'Preço'. Exiba em tela o conteúdo do DataFrame assim como seu tipo de dado:................ 416 8 - Replique o DataFrame criado no exemplo anterior, exibindo em tela seu sumário informativo: ................................................................................ 417
  • 33. 9 - A partir do DataFrame anterior, exiba em tela as métricas aplicadas sobre seus valores numéricos (nº de elementos, média simples de seus valores, desvio padrão, valor mínimo e valor máximo): ........................................ 418 10 - Reaproveitando o dicionário fornecido para o exemplo anterior, transforme o mesmo em uma Serie, adicionando dois novos itens de um dicionário 'Cel Nokia 5.4': 1199 e 'Cel iPhone 14': 8999. Exiba em tela o conteúdo da Serie após atualização: ........................................................ 420 11 - A partir do dicionário do exercício anterior, crie um DataFrame, inserindo um índice padrão no mesmo e duas colunas nomeadas 'Item' e 'Preço'. Exiba em tela o conteúdo do DataFrame após concluídas suas modificações............................................................................................. 422 12 - Complementar ao exercício anterior, uma vez criado um DataFrame a partir de um dicionário, crie a partir do mesmo um novo DataFrame onde o índice é baseado nos valores dos itens em ordem crescente: Exiba em tela os dois DataFrames................................................................................... 423 13 - Dando continuidade com base no mesmo DataFrame do exemplo anterior, a partir do DataFrame pdestoque, calcule e exiba em tela a média dos valores dos itens................................................................................. 425 14 - Nos mesmos moldes do exercício anterior, a partir do DataFrame pdestoque exiba em tela o maior e o menor valor encontrado em seus elementos, respectivamente: ................................................................... 426 15 - A partir do DataFrame criado para os exercícios anteriores, separe somente a coluna referente aos nomes dos itens, exibindo em tela a lista de todos estes itens: ...................................................................................... 428 16 - Utilizando do método pd.Series( ), gere uma Serie com indexação própria e composta por 10 elementos pares entre 0 e 20:...................... 430 17 - Fornecida uma lista ['01', '02', '03', '04', '05'], converta a mesma para uma Serie, em seguida altere seu tipo de dado para de tipo inteiro. Exiba em tela os tipos de dados antes e após a conversão, assim como o conteúdo da Serie. ......................................................................................................... 432 18 - Crie um DateTimeIndex referente ao mês de maio do ano de 2022, cada elemento deste objeto deve ser um dos dias do mês de maio................ 434
  • 34. 19 - Crie um DataFrame composto de todas as segundas-feiras desde o início do ano 2020 até a metade do ano 2022: Cada elemento do DataFrame deve estar na notação ano-mês-dia. Exiba em tela o conteúdo do DataFrame. .................................................................................................................. 435 20 - Crie um objeto de tipo DateTimeIndex, contendo todas as horas do mês de maio de 2022. Exiba em tela o número total de horas do mês de maio contabilizadas pelo método...................................................................... 437 21 - A partir de um objeto DateTimeIndex, representando o mês de maio de 2022, crie um DataFrame composto tanto pela data referente a cada dia do mês, quanto do número de cada dia em relação ao número de dias do ano. .................................................................................................................. 438 22 - Crie um objeto DateTimeIndex referente ao mês de maio de 2022, insira três novas colunas do DataFrame 'Ano', 'Mes' e ' Dia', atribuindo para tais colunas seus devidos elementos: ............................................................. 440 23 - Crie um objeto DateTimeIndex referente ao mês de maio de 2022, insira três novas colunas do DataFrame 'Ano', 'Mes' e ' Dia', atribuindo para tais colunas seus devidos elementos, por fim, remova a coluna Data: .......... 442 24 - A partir de um dicionário composto por três itens, sendo cada um dos mesmos compostos por números aleatoriamente gerados para suas respectivas chaves 'normal', 'uniforme' e 'binomial', organize tais dados em um DataFrame, defina o campo 'normal' como índice. Exiba em tela o DataFrame................................................................................................. 444 25 - A partir do modelo proposto para o exercício anterior, crie um novo DataFrame com índice manual, organizando os demais elementos de acordo com o índice.............................................................................................. 447 26 - A partir do dicionário proposto para os exercícios anteriores, apenas de tamanho modificado para 50 valores em cada chave, uma vez transformado em um DataFrame, exiba em tela apenas os 5 primeiros e os 5 últimos elementos do DataFrame. ........................................................................ 449 27 - Ainda fazendo uso do DataFrame gerado para os exemplos anteriores, contabilize e exiba em tela o valor de 0 e 1 encontrados para o campo 'binomial':.................................................................................................. 450
  • 35. 28 - Encerrando o uso do DataFrame dfnumeros, exporte para um arquivo csv os últimos 25 elementos deste DataFrame. Carregue o arquivo gerado, atribuindo seu conteúdo para uma nova variável, em seguida exiba seu conteúdo em tela...................................................................................... 452 29 - A partir do link fornecido, atribua a base de dados Telco Customer Churn a um DataFrame associado a uma variável. Exiba em tela as 5 primeiras linhas da base de dado.............................................................................. 454 30 - Exiba em tela os nomes de todas as colunas da base de dados / DataFrame:................................................................................................ 456 31 - Remova as colunas OnlineBackup, DeviceProtection, TechSupport, MultipleLines, OnlineSecurity, PaperlessBilling e PaymentMethod:........ 457 32 - Seguindo com o DataFrame proposto, exiba em tela o número de registros inválidos para cada uma das categorias restantes: ................... 458 33 - Retorne o valor da mediana dos valores da coluna TotalCharges:.... 460 34 - Preencha os dados ausentes/faltantes da coluna TotalCharges com o valor da média calculada anteriormente para a mesma:......................... 460 35 - Modifique a notação dos valores da coluna TotalCharges, convertendo tais valores para números com casas decimais. Exiba em tela apenas os valores da coluna TotalCharges, mais especificamente o número de ocorrências de tais valores........................................................................ 462 36 - Converta as colunas 'gender', 'SeniorCitizen', 'Partner', 'Dependents', 'PhoneService', 'InternetService', 'StreamingTV', 'Contract', 'StreamingMovies' e 'Churn' para tipo categórico. Da mesma forma, converta as colunas 'tenure' e 'MonthlyCharges' para tipo numérico:.... 464 37 - Exiba em tela de modo organizado os dados categóricos da base de dados df: ................................................................................................... 467 38 - Exiba em tela a distribuição dos valores da coluna Churn da base de dados:........................................................................................................ 468 39 - A partir dos dados da coluna 'Churn', calcule a mediana de seus valores com base na coluna 'MonthlyCharges':.................................................... 469 40 - Salve os valores produzidos para os encargos médios mensais calculados anteriormente em um dicionário. Exiba em tela o dicionário.................. 470
  • 36. 41 – Exiba em tela os 5 maiores e os 5 menores valores encontrados para os encargos mensais computados no DataFrame......................................... 471 42 – Exiba em tela o valor da soma cumulativa dos encargos mensais calculados ao longo de todo período mensurado: ................................... 472 43 - Salve uma amostra da base de dados em formato de planilha Excel, contendo apenas os 50 primeiros registros da base de dados de origem: .................................................................................................................. 473 MINI PROJETOS 474 01 - A partir do texto fornecido, retorne ao usuário o tipo de dado e o número de elementos. Em seguida realize o tratamento do texto, removendo suas divisões e caracteres especiais. Por fim, contabilize as palavras únicas do texto, exibindo em tela o número de ocorrência das mesmas e separadamente as dez mais recorrentes................................. 474 02 – Escreva um programa que recebe do usuário 5 números quaisquer, no intervalo entre 0 e 99, separados por vírgula, exibindo tais números tanto em formato de lista quanto de conjunto numérico. ................................ 484 Em um segundo momento, aprimore o código inicial implementando a validação das entradas do usuário de modo a conferir se o mesmo digitou 5 números conforme solicitado................................................................... 484 Do mesmo modo, implemente a validação no que diz respeito ao valor máximo de cada número fornecido pelo usuário (nesse caso 99)........... 484 Por fim, reescreva o programa inicial em formato orientado à objetos: . 484 CONCLUSÃO 500 LIVROS 501 CURSO 502
  • 37. INTRODUÇÃO Se tratando de programação, independentemente da linguagem, um dos maiores erros dos estudantes ou entusiastas da área é o fato de os mesmos apenas se limitarem a replicar os exemplos dos conceitos da linguagem, não praticando de fato, seja explorando outras possibilidades de mesmo propósito, seja não resolvendo exercícios que estimulem a aplicação da lógica e implementação das ferramentas que a linguagem de programação oferece para resolução de problemas computacionais. Sendo assim, o intuito deste pequeno livro é trazer à tona desde os conceitos mais básicos da linguagem Python até tópicos específicos e avançados por meio de exercícios, de modo que cada conceito será revisado conforme a necessidade de sua aplicação, assim como para programadores que já possuem uma bagagem de conhecimento, tais exemplos servirão para os mesmos realizar engenharia reversa nos conceitos entendendo os porquês de cada estrutura de código. Esse livro foi escrito de forma que os exercícios estão dispostos de forma gradual no que diz respeito à sua dificuldade, todo e qualquer exercício terá suas devidas explicações para cada linha de código, porém de forma gradual à medida que avançaremos pelos exercícios iremos cada vez nos atendo mais às suas particularidades do que conceitos iniciais. Em função disso, faça os exercícios em sua ordem, não avançando quando encontrada alguma dificuldade, assim como quando se sentir confiável, tente outros métodos de resolução dos mesmos exercícios. Dessa forma, garanto que você aprenderá de uma vez por todas como aplicar seus conhecimentos em problemas computacionais reais. Então... vamos direto para prática!
  • 38. EXERCÍCIOS PYTHON 1 - Crie três variáveis com três tipos de dados diferentes, respeitando sua sintaxe: nome = 'Fernando' ano = 1987 valor = 19.99 Para declarar uma variável basta dar um nome para a mesma, seguido do operador de atribuição “ = “ e do conteúdo a ser atribuído para essa variável. A forma como o atributo da variável é escrita fará com que o interpretador identifique automaticamente o tipo de dado em questão. Nesse caso, para a variável nome temos uma string, da mesma forma para variável ano temos um int assim como para variável valor temos um dado atribuído do tipo float. 2 - Crie um comentário de no máximo uma linha: # Exemplo de comentário simples, de até uma linha. Comentários curtos em Python devem iniciar com o símbolo “ # “, dessa forma o conteúdo desta linha de código será simplesmente ignorado pelo interpretador.
  • 39. 3 - Crie um comentário de mais de uma linha: '''Apenas explorando a possibilidade de criar um comentário composto de mais de uma linha, que permite uma explicação mais elaborada sobre o código em questão.''' Todo comentário maior que uma linha em Python deve ter seu conteúdo entre aspas triplas simples ‘’’ ‘’’ ou aspas triplas duplas “”” “””, de acordo com a preferência do desenvolvedor. 4 - Escreva um programa que mostra em tela a mensagem: Olá Mundo!!! print('Olá Mundo!!!') Usando da função print( ) por sua vez parametrizada com a string ‘Olá Mundo!!!’, ao executar o código será exibido em tela / em terminal a mensagem Olá Mundo!!!. O retorno será: Olá Mundo!!!
  • 40. 5 - Crie uma variável nome e atribua para a mesma um nome digitado pelo usuário: nome = input('Por favor, digite o seu nome: ') De acordo com o enunciado do exercício, inicialmente declaramos uma variável de nome nome, que por meio da função input( ) pede que o usuário digite algo, nesse caso, seu próprio nome. Ao terminar de digitar o nome e pressionar a tecla ENTER, o conteúdo digitado estará atribuído para a variável nome. 6 - Exiba em tela o valor e o tipo de dado da variável num1: Sendo num1 = 1987. num1 = 1987 print(num1) print(type(num1)) Inicialmente é declarada uma variável de nome num1, que por sua vez tem atribuída o número int 1987. Parametrizando a função print( ) com a variável num1, obteremos como retorno o valor da mesma. Já quando parametrizamos nossa função print( ) com a função type( ) por sua vez parametrizada com a variável num1, o retorno esperado é que seja exibido em tela o tipo de dado associado a essa variável. O retorno será: 1987 Int
  • 41. 7 - Peça para que o usuário digite um número, em seguida exiba em tela o número digitado. num = input('Digite um número: ') print(f'O número digitado é : {num}') Declarada a variável num, por sua vez parametrizada com a função input( ) que interage com o usuário pedindo que o mesmo digite um número, podemos exibir esse número em tela via função print( ). Usando de f’strings e máscaras de substituição podemos criar um retorno um pouco mais elaborado, incorporando na string o conteúdo da variável num. Supondo que o usuário tenha digitado 106, o retorno será: O número digitado é: 106 8 - Peça para que o usuário digite um número, em seguida o converta para float, exibindo em tala tanto o número em si quanto seu tipo de dado. num = input('Digite um número: ') num = float(num) print(num) print(type(num))
  • 42. Uma vez criada nossa variável num, com seu conteúdo vindo da interação com o usuário, podemos atualizar o conteúdo dessa variável, mudando inclusive seu tipo de dado. Para isso, nossa variável num recebe como atributo o método float( ) parametrizado com ela mesma. Dessa forma, o conteúdo atribuído a variável num é convertido de formato e salvo sobrescrevendo o conteúdo antigo dessa variável. Por meio da função print( ) podemos exibir em tela tanto o tipo quanto o conteúdo da variável num. Supondo que o usuário tenha digitado 52, o retorno será: 52 float 9 - Crie uma lista com 5 nomes de pessoas: nomes = ['Ana', 'Carlos', 'Daiane', 'Fernando', 'Maria'] print(nomes) Uma lista em Python, tipo de dado muito similar a uma array em outras linguagens de programação, é uma estrutura de dados que serve para guardar mais de um dado associado a uma variável, sem distinção da quantia nem do tipo de dado em questão, a única ressalva é que para que tal tipo de estrutura de dado seja reconhecida corretamente pelo interpretador do Python, a mesma deve obedecer a sintaxe, toda e qualquer lista tem seus dados dentro de “ [ ] “ colchetes. O retorno será: [‘Ana’, ‘Carlos’, ‘Daiane’, ‘Fernando’, ‘Maria’]