-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexercicios_python_condicionais.py
More file actions
282 lines (261 loc) · 12.5 KB
/
exercicios_python_condicionais.py
File metadata and controls
282 lines (261 loc) · 12.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# -*- coding: utf-8 -*-
"""Exercícios Python 2.ipynb
Automatically generated by Colab.
# Condicionais com if/else:
"""
# 1. Escreva um programa que peça ao usuário sua idade e informe se ele é maior de idade (no Brasil, 18 anos) utilizando type hints.
idade: int
e_maior_de_idade: bool
idade = int(input("Informe a sua idade: "))
if idade > 18:
e_maior_de_idade = True
else:
e_maior_de_idade = False
print("O usuário é maior de idade") if e_maior_de_idade else print("O usuário não é maior de idade")
# 2. Escreva um programa que peça ao usuário o comprimento dos três lados de um triângulo e classifique-o como equilátero, isósceles ou escaleno utilizando type hints.
lado_a: float # Quando se utiliza type hints, cada variável deve ter seu tipo designado separadamente. Não é possível designar vários em uma mesma linha.
lado_b: float
lado_c: float
tipo_triangulo: str
lado_a = int(input("Informe o lado a do triângulo: "))
lado_b = int(input("Informe o lado b do triângulo: "))
lado_c = int(input("Informe o lado c do triângulo: "))
if lado_a <= 0 or lado_b <= 0 or lado_c <= 0:
print("Pelo menos um dos lados do triângulo possui medida inválida, portanto não será possível classificá-lo.")
else:
if lado_a == lado_b == lado_c:
tipo_triangulo = "equilátero"
elif lado_a == lado_b or lado_a == lado_c or lado_b == lado_c:
tipo_triangulo = "isósceles"
else:
tipo_triangulo = "escaleno"
print("O triângulo é do tipo", tipo_triangulo)
# 3. Escreva um programa que peça ao usuário três números e imprima o maior deles utilizando type hints.
numero1: float
numero2: float
numero3: float
maior_numero: float
numero1 = int(input("Informe o primeiro número: "))
numero2 = int(input("Informe o segundo número: "))
numero3 = int(input("Informe o terceiro número: "))
if numero1 == numero2 == numero3:
print("Os três números são iguais.")
else:
if numero1 >= numero2 and numero1 >= numero2:
maior_numero = numero1
elif numero2 >= numero1 and numero2 >= numero3:
maior_numero = numero2
else:
maior_numero = numero3
print("O maior número é", maior_numero)
"""# Condicionais com match:"""
# 1. Escreva um programa que peça ao usuário o nome de uma fruta e utilize o operador match para imprimir uma mensagem relacionada à fruta (ex: "Ótima fonte de vitamina C", "Perfeito para uma salada", etc.).
fruta: str
texto_fruta: str
frutas = ["maçã", "banana", "laranja", "uva", "tomate", "mamão", "kiwi", "pêssego", "morango", "abacate", "cereja", "manga", "abacaxi"]
fruta = input("Informe o nome de uma fruta: ")
if fruta not in frutas:
print("A fruta informada não é reconhecida.")
else:
match fruta:
case "maçã":
texto_fruta = "É melhor quando está vermelha."
case "banana":
texto_fruta = "Fonte de potássio."
case "laranja":
texto_fruta = "Ótima fonte de vitamina C."
case "uva":
texto_fruta = "Pequena e cheia de sementes."
case "tomate":
texto_fruta = "Perfeito para uma salada."
case "mamão":
texto_fruta = "Grande e cheio de sementes."
case "kiwi":
texto_fruta = "Verde e com uma casca rugosa."
case "pêssego":
texto_fruta = "Ótima para um dia quente."
case "morango":
texto_fruta = "Ótimo para usar em doces."
case "abacate":
texto_fruta = "É uma fonte muito boa de vitamina E."
case "cereja":
texto_fruta = "Pode ser colocada em bolos."
case "manga":
texto_fruta = "Pode ter gosto de álcool."
case "abacaxi":
texto_fruta = "É bem ácido."
print(texto_fruta)
# 2. Escreva um programa que peça ao usuário o número do dia da semana (1-7) e utilize o operador match para imprimir o nome completo do dia.
dia_da_semana_int: int
dia_da_semana_str: str
dia_da_semana_int = int(input("Informe um número de 1 a 7: "))
if dia_da_semana_int < 1 or dia_da_semana_int > 7:
print("O número informado é inválido.")
else:
match dia_da_semana_int: # Match é o equivalente à estrutura switch no Python.
case 1:
dia_da_semana_str = "domingo"
case 2:
dia_da_semana_str = "segunda-feira"
case 3:
dia_da_semana_str = "terça-feira"
case 4:
dia_da_semana_str = "quarta-feira"
case 5:
dia_da_semana_str = "quinta-feira"
case 6:
dia_da_semana_str = "sexta-feira"
case 7:
dia_da_semana_str = "sábado"
print("O dia da semana é", dia_da_semana_str)
# 3. Escreva um programa que peça ao usuário seu nível de escolaridade (fundamental, médio, superior) e utilize o operador match para imprimir o tempo médio de estudo para cada nível.
nivel_escolaridade: str
tempo_medio_estudo: str
nivel_escolaridade = input("Informe a sua escolaridade (fundamental, médio ou superior): ")
if nivel_escolaridade not in ("fundamental", "médio", "superior"):
print("A escolaridade informada não é válida")
else:
match nivel_escolaridade:
case "fundamental":
tempo_medio_estudo = "de 1 a 9 anos"
case "médio":
tempo_medio_estudo = "de 1 a 3 anos"
case "superior":
tempo_medio_estudo = "de 1 a 6 anos"
print("O tempo médio da escolaridade escolhida é de", tempo_medio_estudo)
"""# Tuplas"""
# 1. Crie uma tupla para armazenar os dados de uma pessoa (nome, idade, cidade). Utilize type hints e demonstre como acessar cada elemento da tupla.
nome: str = "Matheus"
idade: int = 23
cidade: str = "Santa Maria"
pessoa: tuple[str, int, str] = (nome, idade, cidade)
print("Nome da pessoa:", pessoa[0])
print("Idade da pessoa:", pessoa[1])
print("Cidade da pessoa:", pessoa[2])
# 2. Escreva um programa que receba uma tupla de números e retorne uma nova tupla com os elementos na ordem inversa. Utilize type hints.
tupla: tuple[int, int, int, int, int]
tupla_reversa: tuple[int, int, int, int, int]
tupla = (1, 2, 3, 4, 5)
print("A tupla é:", tupla)
tupla_reversa = tupla[::-1] # Utiliza indexação para acessar do primeiro ao último elemento da tupla (ambos extremos inclusos) com um step de -1, efetivamente fazendo um percurso inverso do intervalo
print("A tupla em ordem inversa é:", tupla_reversa)
# 3. Escreva um programa que peça ao usuário um número e procure por ele em uma tupla. Utilize type hints e imprima uma mensagem informando se o elemento foi encontrado ou não.
tupla: tuple[int, int, int, int, int, int, int, int, int, int]
num_a_procurar: int
indice_encontrado: int
tupla = (0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13)
print("A tupla é:", tupla)
num_a_procurar = int(input("Informe o número a procurar: "))
if tupla.count(num_a_procurar) > 0: # Condição usada para que não ocorra uma exception caso o número procurado não esteja na tupla, já que o método index() gera um ValueError neste caso.
indice_encontrado = tupla.index(num_a_procurar)
print("O número está na posição {} da tupla.".format(indice_encontrado + 1))
else:
print("O número não está na tupla.")
"""# Conjuntos"""
# 1. Crie dois conjuntos com diferentes números e utilize type hints para demonstrar as operações de união (|), intersecção (&) e diferença (-) entre eles.
conjunto1: set[int] = {1, 2, 3, 4, 5, 6, 7}
conjunto2: set[int] = {5, 6, 7, 8, 9, 10, 11}
print("O primeiro conjunto é {} e o segundo conjunto é {}.".format(conjunto1, conjunto2))
print("União entre os dois conjuntos:", conjunto1 | conjunto2)
print("Intersecção entre os dois conjuntos:", conjunto1 & conjunto2)
print("Diferença entre os dois conjuntos (primeiro menos o segundo):", conjunto1 - conjunto2)
print("Diferença entre os dois conjuntos (segundo menos o primeiro):", conjunto2 - conjunto1)
# 2. Escreva um programa que peça ao usuário um número e verifique se ele pertence a um determinado conjunto. Utilize type hints.
conjunto: set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
numero: int
numero = int(input("Informe um número: "))
if numero in conjunto:
print("O número está contido no conjunto", conjunto)
else:
print("O número não está contido no conjunto", conjunto)
# 3. Escreva um programa que receba um conjunto com elementos repetidos e retorne um novo conjunto sem duplicatas. Utilize type hints.
conjunto_recebido: str
numeros: list[int]
conjunto_recebido = input("Informe os elementos do conjunto, sendo eles inteiros e separados por vírgula: ")
numeros = conjunto_recebido.split(",")
numeros = set(map(int, numeros)) # A função map é usada para converter cada elemento na lista de str para int. Como a função retorna um objeto do tipe "map," precisamos converter para list.
# Já que conjuntos por definição não aceitam elementos repetidos, não precisamos fazer mais nada para remover as duplicatas. Elas são removidas automaticamente ao se converter em conjunto.
print("O conjunto sem duplicatas é:", numeros)
"""# Dicionários"""
# 1. Crie um dicionário para armazenar dados de alunos (nome, matrícula, curso). Utilize type hints e demonstre como adicionar, remover e modificar elementos no dicionário.
nome: str
matricula: int
curso: str
resp_atualizar: str
resp_remover: str
atualizar_dicionario: bool = True
aluno: dict
while atualizar_dicionario:
nome = input("Informe o nome do aluno: ")
matricula = int(input("Informe a matrícula do aluno: "))
curso = input("Informe o curso do aluno: ")
aluno = {
"nome": nome,
"matricula": matricula,
"curso": curso
}
print("Nome do aluno:", aluno["nome"])
print("Matrícula do aluno:", aluno["matricula"])
print("Curso do aluno:", aluno["curso"])
resp_atualizar = input("Você deseja atualizar os dados do aluno? (S/N) ")
if resp_atualizar != "S":
atualizar_dicionario = False
resp_remover = input("Você deseja remover o campo de matrícula do aluno? (S/N) ")
if resp_remover != "S":
print("O nome do aluno é {}, a matrícula é {} e o curso é {}.".format(aluno["nome"], aluno["matricula"], aluno["curso"]))
else:
aluno.pop("matricula")
print("O nome do aluno é {} e o curso é {}. A matrícula foi removida.".format(aluno["nome"], aluno["curso"]))
# 2. Escreva um programa que receba um texto como entrada e utilize um dicionário para contar a frequência de cada palavra. Utilize type hints e mostre as palavras mais frequentes.
texto: str
palavra: str
palavras: list[str]
contador_palavras: dict = {} # Cria um dicionário vazio para que os dados sejam adicionados posteriormente.
x: int
texto = input("Informe o texto: ")
texto = texto.lower().replace(".", "").replace(",", "").replace("?", "").replace("!", "") # Converte o texto todo para minúsculo e retira os sinais de pontuação (.,?!).
palavras = texto.split(" ")
for palavra in palavras:
if palavra not in contador_palavras.keys():
contador_palavras[palavra] = 1 # Adiciona uma nova palavra do texto ao dicionário.
else:
contador_palavras[palavra] += 1
# Na próxima linha, o dicionário é ordenado em ordem decrescente de acordo com o número de vezes que cada palavra é utilizada.
# O parâmetro "key" é o responsável pelo ordenamento da lista pelo número de vezes utilizada de cada palavra.
# Se isto não for especificado, a lista será ordenada alfabeticamente (já que no índice 0 de contador_palavras.items() estão as próprias palavras).
contador_palavras = dict(sorted(contador_palavras.items(), reverse = True, key = lambda item_dicionario : item_dicionario[1]))
print("Palavras que aparecem no texto e o número de vezes que são utilizadas:")
for x in contador_palavras:
if (contador_palavras[x] != 1):
print("\"{}\" - utilizada {} vezes".format(x, contador_palavras[x]))
else:
print("\"{}\" - utilizada {} vez".format(x, contador_palavras[x]))
# 3. Crie um dicionário com traduções de palavras entre dois idiomas. Utilize type hints para traduzir uma palavra fornecida pelo usuário.
palavra: str
traducoes: dict[str, str] = {
"the": "o, a, os, as",
"of": "de",
"to": "para",
"and": "e",
"a": "um, uma",
"in": "em, dentro",
"is": "é",
"it": "este",
"you": "você",
"that": "que, aquele",
"he": "ele",
"was": "era, estava",
"for": "por, para",
"on": "em",
"are": "são, estão",
"with": "com",
"as": "como, enquanto",
"I": "eu",
"his": "seu, dele",
"they": "eles"
}
palavra = input("Informe uma palavra a ser traduzida (em inglês): ")
if palavra in traducoes:
print("A tradução da palavra {} é \"{}.\"".format(palavra, traducoes[palavra]))
else:
print("A palavra não está no dicionário.")