diff --git a/.github/workflows/corretor_de_exercicios_secao_06.yml b/.github/workflows/corretor_de_exercicios_secao_06.yml
index 38572f5b8..7d6baa287 100644
--- a/.github/workflows/corretor_de_exercicios_secao_06.yml
+++ b/.github/workflows/corretor_de_exercicios_secao_06.yml
@@ -23,6 +23,10 @@ jobs:
if: always()
run: |
python -m doctest -f secao_06_exercicios_strings/ex_02_inversor_maisculo.py
+ - name: Correção do Exercício 04 da seção de Strings
+ - if: always()
+ run: |
+ python -m doctest -f secao_06_exercicios_strings/ex_04_nomes_vertical_escada.py
- name: Correção do Exercício 05 da seção de Strings
if: always()
run: |
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..26d33521a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 000000000..105ce2da2
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/lista-de-exercicios-python-busertec.iml b/.idea/lista-de-exercicios-python-busertec.iml
new file mode 100644
index 000000000..8b8c39547
--- /dev/null
+++ b/.idea/lista-de-exercicios-python-busertec.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..d1e22ecb8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..553f848ab
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..94a25f7f4
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 000000000..07f12d2b6
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,25 @@
+{
+ // Use o IntelliSense para saber mais sobre os atributos possíveis.....
+ // Focalizar para exibir as descrições dos atributos existentes.
+ // Para obter mais informações, acesse: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python: Arquivo Atual",
+ "type": "python",
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal",
+ "justMyCode": true
+ },
+ {
+ "name": "Rodar Doctest",
+ "type": "python",
+ "request": "launch",
+ "module": "doctest",
+ "args": ["${file}", "-v"],
+ "cwd": "${workspaceRoot}",
+ "justMyCode": true
+ }
+ ]
+}
diff --git a/lista-de-exercicios-python-brasil b/lista-de-exercicios-python-brasil
new file mode 160000
index 000000000..938677f43
--- /dev/null
+++ b/lista-de-exercicios-python-brasil
@@ -0,0 +1 @@
+Subproject commit 938677f43ed7bbace55763965e427622852aa8e8
diff --git a/secao_01_estrutura_sequencial/ex_01_alo_mundo.py b/secao_01_estrutura_sequencial/ex_01_alo_mundo.py
index b9b0821a6..4f6c941e7 100644
--- a/secao_01_estrutura_sequencial/ex_01_alo_mundo.py
+++ b/secao_01_estrutura_sequencial/ex_01_alo_mundo.py
@@ -12,4 +12,4 @@
def ola_mundo():
"""Escreva aqui em baixo a sua solução"""
-
+ print('Olá Mundo')
diff --git a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
index 8c3d45dd4..82b8edb5a 100644
--- a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
+++ b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
@@ -11,6 +11,11 @@
"""
+from ast import Num
+
+
def escreva_um_numero():
- """Escreva aqui em baixo a sua solução"""
+ # """Escreva aqui em baixo a sua solução"""
+ num=int(input("Digite um número:"))
+ print(f'O número informado foi {num}')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py b/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py
index b842fd8b7..a509f694d 100644
--- a/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py
+++ b/secao_01_estrutura_sequencial/ex_03_imprima_soma_de_dois_numeros.py
@@ -15,3 +15,6 @@
def imprima_a_soma_de_dois_numeros():
"""Escreva aqui em baixo a sua solução"""
+ numero1 = int(input('Digite um número: '))
+ numero2 = int(input('Digite o segundo número: '))
+ print (f'A soma dos dois números informados é {numero1 + numero2}')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
index a1b189cd5..6a246f283 100644
--- a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
+++ b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
@@ -15,4 +15,8 @@
def calcular_media():
"""Escreva aqui em baixo a sua solução"""
-
+ media1 = float(input('Digite a media do 1 bimestre '))
+ media2 = float(input('Digite a media do 2 bimestre '))
+ media3 = float(input('Digite a media do 3 bimestre '))
+ media4 = float(input('Digite a media do 4 bimestre '))
+ print (f'A média anual é {(media1 + media2 + media3 + media4) / 4}')
diff --git a/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py b/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py
index 315e5392d..3ed8886b9 100644
--- a/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py
+++ b/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py
@@ -13,7 +13,19 @@
Transformando para centímetros dá 362.1 cm
"""
+# conversão feita do m vezes 100
+def conversao (m):
+ return 100* m
+
+ # imput pedindo a quantidade de metros
+ print ('Transformando para centímetros dá: {(conversao (m))}cm')
+ # o 'f' do inicio garante a formatação usada, a conversao 'def' precisa
+ # estar entre chaves e o : .1f limita as casas decimais para apenas uma, arredondando as que sobram.
def converter_metros_para_centimetros():
"""Escreva aqui em baixo a sua solução"""
+ m = float(input('Digite a quantidade de metros para conversão:'))
+ print(f'Transformando para centímetros dá{(conversao (m)): .1f} cm')
+
+
diff --git a/secao_01_estrutura_sequencial/ex_06_area_circulo.py b/secao_01_estrutura_sequencial/ex_06_area_circulo.py
index 840559026..a6a10c0e0 100644
--- a/secao_01_estrutura_sequencial/ex_06_area_circulo.py
+++ b/secao_01_estrutura_sequencial/ex_06_area_circulo.py
@@ -18,3 +18,9 @@
def calcular_area_de_circulo():
"""Escreva aqui em baixo a sua solução"""
+
+ m = float(input('Digite o raio do círculo: '))
+
+ c = 3.1415* (m**2)
+
+ print(f'A área do círculo com esse raio é: {c:.4f}')
diff --git a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
index 63b12a193..e2bf6c9bf 100644
--- a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
+++ b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
@@ -20,3 +20,12 @@
def calcular_area_de_quadrado():
"""Escreva aqui em baixo a sua solução"""
+
+ m = float(input('Digite o lado do quadrado: ')) **2
+
+ c = m * 2
+
+ print(f'A área do quadrado com esse lado é: {m:.2f}')
+
+ print(f'O dobro da aŕea do quadrado é: {c:.2f}')
+
diff --git a/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py b/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py
index 07ded093f..51e0b70ce 100644
--- a/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py
+++ b/secao_01_estrutura_sequencial/ex_08_horas_trabalhadas_mes.py
@@ -17,3 +17,12 @@
def calcular_salario():
"""Escreva aqui em baixo a sua solução"""
+
+ m = float(input('Digite quanto você ganha por hora trabalhada: '))
+ n = float(input('Digite quantas horas você trabalha por mês: '))
+
+ print(f'Seu salário desse mês é {m * n:.2f}')
+
+
+
+
diff --git a/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py b/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py
index a13351c7e..0db00ed7f 100644
--- a/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py
+++ b/secao_01_estrutura_sequencial/ex_09_fahrenheit_para_celsius.py
@@ -19,3 +19,6 @@
def transformar_para_celsius():
"""Escreva aqui em baixo a sua solução"""
+
+ m = float(input('Digite quantos graus Fahrenheit você quer converter para Celsius: '))
+ print(f'Essa temperatura é de {(m-32)/1.8:.0f} Celsius')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py b/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py
index 76d97aa8d..9b94d4230 100644
--- a/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py
+++ b/secao_01_estrutura_sequencial/ex_10_celsius_para_fahrenheit.py
@@ -18,3 +18,6 @@
def transformar_para_fahrenheit():
"""Escreva aqui em baixo a sua solução"""
+
+ m = float(input('Digite quantos graus Celsius você quer converter para Fahrenheit: '))
+ print(f'Essa temperatura é de {m*1.8+32:.0f} Fahrenheit')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py b/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
index 09bdbbffd..d4b935224 100644
--- a/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
+++ b/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
@@ -23,4 +23,9 @@
def calcular_formulas():
"""Escreva aqui em baixo a sua solução"""
-
+ n1 = int(input('Digite o primeiro número inteiro '))
+ n2 = int(input('Digite o segundo número inteiro '))
+ nr = float(input('Digite o número real '))
+ print(f'O produto do dobro do primeiro com metade do segundo é {(n1*2)*(n2/2):.2f}')
+ print(f'A soma do triplo do primeiro com o terceiro é {(n1*3)+nr:.2f}')
+ print(f'O terceiro elevado ao cubo é {nr**3:.2f}')
diff --git a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py
index 1f8418fab..fca50c7d8 100644
--- a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py
+++ b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py
@@ -19,3 +19,5 @@
def calcular_peso_ideal():
"""Escreva aqui em baixo a sua solução"""
+ a = float(input('Digite sua altura: '))
+ print(f'Seu peso ideal é {(72.7 * a)-58:.1f} kg')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py b/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py
index fe27d6ff1..e586d43c5 100644
--- a/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py
+++ b/secao_01_estrutura_sequencial/ex_13_peso_ideal_mulher_e_homem.py
@@ -22,3 +22,6 @@
def calcular_peso_ideal():
"""Escreva aqui em baixo a sua solução"""
+ a = float(input('Digite sua altura: '))
+ print(f'Seu peso ideal é {(62.1 * a)-44.7:.1f} kg, se você for mulher')
+ print(f'Seu peso ideal é {(72.7 * a)-58:.1f} kg, se você for homem')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py b/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py
index 16a2a211f..bc3c22d4f 100644
--- a/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py
+++ b/secao_01_estrutura_sequencial/ex_14_joao_papo_de_pescador.py
@@ -26,3 +26,13 @@
def calcular_peso_excedente_e_multa():
"""Escreva aqui em baixo a sua solução"""
+
+ p = float(input('Seu Jão, digite quantos kgs você pescou hoje: '))
+ if p <= 50:
+
+ print(f'O peso excedente de peixes é de {0:.2f} kg')
+ print(f'Por isso, a multa é de R$ {0:.2f}')
+
+ else:
+ print(f'O peso excedente de peixes é de {p-50:.2f} kg')
+ print(f'Por isso, a multa é de R$ {(p-50)*4:.2f}')
diff --git a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
index 901de0409..856ba8a52 100644
--- a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
+++ b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
@@ -27,3 +27,16 @@
def calcular_assalto_no_salario():
"""Escreva aqui em baixo a sua solução"""
+
+ g = float(input('Digite quanto você ganha por hora trabalhada : '))
+ h = float(input('Digite quantas horas você trabalha por mês: '))
+
+ print(f'+ Salário Bruto : {g*h:.2f}')
+
+ print(f'- IR (11%) : R$ {(g*h) * 0.11 :.2f}')
+
+ print(f'- INSS (8%) : R$ {(g*h) * 0.08 :.2f}')
+
+ print(f'- Sindicato ( 5%) : R$ {(g*h) * 0.05 :.2f}')
+
+ print(f'= Salário Liquido : R$ {(g*h)-(((g*h) * 0.11) + ((g*h) * 0.08) + ((g*h) * 0.05)):.2f}')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py b/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py
index 1a2d13529..1be1ee213 100644
--- a/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py
+++ b/secao_01_estrutura_sequencial/ex_16_loja_de_tintas_simples.py
@@ -21,3 +21,9 @@
def calcular_latas_e_preco_de_tinta():
"""Escreva aqui em baixo a sua solução"""
+
+ from math import ceil
+ a_p = float(input('Digite a área a ser pintada em m2: '))
+ l_p_m = ceil (a_p / 3)
+ n_d_l = ceil(l_p_m / 18)
+ print (f'Você deve comprar {n_d_l:.0f} lata(s) tinta ao custo de R$ {n_d_l * 80:.2f}')
diff --git a/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py b/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py
index 09b7e7ffc..dc478ab03 100644
--- a/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py
+++ b/secao_01_estrutura_sequencial/ex_17_loja_de_tintas_complexa.py
@@ -1,7 +1,6 @@
"""
Exercício 17 da seção de estrutura sequencial da Python Brasil:
https://wiki.python.org.br/EstruturaSequencial
-
Faça um Programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada.
Considere que a cobertura da tinta é de 1 litro para cada 6 metros quadrados e
que a tinta é vendida em latas de 18 litros, que custam R$ 80,00 ou em galões de 3,6 litros, que custam R$ 25,00.
@@ -10,7 +9,6 @@
comprar apenas galões de 3,6 litros;
misturar latas e galões, de forma que o custo seja menor.
Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias.
-
>>> from secao_01_estrutura_sequencial import ex_17_loja_de_tintas_complexa
>>> ex_17_loja_de_tintas_complexa.input = lambda k: '100'
>>> ex_17_loja_de_tintas_complexa.calcular_latas_e_preco_de_tinta()
@@ -24,9 +22,32 @@
Você pode comprar 3 lata(s) de 18 litros a um custo de R$ 240. Vão sobrar 17.0 litro(s) de tinta.
Você pode comprar 11 lata(s) de 3.6 litros a um custo de R$ 275. Vão sobrar 2.6 litro(s) de tinta.
Para menor custo, você pode comprar 2 lata(s) de 18 litros e 1 galão(ões) de 3.6 litros a um custo de R$ 185. Vão sobrar 2.6 litro(s) de tinta.
-
"""
+import math
+
def calcular_latas_e_preco_de_tinta():
"""Escreva aqui em baixo a sua solução"""
+ a_quadrada = float(input('Digite o valor da área para cálculo: '))
+ a_folga = a_quadrada * 1.1
+ li_pm = math.ceil(a_folga / 6)
+ lata_li = math.ceil(li_pm / 18)
+ galao_li = math.ceil(li_pm / 3.5)
+ preco_lata = lata_li * 80
+ preco_galao = galao_li * 25
+ sobra_lata = (lata_li * 18) - li_pm
+ sobra_galao = (galao_li * 3.6) - li_pm
+ resto = li_pm % 18
+ latas_int = math.floor(li_pm / 18)
+ galao_resto = math.ceil(resto / 3.6)
+ la_ga = (latas_int * 80) + (galao_resto * 25)
+ res_tot = ((latas_int * 18) + (galao_resto * 3.6)) - li_pm
+
+ print(f'Você deve comprar {li_pm} litros de tinta.')
+ print(
+ f'Você pode comprar {lata_li} lata(s) de 18 litros a um custo de R$ {preco_lata}. Vão sobrar {sobra_lata:.1f} litro(s) de tinta.')
+ print(
+ f'Você pode comprar {galao_li} lata(s) de 3.6 litros a um custo de R$ {preco_galao}. Vão sobrar {sobra_galao:.1f} litro(s) de tinta.')
+ print(
+ f'Para menor custo, você pode comprar {latas_int} lata(s) de 18 litros e {galao_resto} galão(ões) de 3.6 litros a um custo de R$ {la_ga:.0f}. Vão sobrar {res_tot:.1f} litro(s) de tinta.')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py b/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py
index b24730f1a..e54d8ea65 100644
--- a/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py
+++ b/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py
@@ -3,11 +3,10 @@
https://wiki.python.org.br/EstruturaSequencial
Faça um programa que peça o tamanho de um arquivo para download (em MB) e a velocidade de um link de Internet (em Mbps),
-calcule e informe o tempo aproximado de download do arquivo usando este link (em minutos).
-Arredonde o tempo em minutos
+calcule e o tempo em minutos
>>> from secao_01_estrutura_sequencial import ex_18_tempo_de_download
- >>> numeros =['50', '2500']
+ >>> numeros = ['50', '2500']
>>> ex_18_tempo_de_download.input = lambda k: numeros.pop()
>>> ex_18_tempo_de_download.calcular_tempo_de_download()
O tempo aproximado do Download é: 7 minuto(s)
@@ -21,3 +20,8 @@
def calcular_tempo_de_download():
"""Escreva aqui em baixo a sua solução"""
+
+ mb = float(input('Digite quantos MB tem o arquivo que você irá baixar: '))
+ mbps = float(input('Digite qual é a velocidade da sua internet: '))
+ tempo = (mb/(mbps / 8))/60
+ print(f'O tempo aproximado do Download é: {tempo:.0f} minuto(s)')
diff --git a/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py b/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py
index e1d40a714..349211b44 100644
--- a/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py
+++ b/secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py
@@ -17,3 +17,8 @@
def maior_de_dois_numeros(x, y):
"""Escreva aqui em baixo a sua solução"""
+
+ if x>y:
+ print(f'{x}')
+ else :
+ print(f'{y}')
diff --git a/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py b/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py
index 23501b91e..4a4da806a 100644
--- a/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py
+++ b/secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py
@@ -17,3 +17,9 @@
def positivo_ou_negativo(n):
"""Escreva aqui em baixo a sua solução"""
+ if n > 0:
+ print("'positivo'" )
+ elif n == 0:
+ print("'não tem positivo nem negativo'" )
+ else:
+ print("'negativo'" )
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py b/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py
index 466585cfb..1939cb2ba 100644
--- a/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py
+++ b/secao_02_estrutura_de_decisao/ex_03_F_ou_M.py
@@ -18,3 +18,9 @@
def f_ou_m(sexo):
"""Escreva aqui em baixo a sua solução"""
+ if sexo == 'M' :
+ print("'M - Masculino'")
+ elif sexo == 'F' :
+ print("'F - Feminino'")
+ else:
+ print("'Sexo inválido'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py b/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py
index acdc60f64..dd469523c 100644
--- a/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py
+++ b/secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py
@@ -17,3 +17,10 @@
def vogal_ou_consoante(letra):
"""Escreva aqui em baixo a sua solução"""
+ vogais = ('aeiou')
+ if letra.lower() in vogais:
+ print("'vogal'")
+ else:
+ print("'consoante'")
+
+
diff --git a/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py b/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py
index 322a968e7..076bcfc2e 100644
--- a/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py
+++ b/secao_02_estrutura_de_decisao/ex_05_notas_parciais.py
@@ -21,3 +21,9 @@
def notas_parciais(nota_1, nota_2):
"""Escreva aqui em baixo a sua solução"""
+n = input(float(f'Digite a primeira nota do aluno: '))
+n2 = input(float(f'Digite a segunda nota do aluno: '))
+if (n + n2) / 2 >= 7:
+ print(f'Aprovado')
+else:
+ print(f'Reprovado')
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py b/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py
index 84e731053..b279b0384 100644
--- a/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py
+++ b/secao_02_estrutura_de_decisao/ex_06_maior_numero_de_3_numeros.py
@@ -17,3 +17,11 @@
def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+
+ if x > y and x > z:
+ print(x)
+ elif y > x and y > z:
+ print(y)
+ else:
+ print(z)
+
diff --git a/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py b/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py
index b60bfe70f..61d2a07c0 100644
--- a/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py
+++ b/secao_02_estrutura_de_decisao/ex_07_maior_e_menor_numero_de_3_numeros.py
@@ -21,3 +21,17 @@
def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ maior=x
+ if y > x and y > z:
+ maior=y
+ elif z > x and z > y:
+ maior=z
+
+ menor=x
+ if y < x and y < z:
+ menor=y
+ elif z < x and z < y:
+ menor=z
+
+ print(f'Maior: {maior}')
+ print(f'Menor: {menor}')
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py b/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py
index 92155628a..0b9bee8d1 100644
--- a/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py
+++ b/secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py
@@ -20,3 +20,9 @@
def decidir_melhor_produto(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ menor=x
+ if y < x and y < z:
+ menor=y
+ elif z < x and z < y:
+ menor=z
+ print(f'Melhor produto custa R$ {menor:.2f}')
diff --git a/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py b/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py
index 547338521..694971fff 100644
--- a/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py
+++ b/secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py
@@ -18,3 +18,6 @@
def ordenar_decrescente(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ reversen = [x, y, z]
+ reversen.sort (reverse=True)
+ print(f'{reversen [0]}, {reversen [1]}, {reversen [2]}')
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py b/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py
index d502e8de9..9d2beeef9 100644
--- a/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py
+++ b/secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py
@@ -25,3 +25,11 @@
def cumprimentar(turno: str):
"""Escreva aqui em baixo a sua solução"""
+ if turno.upper () == 'M':
+ print("'Bom dia!'")
+ elif turno.upper () == 'V':
+ print("'Boa tarde!'")
+ elif turno.upper () == 'N':
+ print("'Boa noite!'")
+ else:
+ print("'Valor Inválido!'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
index f10641d83..9aed1268a 100644
--- a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
+++ b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
@@ -39,5 +39,32 @@
"""
+from re import S
+
+
def calcular_aumento(salario: float):
"""Escreva aqui em baixo a sua solução"""
+ if salario <= 280.00:
+ print(f'Salário atual: R$ {salario:.2f}')
+ print('Aumento porcentual: 20%')
+ print(f'Valor do aumento: R$ {(salario * 1.2) - salario:.2f}')
+ print(f'Novo salário: R$ {salario *1.2:.2f}')
+
+ elif salario <= 700.00:
+ print(f'Salário atual: R$ {salario:.2f}')
+ print('Aumento porcentual: 15%')
+ print(f'Valor do aumento: R$ {(salario * 1.15) - salario:.2f}')
+ print(f'Novo salário: R$ {salario *1.15:.2f}')
+
+ elif salario <= 1500.00:
+ print(f'Salário atual: R$ {salario:.2f}')
+ print('Aumento porcentual: 10%')
+ print(f'Valor do aumento: R$ {(salario * 1.1) - salario:.2f}')
+ print(f'Novo salário: R$ {salario *1.1:.2f}')
+
+ elif salario > 1500.00:
+ print(f'Salário atual: R$ {salario:.2f}')
+ print('Aumento porcentual: 5%')
+ print(f'Valor do aumento: R$ {(salario * 1.05) - salario:.2f}')
+ print(f'Novo salário: R$ {salario *1.05:.2f}')
+
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py b/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py
index 117e67bab..8204597c3 100644
--- a/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py
+++ b/secao_02_estrutura_de_decisao/ex_12_clt_assalto.py
@@ -53,3 +53,91 @@
def calcular_salario_liquido(valor_hora: float, horas_trabalhadas: int):
"""Escreva aqui em baixo a sua solução"""
+
+ # primeiro calculo, onde o salário bruto é < 900 e o imposto de renda é = 0 OK
+
+ # variáveis imutáveis
+
+ salario_bruto = valor_hora * horas_trabalhadas
+ inss = (1.1 * salario_bruto) - salario_bruto
+ sindicato = (1.03 * salario_bruto) - salario_bruto
+ fgts = (1.11 * salario_bruto) - salario_bruto
+
+
+ # -----------------------
+
+ if salario_bruto <= 900:
+
+ desconto_com_ir_isento = inss + sindicato
+ salario_liquido_sem_ir = salario_bruto - desconto_com_ir_isento
+
+ print(f'Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario_bruto:.2f}')
+ print(f'(-) IR (0%) : R$ 0.00')
+ print(f'(-) INSS (10%) : R$ {inss:.2f}')
+ print(f'(-) Sindicato (3%) : R$ {sindicato:.2f}')
+ print(f'FGTS (11%) : R$ {fgts:.2f}')
+ print(f'Total de descontos : R$ {desconto_com_ir_isento:.2f}')
+ print(f'Salário Liquido : R$ {salario_liquido_sem_ir:.2f}')
+
+ # segundo calculo OK
+
+ elif salario_bruto > 900 and salario_bruto <= 1500:
+
+ ir_5 = (1.05 * salario_bruto) - salario_bruto
+ descontos1 = inss + sindicato + ir_5
+ salario_liquido1 = salario_bruto - descontos1
+
+ print(f'Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario_bruto:.2f}')
+ print(f'(-) IR (5%) : R$ {ir_5:.2f}')
+ print(f'(-) INSS (10%) : R$ {inss:.2f}')
+ print(f'(-) Sindicato (3%) : R$ {sindicato:.2f}')
+ print(f'FGTS (11%) : R$ {fgts:.2f}')
+ print(f'Total de descontos : R$ {descontos1:.2f}')
+ print(f'Salário Liquido : R$ {salario_liquido1:.2f}')
+
+ # teceiro calculo
+
+ elif salario_bruto > 1500 and salario_bruto <= 2500:
+
+ ir_10 = (1.1 * salario_bruto) - salario_bruto
+ descontos2 = inss + sindicato + ir_10
+ salario_liquido2 = salario_bruto - descontos2
+
+ print(f'Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario_bruto:.2f}')
+ print(f'(-) IR (10%) : R$ {ir_10:.2f}')
+ # VER PQ O CALCULO DO TERCEIRO TA DANDO KAO AQUI
+ print(f'(-) INSS (10%) : R$ {inss:.2f}')
+ print(f'(-) Sindicato (3%) : R$ {sindicato:.2f}')
+ print(f'FGTS (11%) : R$ {fgts:.2f}')
+ print(f'Total de descontos : R$ {descontos2:.2f}')
+ print(f'Salário Liquido : R$ {salario_liquido2:.2f}')
+
+ # quarto calculo
+
+ elif salario_bruto > 2500:
+
+ ir_20 = (1.2 * salario_bruto) - salario_bruto
+ descontos3 = inss + sindicato + ir_20
+ salario_liquido3 = salario_bruto - descontos3
+
+ print(f'Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas}) : R$ {salario_bruto:.2f}')
+ print(f'(-) IR (20%) : R$ {ir_20:.2f}')
+ print(f'(-) INSS (10%) : R$ {inss:.2f}')
+ print(f'(-) Sindicato (3%) : R$ {sindicato:.2f}')
+ print(f'FGTS (11%) : R$ {fgts:.2f}')
+ print(f'Total de descontos : R$ {descontos3:.2f}')
+ print(f'Salário Liquido : R$ {salario_liquido3:.2f}')
+
+ # fim do código ...
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py b/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py
index 6edeb2c7d..62bcaf4ea 100644
--- a/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py
+++ b/secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py
@@ -29,3 +29,19 @@
def calcular_dia_da_semana(numero: int):
"""Escreva aqui em baixo a sua solução"""
+ if numero == 1:
+ print("'Domingo'")
+ elif numero == 2:
+ print("'Segunda'")
+ elif numero == 3:
+ print("'Terça'")
+ elif numero == 4:
+ print("'Quarta'")
+ elif numero == 5:
+ print("'Quinta'")
+ elif numero == 6:
+ print ("'Sexta'")
+ elif numero == 7:
+ print ("'Sábado'")
+ else:
+ print("'Dia Inválido'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py b/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py
index ca01c9495..f0b10718c 100644
--- a/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py
+++ b/secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py
@@ -46,3 +46,42 @@
def calcular_conceito(nota_1: float, nota_2: float):
"""Escreva aqui em baixo a sua solução"""
+
+ media = (nota_1 + nota_2) / 2
+
+# Entre 9.0 e 10.0 A
+ # Entre 7.5 e 9.0 B
+ # Entre 6.0 e 7.5 C
+ # Entre 4.0 e 6.0 D
+ # Entre 4.0 e zero E
+
+ if media >= 9.0:
+ print(f'Notas: {nota_1:.1f} e {nota_2:.1f}.')
+ print(f'Média: {media:.1f}')
+ print(f'Conceito: A')
+ print(f'Status: APROVADO')
+
+ elif media >= 7.5 and media < 9.0:
+ print(f'Notas: {nota_1:.1f} e {nota_2:.1f}.')
+ print(f'Média: {media:.1f}')
+ print(f'Conceito: B')
+ print(f'Status: APROVADO')
+
+ elif media >= 6.0 and media < 7.5 :
+ print(f'Notas: {nota_1:.1f} e {nota_2:.1f}.')
+ print(f'Média: {media:.1f}')
+ print(f'Conceito: C')
+ print(f'Status: APROVADO')
+
+ elif media >= 4.0 and media < 6.0 :
+ print(f'Notas: {nota_1:.1f} e {nota_2:.1f}.')
+ print(f'Média: {media:.1f}')
+ print(f'Conceito: D')
+ print(f'Status: REPROVADO')
+
+ elif media >= 0 and media < 4.0:
+ print(f'Notas: {nota_1:.1f} e {nota_2:.1f}.')
+ print(f'Média: {media:.1f}')
+ print(f'Conceito: E')
+ print(f'Status: REPROVADO')
+
diff --git a/secao_02_estrutura_de_decisao/ex_15_triangulo.py b/secao_02_estrutura_de_decisao/ex_15_triangulo.py
index 7da3edebb..05b902bba 100644
--- a/secao_02_estrutura_de_decisao/ex_15_triangulo.py
+++ b/secao_02_estrutura_de_decisao/ex_15_triangulo.py
@@ -27,3 +27,14 @@
def classificar_triangulo(lado_a: float, lado_b: float, lado_c: float):
"""Escreva aqui em baixo a sua solução"""
+
+ if lado_a + lado_b >= lado_c and lado_b + lado_c >= lado_a and lado_a + lado_c >= lado_b:
+
+ if lado_a == lado_b and lado_a == lado_c:
+ print("'Triângulo Equilátero'")
+ elif lado_a == lado_b or lado_a == lado_c or lado_b == lado_c:
+ print("'Triângulo Isósceles'")
+ else:
+ print("'Triângulo Escaleno'")
+ else:
+ print("'Não é um triângulo'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py b/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py
index f3ae3dcde..81c45780c 100644
--- a/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py
+++ b/secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py
@@ -24,5 +24,36 @@
"""
+import math
+
+
def resolver_equacao_do_segundo_grau(a: float, b: float, c: float):
"""Escreva aqui em baixo a sua solução"""
+ # primeiro teste:
+ if a == 0:
+ return 'Valor do coeficiente a deve ser diferente de 0'
+ # -----------------
+
+ delta = (b**2) - 4 * a * c
+ if delta < 0:
+ return f'Delta negativo ({delta}), por isso não existem raízes reais'
+
+ # terceirao
+
+ if delta == 0:
+ raiz = - b / 2 * a
+
+ return f'Delta é 0, raíz única no valor de {raiz:.1f}'
+
+ # quarteto
+
+ if delta > 0:
+ raiz1 = ( -b + math.sqrt(delta) ) / 2 * a
+ raiz2 = ( -b - math.sqrt(delta) ) / 2 * a
+ print (f"'Delta é {delta}, raízes são {raiz1:.1f} e {raiz2:.1f}'")
+
+ # se delta é negativo\:
+ #valor de delta: delta = b**2 - 4*a*c
+ #raiz (ou, solucao, no caso) da equacao: (-b - math.sqrt(delta))/2*a
+ #são duas soluçoes, 2° solucao (-b + math.sqrt(delta))/2 * a
+
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py b/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
index cf1b9b11b..967a405c5 100644
--- a/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
+++ b/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
@@ -16,7 +16,12 @@
False
"""
-
+import calendar
def eh_ano_bissexto(ano: int):
"""Escreva aqui em baixo a sua solução"""
+
+ if calendar.isleap(ano):
+ print('True')
+ else:
+ print('False')
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py b/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py
index 470fbd63d..a4174e966 100644
--- a/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py
+++ b/secao_02_estrutura_de_decisao/ex_18_validador_de_data.py
@@ -21,6 +21,48 @@
"""
-
def validar_data(data: str):
"""Escreva aqui em baixo a sua solução"""
+ if len(data) >= 8:
+ day, month, year = data.split('/')
+ day = int(day.lstrip('0'))
+ month = int(month.lstrip('0'))
+ year = int(year)
+ if day in range(1, 29) and month in range(1, 12) and year in range(1, 9999):
+ return 'Data válida'
+ return 'Data inválida'
+ return 'Data inválida'
+
+
+
+
+ # if month > 12:
+ # return f'Data inválida'
+ # if year > 9999 and year < 0000:
+ # return f'Data inválida'
+ # else:
+ # return f'Data inválida'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py b/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py
index a66653980..f3f0af2c2 100644
--- a/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py
+++ b/secao_02_estrutura_de_decisao/ex_19_decomposicao_de_numero.py
@@ -6,7 +6,7 @@
mesmo.
Observando os termos no plural a colocação do "e", da vírgula entre outros. Exemplo:
326 = 3 centenas, 2 dezenas e 6 unidades
-12 = 1 dezena e 2 unidades Testar com: 326, 300, 100, 320, 310,305, 301, 101, 311, 111, 25, 20, 10, 21, 11, 1, 7 e 16
+12 = 1 dezena e 2 unidades Testar com: 326, 300, 100, 320, 310,305,' 301, 101, 311, 111, 25, 20, 10, 21, 11, 1, 7 e 16
>>> decompor_numero(1000)
'O número precisa ser menor que 1000'
@@ -52,3 +52,26 @@
def decompor_numero(numero: int):
"""Escreva aqui em baixo a sua solução"""
+
+ #mais de mil e menos de zero
+
+ if (numero) >= 1000:
+ print("'O número precisa ser menor que 1000'")
+ return
+ elif (numero) < 0:
+ print ("'O número precisa ser positivo'")
+ return
+
+ centena = (numero//100)
+ dezena = (numero - (centena*100))//10
+ unidade = (numero-(centena*100)-(dezena*10))
+ print("'", end='')
+ print(f'{numero} = ', end='')
+
+ if(centena):
+ print(f'{centena} centena{"s" if centena>1 else ""}{(", " if unidade else " e ") if dezena else (" e " if unidade else "")}', end='')
+ if(dezena):
+ print(f'{dezena} dezena{"s" if dezena>1 else ""}{" e " if unidade else ""}', end='')
+ if(unidade):
+ print (f'{unidade} unidade{"s" if unidade>1 else ""}', end='')
+ print("'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py b/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py
index c064ce5fd..7511b66ce 100644
--- a/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py
+++ b/secao_02_estrutura_de_decisao/ex_20_3_notas_parciais.py
@@ -21,3 +21,11 @@
def calcular_status(nota_1, nota_2, nota_3):
"""Escreva aqui em baixo a sua solução"""
+ media = (nota_1 + nota_2 + nota_3) / 3
+
+ if media == 10:
+ return 'Aprovado com Distinção'
+ elif media >= 7:
+ return 'Aprovado'
+ else:
+ return 'Reprovado'
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_21_troco.py b/secao_02_estrutura_de_decisao/ex_21_troco.py
index 7edac85b2..30721154a 100644
--- a/secao_02_estrutura_de_decisao/ex_21_troco.py
+++ b/secao_02_estrutura_de_decisao/ex_21_troco.py
@@ -27,3 +27,223 @@
def calcular_troco(valor: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+
+ # notas_de_100_str = notas_de_50_str = notas_de_10_str = notas_de_5_str = notas_de_1_str = ' '
+ # notas_de_100 = notas_de_50 = notas_de_10 = notas_de_5 = notas_de_1 = 0
+ # notas_de_100, valor = divmod(valor, 100)
+ # notas_de_50, valor = divmod(valor, 50)
+ # notas_de_10, valor = divmod(valor, 10)
+ # notas_de_5, valor = divmod(valor, 5)
+ # notas_de_1, valor = divmod(valor, 1)
+
+ # partes_numericas = 0
+ # # print("'", end='')
+
+ # if notas_de_100 == 1:
+ # notas_de_100_str == '1 nota de R$ 100'
+ # # print(f'{notas_de_100} {notas_de_100_str} ', end='')
+ # partes_numericas += 1
+ # elif notas_de_100 > 1:
+ # notas_de_100_str == f'{notas_de_100} notas de R$ 100'
+ # # print(f'{notas_de_100} notas de R$ 100 ', end='')
+ # partes_numericas += 1
+
+
+
+ # if notas_de_50 == 1:
+ # notas_de_50_str == '1 nota de R$ 50'
+ # # print(f'{notas_de_50} nota de R$ 50, ', end='')
+ # partes_numericas += 1
+ # elif notas_de_50 > 1:
+ # notas_de_50_str == f'{notas_de_50} notas de R$ 50'
+ # # print(f'{notas_de_50} notas de R$ 50, ', end='')
+ # partes_numericas += 1
+
+
+ # if notas_de_10 == 1:
+ # notas_de_10_str == '1 nota de R$ 10'
+ # # print(f'{notas_de_10} nota de R$ 10, ', end='')
+ # partes_numericas += 1
+ # elif notas_de_10 > 1:
+ # notas_de_10_str == 'f{notas_de_10} notas de R$ 10'
+ # # print(f'{notas_de_10} notas de R$ 10, ', end='')
+ # partes_numericas += 1
+
+
+ # if notas_de_5 == 1:
+ # notas_de_5_str == '1 nota de R$ 5'
+ # # print(f'{notas_de_5} nota de R$ 5, ', end='')
+ # partes_numericas += 1
+ # elif notas_de_5 > 1:
+ # notas_de_5_str == f'{notas_de_5} notas de R$ 1'
+ # # print(f'{notas_de_5} notas de R$ 1, ', end='')
+ # partes_numericas += 1
+
+
+ # if notas_de_1 == 1:
+ # notas_de_1_str == '1 notas de R$ 1'
+ # # print(f'{notas_de_1} nota de R$ 1', end='')
+ # partes_numericas += 1
+ # elif notas_de_1 > 1:
+ # notas_de_1_str == f'{notas_de_1} notas de R$ 1'
+ # # print(f'{notas_de_1} notas de R$ 1', end='')
+ # partes_numericas += 1
+
+
+ # if partes_numericas == 1:
+ # if notas_de_100_str != ' ':
+ # print(f"'{notas_de_100_str}'")
+ # elif notas_de_50_str != ' ':
+ # print(f"'{notas_de_50_str}'")
+ # elif notas_de_10_str != ' ':
+ # print(f"'{notas_de_10_str}'")
+ # elif notas_de_5_str != ' ':
+ # print(f"'{notas_de_5_str}'")
+ # elif notas_de_1_str != ' ':
+ # print(f"'{notas_de_1_str}'")
+ # elif partes_numericas == 5:
+ # print(f"'{notas_de_100_str}, {notas_de_50_str}, {notas_de_10_str}, {notas_de_5_str} e {notas_de_1_str}'")
+
+ # elif partes_numericas == 2:
+ # if notas_de_10_str != ' ' and notas_de_1_str != ' ':
+ # print(f"'{notas_de_10_str} e {notas_de_1_str}'")
+
+ # elif partes_numericas == 4:
+ # print(f"'{notas_de_100_str}, {notas_de_50_str}, {notas_de_5_str} e {notas_de_1_str}'")
+
+
+ # notas_de_100_str = notas_de_50_str = notas_de_10_str = notas_de_5_str = notas_de_1_str = ' '
+
+
+ # saque = valor
+ notas_100 = notas_50 = notas_10 = nota_5 = nota_1 = 0
+ notas_100, valor = divmod(valor,100)
+ notas_50, valor = divmod(valor,50)
+ notas_10, valor = divmod(valor,10)
+ nota_5, valor = divmod(valor,5)
+ nota_1, valor = divmod(valor,1)
+ parte = 0
+ print("""'""",end="")
+
+ if notas_100 == 1:
+ print(f"""{notas_100} nota de R$ 100""",end="")
+ parte += 1
+ elif notas_100 > 1:
+ print(f"""{notas_100} notas de R$ 100""",end="")
+ parte += 1
+
+
+ if notas_50 != 0 and parte == 1:
+ print(",",end=" ")
+ if notas_50 == 1:
+ print(f"""{notas_50} nota de R$ 50""",end="")
+ parte += 1
+ elif notas_50 > 1:
+ print(f"""{notas_50} notas de R$ 50""",end="")
+ parte += 1
+
+
+ if parte != 0 and notas_10 != 0:
+ print(",",end=" ")
+ if notas_10 == 1:
+ print(f"""{notas_10} nota de R$ 10""",end="")
+ parte += 1
+ elif notas_10 > 1:
+ print(f"""{notas_10} notas de R$ 10""",end="")
+ parte += 1
+
+ # notas de 5
+
+ if parte != 0 and nota_5 != 0:
+ print(",",end=" ")
+ if nota_5 == 1:
+ print(f"""{nota_5} nota de R$ 5""",end="")
+ parte += 1
+ elif nota_5 > 1:
+ print(f"""{nota_5} notas de R$ 5""",end="")
+ parte += 1
+
+ # notas de 1
+
+ if parte != 0 and nota_1 != 0:
+ print(" e",end=" ")
+ if nota_1 == 1:
+ print(f"""{nota_1} nota de R$ 1""",end="")
+ elif notas_10 > 1:
+ print(f"""{nota_1} notas de R$ 1""",end="")
+ print("""'""")
+
+# def calcular_troco(valor: int) -> str:
+# """Escreva aqui em baixo a sua solução"""
+
+# valor = valor
+# cem_str = cinquenta_str = dez_str = cinco_str = um_str = ' '
+# partes_numericas = 0
+# if saque <= 600:
+# cem, numero_sobrando = divmod(saque, 100)
+# if cem == 1:
+# cem_str = '1 nota de R$ 100'
+# partes_numericas += 1
+# elif cem > 1:
+# cem_str = f'{cem} notas de R$ 100'
+# partes_numericas += 1
+
+
+# #Atualiza o número que sobra
+
+# cinquenta, numero_sobrando = divmod(numero_sobrando, 50)
+# if cinquenta == 1:
+# cinquenta_str = '1 nota de R$ 50'
+# partes_numericas += 1
+# elif cinquenta > 1:
+# cinquenta_str = f'{cinquenta} notas de R$ 50'
+# partes_numericas += 1
+
+# #Atualiza o número que sobra
+
+# dez, numero_sobrando = divmod(numero_sobrando, 10)
+# if dez == 1:
+# dez_str = '1 nota de R$ 10'
+# partes_numericas += 1
+# elif dez > 1:
+# dez_str = f'{dez} notas de R$ 10'
+# partes_numericas += 1
+
+# cinco, numero_sobrando = divmod(numero_sobrando, 5)
+# if cinco == 1:
+# cinco_str = '1 nota de R$ 5'
+# partes_numericas += 1
+# elif cinco > 1:
+# cinco_str = f'{cinco} notas de R$ 5'
+# partes_numericas += 1
+
+# #Atualiza o número que sobra
+
+# if numero_sobrando == 1:
+# um_str = '1 nota de R$ 1'
+# partes_numericas += 1
+# elif numero_sobrando > 1:
+# um_str = f'{numero_sobrando} notas de R$ 1'
+# partes_numericas += 1
+
+
+# if partes_numericas == 1:
+# if cem_str != ' ':
+# print(f"'{cem_str}'")
+# elif cinquenta_str != ' ':
+# print(f"'{cinquenta_str}'")
+# elif dez_str != ' ':
+# print(f"'{dez_str}'")
+# elif cinco_str != ' ':
+# print(f"'{cinco_str}'")
+# elif um_str != ' ':
+# print(f"'{um_str}'")
+# elif partes_numericas == 5:
+# print(f"'{cem_str}, {cinquenta_str}, {dez_str}, {cinco_str} e {um_str}'")
+
+# elif partes_numericas == 2:
+# if dez_str != ' ' and um_str != ' ':
+# print(f"'{dez_str} e {um_str}'")
+
+# elif partes_numericas == 4:
+# print(f"'{cem_str}, {cinquenta_str}, {cinco_str} e {um_str}'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py b/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py
index a836f1758..efb374049 100644
--- a/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py
+++ b/secao_02_estrutura_de_decisao/ex_22_par_ou_impar.py
@@ -22,3 +22,6 @@
def decidir_se_eh_par_ou_impar(valor: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if valor % 2 == 0:
+ return 'Par'
+ return 'Impar'
diff --git a/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py b/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py
index 9f2d9da04..00850da5d 100644
--- a/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py
+++ b/secao_02_estrutura_de_decisao/ex_23_inteiro_ou_decimal.py
@@ -18,7 +18,11 @@
>>> decidir_se_eh_inteiro_ou_decimal('3.1415')
'Decimal'
"""
-
+import math
def decidir_se_eh_inteiro_ou_decimal(valor: str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if math.floor(float(valor)) == float(valor):
+ return 'Inteiro'
+ else:
+ return 'Decimal'
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_24_operacao.py b/secao_02_estrutura_de_decisao/ex_24_operacao.py
index 73fd5778f..27b054906 100644
--- a/secao_02_estrutura_de_decisao/ex_24_operacao.py
+++ b/secao_02_estrutura_de_decisao/ex_24_operacao.py
@@ -7,7 +7,7 @@
par ou ímpar;
positivo ou negativo;
inteiro ou decimal.
-
+
Mostre o restultado com duas casas decimais
>>> fazer_operacao_e_classificar(2, 3, '+')
@@ -31,3 +31,43 @@
def fazer_operacao_e_classificar(n_1: float, n_2: float, operacao: str):
"""Escreva aqui em baixo a sua solução"""
+ if operacao == '+':
+ resultado = n_1 + n_2
+ print (f'Resultado: {resultado:.2f}')
+
+ if operacao == '-':
+ resultado = n_1 - n_2
+ print (f'Resultado: {resultado:.2f}')
+
+ if operacao == '*':
+ resultado = n_1 * n_2
+ print (f'Resultado: {resultado:.2f}')
+
+ if operacao == '/':
+ resultado = n_1 / n_2
+ print (f'Resultado: {resultado:.2f}')
+
+ if resultado % 2 == 0:
+ par_impar = 'par'
+ else:
+ par_impar = 'impar'
+
+ if resultado > 0:
+ positivo_negativo = 'positivo'
+ elif resultado == 0:
+ positivo_negativo = 'neutro'
+ else:
+ positivo_negativo = 'negativo'
+
+ if resultado % 1 == 0:
+ inteiro_decimal = 'inteiro'
+ print(f'Número é {par_impar}, {positivo_negativo} e {inteiro_decimal}.')
+ else:
+ inteiro_decimal = 'decimal'
+ print(f'Número é {positivo_negativo} e {inteiro_decimal}.')
+
+
+
+
+
+
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_25_sherlock.py b/secao_02_estrutura_de_decisao/ex_25_sherlock.py
index b9e2e1017..5911b225d 100644
--- a/secao_02_estrutura_de_decisao/ex_25_sherlock.py
+++ b/secao_02_estrutura_de_decisao/ex_25_sherlock.py
@@ -29,7 +29,17 @@
'Inocente'
"""
-
+from itertools import count
def investigar(telefonou: str, estava_no_local: str, mora_perto: str, devia: str, trabalhou: str, ):
"""Escreva aqui em baixo a sua solução"""
+ pergunta = [telefonou, estava_no_local, mora_perto, devia, trabalhou]
+ resposta = pergunta.count('Sim')
+ if resposta == 2:
+ print("'Suspeito'")
+ elif resposta == 3 or resposta == 4:
+ print("'Cúmplice'")
+ elif resposta == 5:
+ print("'Assassino'")
+ else:
+ print("'Inocente'")
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py b/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py
index a308c0640..1a8ec6f37 100644
--- a/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py
+++ b/secao_02_estrutura_de_decisao/ex_26_posto_de_gasolina.py
@@ -35,3 +35,14 @@
def calcular_abastecimento(litros_de_combustivel: float, tipo_de_combustivel: str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if litros_de_combustivel <= 20 and tipo_de_combustivel == 'A':
+ print(f"'{litros_de_combustivel} litro(s) de álcool custa(m): R$ {(1.9 * litros_de_combustivel):.2f}. Com 3% de desconto, fica R$ {(((1.9 * litros_de_combustivel * 2)) - ((1.9 * litros_de_combustivel)* 1.03)):.2f}'")
+ elif litros_de_combustivel > 20 and tipo_de_combustivel == 'A':
+ print(f"'{litros_de_combustivel} litro(s) de álcool custa(m): R$ {(1.9 * litros_de_combustivel):.2f}. Com 5% de desconto, fica R$ {(((1.9 * litros_de_combustivel * 2)) - ((1.9 * litros_de_combustivel)* 1.05)):.2f}'")
+
+ elif litros_de_combustivel <= 20 and tipo_de_combustivel == 'G':
+ print(f"'{litros_de_combustivel} litro(s) de gasolina custa(m): R$ {(2.5 * litros_de_combustivel):.2f}. Com 4% de desconto, fica R$ {(((2.5 * litros_de_combustivel * 2)) - ((2.5 * litros_de_combustivel)* 1.04)):.2f}'")
+
+ elif litros_de_combustivel > 20 and tipo_de_combustivel == 'G':
+ print(f"'{litros_de_combustivel} litro(s) de gasolina custa(m): R$ {(2.5 * litros_de_combustivel):.2f}. Com 6% de desconto, fica R$ {(((2.5 * litros_de_combustivel * 2)) - ((2.5 * litros_de_combustivel)* 1.06)):.2f}'")
+
diff --git a/secao_02_estrutura_de_decisao/ex_27_hortifruti.py b/secao_02_estrutura_de_decisao/ex_27_hortifruti.py
index 2e468a508..520d5e5a3 100644
--- a/secao_02_estrutura_de_decisao/ex_27_hortifruti.py
+++ b/secao_02_estrutura_de_decisao/ex_27_hortifruti.py
@@ -57,5 +57,45 @@
"""
+from this import d
+
+
def calcular_preco_da_compra(kilos_de_morango: int, kilos_de_maca: int):
"""Escreva aqui em baixo a sua solução"""
+ # >>> calcular_preco_da_compra(2, 0)
+ # (+) Morango - valor: R$ 5.00 - quantidade: 2 kg - preço: R$ 2.50/kg
+ # (-) Desconto - valor: R$ 0.00
+ # Valor Total: R$ 5.00
+
+ preco_morango = 2.20
+ preco_maca = 1.50
+ desconto = 0.00
+
+ if kilos_de_morango <= 5:
+ preco_morango = 2.50
+ if kilos_de_maca <= 5:
+ preco_maca = 1.80
+
+ preco_total_frutas = (preco_maca * kilos_de_maca) + (preco_morango * kilos_de_morango)
+ kilo_total_frutas = kilos_de_maca + kilos_de_morango
+
+
+
+ if kilo_total_frutas > 8 or preco_total_frutas > 25:
+ desconto = 0.10
+
+ preco_desconto = preco_total_frutas * desconto
+
+ if kilos_de_morango > 0:
+ print(f'(+) Morango - valor: R$ {preco_morango * kilos_de_morango:>5.2f} - quantidade: {kilos_de_morango} kg - preço: R$ {preco_morango:.2f}/kg')
+ if kilos_de_maca > 0:
+ print(f'(+) Maça - valor: R$ {preco_maca * kilos_de_maca:>5.2f} - quantidade: {kilos_de_maca} kg - preço: R$ {preco_maca:.2f}/kg')
+
+
+ print(f'(-) Desconto - valor: R$ {preco_desconto:>5.2f}')
+
+ print(f' Valor Total: R$ {preco_total_frutas - preco_desconto:>5.2f}')
+
+
+
+
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py b/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py
index fa2daf360..0269571ca 100644
--- a/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py
+++ b/secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py
@@ -47,3 +47,23 @@
def calcular_preco_da_carne(tipo_de_carne: str, kilos_de_carne: int, forma_de_pagamento: str) -> str:
"""Escreva aqui em baixo a sua solução"""
+
+ if kilos_de_carne <= 5:
+ preco_carne = {
+ 'Filé Duplo': 4.90,
+ 'Alcatra': 5.90,
+ 'Picanha': 6.90
+ }
+ else:
+ preco_carne = {
+ 'Filé Duplo': 5.80,
+ 'Alcatra': 6.80,
+ 'Picanha': 7.80
+ }
+
+ preco_total = kilos_de_carne * preco_carne[tipo_de_carne]
+ if forma_de_pagamento == 'cartão tabajara':
+ preco_total_com_desconto = preco_total - (preco_total * 0.05)
+ print(f"'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco_carne[tipo_de_carne]:.2f}/kg saem a R$ {preco_total:.2f}. Com desconto de 5% pelo pagamento feito com cartão tabajara, fica R$ {preco_total_com_desconto:.2f}'")
+ else:
+ print(f"'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco_carne[tipo_de_carne]:.2f}/kg saem a R$ {preco_total:.2f}. Não há desconto, pagamento feito com {forma_de_pagamento}'")
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py b/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py
index 168481e57..2e0a32da4 100644
--- a/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py
+++ b/secao_03_estrutura_de_repeticao/ex_01_numero_valido.py
@@ -34,3 +34,16 @@
def obter_numero_valido():
"""Escreva aqui em baixo a sua solução"""
+ while (True):
+ nota = input("Digite uma nota entre 0 e 10: ")
+ if not nota.isdigit() or (int(nota) < 0 or int(nota) > 10):
+ print(f"Número inválido: {nota}")
+ else:
+ break
+
+ print(nota)
+
+
+
+
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py b/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py
index b863e1a11..f0ce5d59e 100644
--- a/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py
+++ b/secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py
@@ -21,3 +21,14 @@
def validar_senha():
"""Escreva aqui em baixo a sua solução"""
+
+ while(True):
+ usuario=(input("Digite o nome de usuário: "))
+ senha=(input("Digite a senha de usuário: "))
+
+ if usuario == senha:
+ print('Senha deve ser diferente do login')
+ else:
+ break
+
+ print(f"'Cadastro realizado com suceso, seu login é {usuario}'")
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py b/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py
index 35d52987e..d7e44334a 100644
--- a/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py
+++ b/secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py
@@ -40,3 +40,25 @@
def cadastrar_usuario(nome: str, idade: int, salario: float, sexo: str, estado_civil: str):
"""Escreva aqui em baixo a sua solução"""
+ erros = []
+
+ if len(nome) < 3:
+ erros.append(f"Erro: o nome precisa ter 3 letras ou mais, não pode ser {nome}")
+
+ if idade < 0 or idade > 150:
+ erros.append(f"Erro: a idade precisa estar entre 0 e 150, não pode ser {idade}")
+
+ if salario <= 0:
+ erros.append(f"Erro: o salário precisa ser positivo, não pode ser {salario}")
+
+ if not sexo in ["m", "f"]:
+ erros.append(f'Erro: o sexo precisa ser "m" ou "f", não pode ser "{sexo}"')
+
+ if not estado_civil in ["s", "c", "v", "d"]:
+ erros.append(f'Erro: o estado civil precisa ser "s", "c", "v" ou "d", não pode ser "{estado_civil}"')
+
+ if not erros:
+ print("Cadastro realizado com sucesso")
+
+ for erro in erros:
+ print(erro)
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py b/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py
index a2109cfb5..3e191f282 100644
--- a/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py
+++ b/secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py
@@ -16,3 +16,20 @@
def calcular_ano_ultrapassagem_populacional() -> str:
"""Escreva aqui em baixo a sua solução"""
+ anos = 0
+ pais_a = 80000
+ pais_b = 200000
+
+ porcentos_a = 0.03
+ porcentos_b = 0.015
+
+
+ while pais_a < pais_b:
+ crescimento_a = pais_a * porcentos_a
+ crescimento_b = pais_b * porcentos_b
+ pais_a += crescimento_a
+ pais_b += crescimento_b
+ anos += 1
+
+ print(f"'População de A, depois de {anos} ano(s) será de {pais_a:.0f} pessoas, superando a de B, que será de {pais_b:.0f} pessoas'")
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py b/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py
index 827d5d190..15d028760 100644
--- a/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py
+++ b/secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py
@@ -23,3 +23,17 @@ def calcular_ano_ultrapassagem_populacional(
populacao_menor: int, taxa_crescimento_populacao_menor: float, populacao_maior,
taxa_crescimento_populacao_maior:float ) -> str:
"""Escreva aqui em baixo a sua solução"""
+
+ if taxa_crescimento_populacao_menor < taxa_crescimento_populacao_maior:
+ return f'A taxa de crescimento do país B ({taxa_crescimento_populacao_maior * 100}%) deve ser menor do que a do país A ({taxa_crescimento_populacao_menor * 100}%)'
+
+ anos = 0
+
+ while populacao_menor < populacao_maior:
+ crescimento_a = populacao_menor * taxa_crescimento_populacao_menor
+ crescimento_b = populacao_maior * taxa_crescimento_populacao_maior
+ populacao_menor += crescimento_a
+ populacao_maior += crescimento_b
+ anos += 1
+
+ print(f"'População de A, depois de {anos} ano(s) será de {populacao_menor:.0f} pessoas, superando a de B, que será de {populacao_maior:.0f} pessoas'")
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py b/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py
index a72fb1d95..70dafbc54 100644
--- a/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py
+++ b/secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py
@@ -33,3 +33,32 @@
def escrever_numeros_de_1_a_20(formato:str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ # lista = list(range(1,21))
+ # print(formato)
+
+
+ if formato == 'um_abaixo_do_outro':
+ numero = 1
+ while numero <= 20:
+ print(numero)
+ numero += 1
+ else:
+ numero = 1
+ while numero < 20:
+ print(numero, end=' ')
+ numero += 1
+ if numero == 20:
+ print(numero, end='')
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py b/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py
index 3fc410ab3..c26192312 100644
--- a/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py
+++ b/secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py
@@ -13,3 +13,14 @@
def calcular_maior_numero(n1: int, n2: int, n3: int, n4: int, n5: int, ) -> int:
"""Escreva aqui em baixo a sua solução"""
+ lista = (n1, n2, n3, n4, n5)
+ maior = -100
+
+ for n in lista:
+ if n > maior:
+ maior = n
+ print(maior)
+
+
+
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py b/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py
index 86b169bb6..400ae3b6d 100644
--- a/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py
+++ b/secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py
@@ -16,3 +16,7 @@
def calcular_soma_e_media(n1: int, n2: int, n3: int, n4: int, n5: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ soma = n1 + n2 + n3 + n4 + n5
+ media = soma / 5
+ print(f"'Soma: {soma:.0f}, Média: {media:.2f}'")
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py b/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py
index b8a480990..c2c4a96a6 100644
--- a/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py
+++ b/secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py
@@ -12,3 +12,14 @@
def calcular_numeros_impares_de_1_a_50() -> str:
"""Escreva aqui em baixo a sua solução"""
+ numero = 1
+ while numero <= 47 and numero %2 != 0:
+ if numero == 1:
+ print(f"'", end='')
+ print(f"{numero},", end=' ')
+ numero += 2
+ if numero == 49:
+ print (f"{numero}'")
+ if numero > 49:
+ break
+
diff --git a/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py b/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py
index 09838c651..1646dcfec 100644
--- a/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py
+++ b/secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py
@@ -16,3 +16,17 @@
def calcular_numeros_no_intervalo(inicio: int, fim: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ # caso o inicio seja maior q o fim:
+ if inicio > fim:
+ print("''")
+ # se as condições forem boas, o código continua:
+ for n in range (inicio, fim):
+ # no inicio, precisa ter uma ' pra bater com o doctest
+ if n == inicio:
+ print("'", end="")
+ # no fim (fim menos 1), ele precisa de uma ' pra fechar e bater com o doctest
+ if n == fim - 1:
+ print(f"{n}'", end="")
+ break
+ # aqui ele printa tudo
+ print(f"{n},", end=" ")
diff --git a/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py b/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py
index 875432bf8..ff18a1de1 100644
--- a/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py
+++ b/secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py
@@ -18,3 +18,18 @@
def calcular_numeros_no_intervalo_e_somar(inicio: int, fim: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ # caso o inicio seja maior q o fim:
+ soma = 0
+ if inicio > fim:
+ print("'Sequência: vazia. Soma: 0'")
+ # se as condições forem boas, o código continua:
+ for n in range (inicio, fim):
+ soma += n
+ if n == inicio:
+ print("'Sequência: ", end="")
+ # no fim (fim menos 1), ele precisa de uma ' pra fechar e bater com o doctest
+ if n == fim - 1:
+ print(f"{n}. Soma: {soma}'", end="")
+ break
+ # aqui ele printa tudo
+ print(f"{n},", end=" ")
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_12_tabuada.py b/secao_03_estrutura_de_repeticao/ex_12_tabuada.py
index f066ddd5a..7b37e9d47 100644
--- a/secao_03_estrutura_de_repeticao/ex_12_tabuada.py
+++ b/secao_03_estrutura_de_repeticao/ex_12_tabuada.py
@@ -124,3 +124,11 @@
def gerar_tabuada(n: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if n <= 0 or n > 10:
+ print('Somente pode ser gerada tabuada de 1 a 10')
+
+ else:
+ for tabuada in range (1 , 11):
+ multiplicacao = n * tabuada
+ print(f'{n} X {tabuada} = {multiplicacao}')
+ tabuada += 1
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py b/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py
index 617b82620..c16db59fb 100644
--- a/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py
+++ b/secao_03_estrutura_de_repeticao/ex_13_potenciacao.py
@@ -18,3 +18,5 @@
def calcular_potencia(base: int, expoente: int) -> int:
"""Escreva aqui em baixo a sua solução"""
+ elevado = base** expoente
+ print(elevado)
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py b/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py
index 2881cc0a0..9a3451254 100644
--- a/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py
+++ b/secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py
@@ -18,3 +18,20 @@
def calcular_qtde_numeros_pares_e_impares(n1: int, n2: int, n3: int, n4: int, n5: int, n6: int, n7: int, n8: int, n9: int, n10: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ lista = (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
+ par = 0
+ for n in lista:
+ if n%2 == 0:
+ par+=1
+ print(f"'Existem {par} números pares e {10-par} números impares'")
+
+
+ # while numero <= 47 and numero %2 != 0:
+ # # if numero == 1:
+ # print(f"'", end='')
+ # print(f"{numero},", end=' ')
+ # numero += 2
+ # # if numero == 49:
+ # print (f"{numero}'")
+ # # if numero > 49:
+ # break
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py b/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py
index bde925c25..c812567f8 100644
--- a/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py
+++ b/secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py
@@ -25,3 +25,63 @@
def calcular_serie_de_fibonacci(n: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+
+ # ultimo = 1
+ # penultimo = 1
+ # soma = 1
+
+ # if n == 1:
+ # print(f"'{n}'")
+
+ # else:
+ # n -= 1
+ # print("'1", end=", ")
+ # for numero in range(n):
+ # if numero == n -1:
+ # print(f"{soma}'", end="")
+ # else:
+ # print(f"{soma}", end=", ")
+ # soma = ultimo + penultimo
+ # ultimo = penultimo
+ # penultimo = soma
+
+
+ ultimo = 1
+ penultimo = 1
+ soma = 1
+
+ if n == 1:
+ print(f"'{n}'")
+
+ else:
+ n -= 1
+ print("'1", end=", ")
+
+ for numero in range(n):
+ if numero == n - 1:
+ print(f"{soma}'", end="")
+
+ else:
+ print(f"{soma}", end=", ")
+ soma = ultimo + penultimo
+ ultimo = penultimo
+ penultimo = soma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py b/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py
index ab7c70038..89139d7c7 100644
--- a/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py
+++ b/secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py
@@ -10,5 +10,24 @@
"""
+from turtle import pen
+
+
def calcular_serie_de_fibonacci_ate_valor_ser_maior_que_500() -> str:
"""Escreva aqui em baixo a sua solução"""
+ ultimo = 0
+ penultimo = 1
+ soma = 1
+
+ while ultimo <= 500:
+ if ultimo == 0:
+ print(f"'{ultimo}", end=", ")
+ if penultimo > 500:
+ print(f"{penultimo}'", end="")
+ return
+ else:
+ print(f"{soma}", end=", ")
+ soma = ultimo + penultimo
+ ultimo = penultimo
+ penultimo = soma
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_17_fatorial.py b/secao_03_estrutura_de_repeticao/ex_17_fatorial.py
index 0188fcfa3..edfe00690 100644
--- a/secao_03_estrutura_de_repeticao/ex_17_fatorial.py
+++ b/secao_03_estrutura_de_repeticao/ex_17_fatorial.py
@@ -23,3 +23,11 @@
def calcular_fatorial(n: int) -> int:
"""Escreva aqui em baixo a sua solução"""
+# for n in range(1,numero+1):
+# resultado *= n
+ resultado = 1
+ count = 1
+ while count <= n:
+ resultado *= count
+ count += 1
+ print(resultado)
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py b/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py
index 45f349446..a321ff39e 100644
--- a/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py
+++ b/secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py
@@ -18,3 +18,14 @@
def calcular_estatisticas(*numeros) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if len(numeros) == 0:
+ print("'Maior valor: não existe. Menor valor: não existe. Soma: 0'")
+ return
+ maior = max(numeros)
+ menor = min(numeros)
+ soma = 0
+
+ for n in numeros:
+ soma +=n
+ print(f"'Maior valor: {maior}. Menor valor: {menor}. Soma: {soma}'")
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py b/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py
index e49bbed45..90701839b 100644
--- a/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py
+++ b/secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py
@@ -24,3 +24,19 @@
def calcular_estatisticas(*numeros) -> str:
"""Escreva aqui em baixo a sua solução"""
+ for n in (numeros):
+ if n > 1000 or n < 0:
+ print("'Somente números de 0 a 1000 são permitidos'")
+ return
+
+ if len(numeros) == 0:
+ print("'Maior valor: não existe. Menor valor: não existe. Soma: 0'")
+ return
+
+ maior = max(numeros)
+ menor = min(numeros)
+ soma = 0
+
+ for n in numeros:
+ soma +=n
+ print(f"'Maior valor: {maior}. Menor valor: {menor}. Soma: {soma}'")
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py b/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py
index 641981165..2521c2857 100644
--- a/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py
+++ b/secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py
@@ -33,3 +33,13 @@
def calcular_fatorial(n: int) -> int:
"""Escreva aqui em baixo a sua solução"""
+ if n > 16 or n < 1 or type(n) == float:
+ print(f"'Apenas valores positivos, inteiros e menores que 16 são válidos. Não é possível calcular para {n}'")
+ return
+
+ resultado = 1
+ count = 1
+ while count <= n:
+ resultado *= count
+ count += 1
+ print(resultado)
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py b/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py
index 442baff57..d93bc7556 100644
--- a/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py
+++ b/secao_03_estrutura_de_repeticao/ex_21_numero_primo.py
@@ -39,3 +39,24 @@
def eh_primo(n: int) -> bool:
"""Escreva aqui em baixo a sua solução"""
+ # if n / n == 0 and n % 1 == 0 and n / 2 != 0:
+ # print(True)
+ # else:
+ # print(False)
+
+ # for i in range(2, n+1):
+ # if n / n == 0 and n % i == 0 and n / 2 != 0:
+ # print(True)
+ # else:
+ # print(False)
+
+ mult=0
+
+ for i in range(1,n+1):
+ if (n % i == 0):
+ mult += 1
+
+ if mult == 2:
+ print("True")
+ else:
+ print("False")
diff --git a/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py b/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py
index 4fe3d89f1..5921ed1cd 100644
--- a/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py
+++ b/secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py
@@ -50,3 +50,18 @@
def eh_primo(n: int) -> bool:
"""Escreva aqui em baixo a sua solução"""
+ mult=0
+ falso= []
+ for i in range(1,n+1):
+ if (n % i == 0):
+ mult += 1
+ falso.append(i)
+ if mult == 2:
+ print(True)
+ else:
+ for i in falso:
+ if i != 1 and i != n:
+ print(f"É divisível por {i}")
+ print(False)
+
+
diff --git a/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py b/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py
index 3a3703c9b..060dec7b4 100644
--- a/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py
+++ b/secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py
@@ -43,3 +43,16 @@
def calcular_primos_e_divisoes(n: int) -> Tuple[str, int]:
"""Escreva aqui em baixo a sua solução"""
+ mult=0
+ falso= []
+ for i in range(1,n+1):
+ if (n % i == 0):
+ mult += 1
+ falso.append(i)
+ if mult == 2:
+ print(True)
+ else:
+ for i in falso:
+ if i != 1 and i != n:
+ print(f"É divisível por {i}")
+ print(False)
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py b/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py
index 9cf378f6d..111c02b5b 100644
--- a/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py
+++ b/secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py
@@ -16,5 +16,37 @@
"""
+from statistics import mean
+
+
def calcular_media(*notas) -> float:
"""Escreva aqui em baixo a sua solução"""
+
+# A média aritmética é obtida através da soma de todos os valores dentro de conjuntos numéricos e,
+# posteriormente, dividindo todos os valores pelo número total de elementos deste conjunto.
+ # somas = 0
+ # media = somas/notas
+
+
+ # else:
+ # for i in notas:
+ # somas += notas
+ # if notas == ():
+ # print("'É necessária ao menos uma nota para calcular a média'")
+ # else:
+ # print(mean(notas))
+ if notas == ():
+ print("'É necessária ao menos uma nota para calcular a média'")
+
+ else:
+ soma = 0
+ for i in notas:
+ soma += i
+ media = soma / len(notas)
+
+ if media > 2:
+ print(media)
+ else:
+ print(f"{media:.0f}")
+
+
diff --git a/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py b/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py
index 9d56fcb6e..3f5134777 100644
--- a/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py
+++ b/secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py
@@ -24,3 +24,21 @@
def classifcar_turma(*idades) -> str:
"""Escreva aqui em baixo a sua solução"""
+# nao sei o numero de idade
+# tirar média de idade da turma, com 3 opções
+ soma = 0
+ for i in idades:
+ soma += i
+ media = soma / len(idades)
+
+ if media <= 25:
+ print(f"'A turma é jovem, pois a média é de {media:.1f} anos'")
+ elif media > 25 and media < 60:
+ print(f"'A turma é adulta, pois a média é de {media:.1f} anos'")
+ else:
+ print(f"'A turma é idosa, pois a média é de {media:.1f} anos'")
+
+
+
+
+
diff --git a/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py b/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py
index 95d99b4f8..54d2fe2ad 100644
--- a/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py
+++ b/secao_03_estrutura_de_repeticao/ex_26_urna_eletronica.py
@@ -34,5 +34,27 @@
"""
+from itertools import count
+
+
def calcular_votos(*votos):
"""Escreva aqui em baixo a sua solução"""
+ eleitores = 0
+ corrupto = 0
+ mentiroso = 0
+ roba_faz = 0
+ for i in votos:
+ # eleitores += 1
+ if i == 'corrupto':
+ corrupto += 1
+ elif i == 'mentiroso':
+ mentiroso += 1
+ else:
+ roba_faz += 1
+ print(f"Votantes: {len(votos)}")
+ print(f"Votos no candidato corrupto: {votos.count('corrupto')}")
+ print(f"Votos no candidato mentiroso: {mentiroso}")
+ print(f"Votos no candidato rouba, mas faz: {roba_faz}")
+
+
+
\ No newline at end of file
diff --git a/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py b/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py
index af39440e3..c4a60b1d9 100644
--- a/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py
+++ b/secao_03_estrutura_de_repeticao/ex_27_alunos_por_turma.py
@@ -36,3 +36,28 @@
def calcular_media_de_alunos_por_turma():
"""Escreva aqui em baixo a sua solução"""
+ turmas = int(input("digite a quantidade de turmas: "))
+ soma = 0
+ quantidade_alunos = 0
+ print(f'Número de turmas: {turmas}')
+ for i in range(turmas):
+ quantidade_alunos = int(input("digite: "))
+ while quantidade_alunos < 1 or quantidade_alunos > 40:
+ print(f"Uma turma deve ter de 1 a 40 alunos, não é possível ter {quantidade_alunos} alunos")
+ quantidade_alunos = int(input("digite: "))
+ else:
+ soma += quantidade_alunos
+ media = soma / turmas
+ print(f'Média de alunos por turma: {media:.0f}')
+
+ # while True:
+ # alunos = int(input("digite a quantidade de alunos: "))
+ # if alunos < 1 or alunos > 40:
+ # print(f'Uma turma deve ter de 1 a 40 alunos, não é possível ter {alunos} alunos')
+ # else:
+ # soma += alunos
+ # quantidades += 1
+ # break
+ # media = soma / quantidades
+ # print(f'Número de turmas: {turmas}')
+ # print(f'Média de alunos por turma: {media:.0f}')
\ No newline at end of file
diff --git a/secao_06_exercicios_strings/ex_4_nomes_vertical_escada.py b/secao_06_exercicios_strings/ex_4_nomes_vertical_escada.py
new file mode 100644
index 000000000..d28c4f831
--- /dev/null
+++ b/secao_06_exercicios_strings/ex_4_nomes_vertical_escada.py
@@ -0,0 +1,50 @@
+"""
+Exercício 04 da seção de exercícios com strings da Python Brasil:
+https://wiki.python.org.br/ExerciciosComStrings
+
+Nome na vertical em escada. Modifique o programa anterior de forma a mostrar o nome em formato de escada.
+
+ >>> nome_escada('Arnold_Schwarzenegger')
+ A
+ AR
+ ARN
+ ARNO
+ ARNOL
+ ARNOLD
+ ARNOLD_
+ ARNOLD_S
+ ARNOLD_SC
+ ARNOLD_SCH
+ ARNOLD_SCHW
+ ARNOLD_SCHWA
+ ARNOLD_SCHWAR
+ ARNOLD_SCHWARZ
+ ARNOLD_SCHWARZE
+ ARNOLD_SCHWARZEN
+ ARNOLD_SCHWARZENE
+ ARNOLD_SCHWARZENEG
+ ARNOLD_SCHWARZENEGG
+ ARNOLD_SCHWARZENEGGE
+ ARNOLD_SCHWARZENEGGER
+
+ >>> nome_escada('gELO')
+ G
+ GE
+ GEL
+ GELO
+
+ >>> nome_escada('HeISenBErG')
+ H
+ HE
+ HEI
+ HEIS
+ HEISE
+ HEISEN
+ HEISENB
+ HEISENBE
+ HEISENBER
+ HEISENBERG
+"""
+def nome_escada(nome:str):
+ """Escreva aqui em baixo a sua solução"""
+
\ No newline at end of file