diff --git a/.github/workflows/corretor_de_exercicios_secao_02.yml b/.github/workflows/corretor_de_exercicios_secao_02.yml
index 0ff95d19a..a8a49ac83 100644
--- a/.github/workflows/corretor_de_exercicios_secao_02.yml
+++ b/.github/workflows/corretor_de_exercicios_secao_02.yml
@@ -127,3 +127,106 @@ jobs:
if: always()
run: |
python -m doctest -f secao_02_estrutura_de_decisao/ex_28_mercado_tabajara.py
+<<<<<<< HEAD:.github/workflows/corretor_de_exercicios.yml
+ - name: Correção do Exercício 01 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_01_numero_valido.py
+ - name: Correção do Exercício 02 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_02_validador_de_senha.py
+ - name: Correção do Exercício 03 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_03_validador_de_cadastro.py
+ - name: Correção do Exercício 04 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_04_crescimento_populacional.py
+ - name: Correção do Exercício 05 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_05_crescimento_populacional_parametrizavel.py
+ - name: Correção do Exercício 06 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_06_numeros_1_a_20.py
+ - name: Correção do Exercício 07 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_07_maior_de_5_numeros.py
+ - name: Correção do Exercício 08 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_08_soma_e_media_de_5_numeros.py
+ - name: Correção do Exercício 09 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_09_numeros_impares_de_1_a_50.py
+ - name: Correção do Exercício 10 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_10_gerar_numeros_de_intervalo.py
+ - name: Correção do Exercício 11 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_11_gerar_numeros_de_intervalo_e_somar.py
+ - name: Correção do Exercício 12 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_12_tabuada.py
+ - name: Correção do Exercício 13 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_13_potenciacao.py
+ - name: Correção do Exercício 14 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_14_qtde_pares_e_impares.py
+ - name: Correção do Exercício 15 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py
+ - name: Correção do Exercício 16 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_16_fibonnacci_ate_valor_maior_que_500.py
+ - name: Correção do Exercício 17 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_17_fatorial.py
+ - name: Correção do Exercício 18 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_18_estatisticas_de_n_numeros.py
+ - name: Correção do Exercício 19 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_19_estatisticas_de_n_numeros_com_limitacao.py
+ - name: Correção do Exercício 20 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_20_fatorial_com_limitacao.py
+ - name: Correção do Exercício 21 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_21_numero_primo.py
+ - name: Correção do Exercício 22 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_22_numero_primo_divisores.py
+ - name: Correção do Exercício 23 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_23_primos_menores_que_um_numero.py
+ - name: Correção do Exercício 24 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_24_media_artmetica.py
+ - name: Correção do Exercício 25 da seção de Estrutura de Repetição
+ if: always()
+ run: |
+ python -m doctest -f secao_03_estrutura_de_repeticao/ex_25_classificador_de_turma.py
+=======
+>>>>>>> main:.github/workflows/corretor_de_exercicios_secao_02.yml
diff --git a/.github/workflows/corretor_de_exercicios_secao_04.yml b/.github/workflows/corretor_de_exercicios_secao_04.yml
index 707408530..323365c26 100644
--- a/.github/workflows/corretor_de_exercicios_secao_04.yml
+++ b/.github/workflows/corretor_de_exercicios_secao_04.yml
@@ -19,6 +19,10 @@ jobs:
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_01_vetor_5_numeros.py
+ - name: Correção do Exercício 04 da seção de Listas
+ if: always()
+ run: |
+ python -m doctest -f secao_04_exercicios_lista/ex_04_consoantes_em_vetor.py
- name: Correção do Exercício 05 da seção de Listas
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-brasil.iml b/.idea/lista-de-exercicios-python-brasil.iml
new file mode 100644
index 000000000..8b8c39547
--- /dev/null
+++ b/.idea/lista-de-exercicios-python-brasil.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..82ce86b63
--- /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/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..bbf25763e 100644
--- a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
+++ b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
@@ -13,4 +13,5 @@
def escreva_um_numero():
"""Escreva aqui em baixo a sua solução"""
-
+ n = int(input('Escreva um número: '))
+ print(f'O número informado foi {n}')
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..ba0a1b031 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"""
+ n1 = int(input('Esreva um número: '))
+ n2 = int(input('Escreva outro número: '))
+ print(f'A soma dos dois números informados é {n1 + n2}')
\ 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..745c6887b 100644
--- a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
+++ b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
@@ -15,4 +15,9 @@
def calcular_media():
"""Escreva aqui em baixo a sua solução"""
-
+ nota1 = float(input('Primeira nota: '))
+ nota2 = float(input('Segunda nota: '))
+ nota3 = float(input('Terceira nota: '))
+ nota4 = float(input('Quarta nota: '))
+ media = (nota1 + nota2 + nota3 + nota4)/4
+ print(f'A média anual é {media}')
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..5c549910b 100644
--- a/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py
+++ b/secao_01_estrutura_sequencial/ex_05_metros_para_centimetros.py
@@ -17,3 +17,6 @@
def converter_metros_para_centimetros():
"""Escreva aqui em baixo a sua solução"""
+ m = float(input('Escreva a medida em metros: '))
+ cent = m * 100
+ print(f'Transformando para centímetros dá {cent :.1f} cm')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_06_area_circulo.py b/secao_01_estrutura_sequencial/ex_06_area_circulo.py
index 840559026..244c86c22 100644
--- a/secao_01_estrutura_sequencial/ex_06_area_circulo.py
+++ b/secao_01_estrutura_sequencial/ex_06_area_circulo.py
@@ -18,3 +18,6 @@
def calcular_area_de_circulo():
"""Escreva aqui em baixo a sua solução"""
+ raio = float(input('Escreva o raio do círculo: '))
+ area = 3.1415 * raio ** 2
+ print(f'A área do círculo com esse raio é: {area :.4f}')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
index 63b12a193..4e4827dc1 100644
--- a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
+++ b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py
@@ -20,3 +20,7 @@
def calcular_area_de_quadrado():
"""Escreva aqui em baixo a sua solução"""
+ lado = float(input('Escreva o lado do quadrado: '))
+ area = lado ** 2
+ print(f'A área do quadrado com esse lado é: {area :.2f}')
+ print(f'O dobro da aŕea do quadrado é: {area*2 :.2f}')
\ No newline at end of file
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..a7a290399 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,7 @@
def calcular_salario():
"""Escreva aqui em baixo a sua solução"""
+ valor_hora = float(input('Quanto você ganha por hora? '))
+ n_horas = float(input('Qual o número de horas trabalhadas? '))
+ salario = round(n_horas * valor_hora,2)
+ print(f'Seu salário desse mês é {salario :.2f}')
\ No newline at end of file
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..82ce8b8c8 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"""
+ F= float(input('Qual a temperatura em graus Fahrenheit? '))
+ C = round(5 * ((F-32) / 9))
+ print(f'Essa temperatura é de {C} 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..a3749f33e 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"""
+ C = float(input("Escreva quantos graus em Celsius: "))
+ F = 1.8 * C + 32
+ print(f'Essa temperatura é de {F :.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..43148dce8 100644
--- a/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
+++ b/secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
@@ -22,5 +22,10 @@
def calcular_formulas():
"""Escreva aqui em baixo a sua solução"""
-
+ n1 = int(input("Escreva um número inteiro: "))
+ n2 = int(input("Escreva outro número inteiro: "))
+ n3 = float(input("Escreva um 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 é {3 * n1 + n3}')
+ print(f'O terceiro elevado ao cubo é {n3 ** 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..b67c7058b 100644
--- a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py
+++ b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py
@@ -19,3 +19,6 @@
def calcular_peso_ideal():
"""Escreva aqui em baixo a sua solução"""
+ altura = float(input('Digite sua altura: '))
+ peso_ideal = (72.7*altura) - 58
+ print(f'Seu peso ideal é {peso_ideal :.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..ca0a183a3 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,8 @@
def calcular_peso_ideal():
"""Escreva aqui em baixo a sua solução"""
+ h = float(input('Digite sua altura: '))
+ h_men = (72.7*h) - 58
+ h_wm = (62.1*h) - 44.7
+ print(f'Seu peso ideal é {h_wm :.1f} kg, se você for mulher')
+ print(f'Seu peso ideal é {h_men :.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..363c84a4b 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,8 @@
def calcular_peso_excedente_e_multa():
"""Escreva aqui em baixo a sua solução"""
+ peso = float(input('Escreva o peso de peixe: '))
+ excesso = peso - 50
+ multa = excesso * 4
+ print(f'O peso excedente de peixes é de {excesso :.2f} kg')
+ print(f'Por isso, a multa é de R$ {multa :.2f}')
\ No newline at end of file
diff --git a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
index 901de0409..7ac672e66 100644
--- a/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
+++ b/secao_01_estrutura_sequencial/ex_15_clt_onerosa.py
@@ -27,3 +27,15 @@
def calcular_assalto_no_salario():
"""Escreva aqui em baixo a sua solução"""
+ valor_hora = float(input('Quanto você ganha por hora? '))
+ n_horas = float(input('Qual o número de horas trabalhadas? '))
+ salario = round(n_horas * valor_hora, 2)
+ ir = 11 * salario / 100
+ inss = 8 * salario / 100
+ sindicato = 5 * salario / 100
+ salario_liquido = salario - (ir + inss + sindicato )
+ print(f'+ Salário Bruto : {salario :.2f}')
+ print(f'- IR (11%) : R$ {ir :.2f}')
+ print(f'- INSS (8%) : R$ {inss :.2f}')
+ print(f'- Sindicato ( 5%) : R$ {sindicato :.2f}')
+ print(f'= Salário Liquido : R$ {salario_liquido :.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..0ac2d6a2e 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,7 @@
def calcular_latas_e_preco_de_tinta():
"""Escreva aqui em baixo a sua solução"""
+ area = float(input('Área a ser pintada: '))
+ qtd_tinta = round((area / 3 )/ 18) # Quantidade de lista em litros
+ preco_tinta = round(qtd_tinta * 80)
+ print(f'Você deve comprar {qtd_tinta} lata(s) tinta ao custo de R$ {preco_tinta :.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..595097ab0 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
@@ -30,3 +30,27 @@
def calcular_latas_e_preco_de_tinta():
"""Escreva aqui em baixo a sua solução"""
+ import math
+ area = float(input('Área a ser pintada: '))
+ litros = math.ceil((area/6) *1.10)
+
+ # Quantidade de latas de tinta de 18 litros
+ qtd_latas1 = math.ceil(litros / 18)
+ preco_tinta1 = math.ceil(qtd_latas1 * 80)
+ sobra_1 = qtd_latas1 * 18 - litros
+
+ # Quantidade de latas de tinta de 3,6 litros
+ qtd_latas2 = math.ceil(litros/ 3.6)
+ preco_tinta2 = math.ceil(qtd_latas2 * 25)
+ sobra_2 = qtd_latas2 * 3.6 - litros
+
+ # Quantidades misturadas
+ qtd_latas_18 = round(litros / 18)
+ qtd_latas_3 = math.ceil((litros - qtd_latas_18 * 18)/ 3.6)
+ preco = qtd_latas_18 * 80 + qtd_latas_3 * 25
+ sobra_mistura =(qtd_latas_18 * 18) + (qtd_latas_3 * 3.6) - litros
+
+ print(f'Você deve comprar {litros} litros de tinta.')
+ print(f'Você pode comprar {qtd_latas1} lata(s) de 18 litros a um custo de R$ {preco_tinta1}. Vão sobrar {sobra_1:.1f} litro(s) de tinta.')
+ print(f'Você pode comprar {qtd_latas2} lata(s) de 3.6 litros a um custo de R$ {preco_tinta2}. Vão sobrar {sobra_2 :.1f} litro(s) de tinta.')
+ print(f'Para menor custo, você pode comprar {qtd_latas_18} lata(s) de 18 litros e {qtd_latas_3} galão(ões) de 3.6 litros a um custo de R$ {preco}. Vão sobrar {sobra_mistura :.1f} litro(s) de tinta.')
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..36dbe9afc 100644
--- a/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py
+++ b/secao_01_estrutura_sequencial/ex_18_tempo_de_download.py
@@ -21,3 +21,7 @@
def calcular_tempo_de_download():
"""Escreva aqui em baixo a sua solução"""
+ tamanho = float(input('Qual o tamanho(MB) do arquivo? '))
+ velo = float(input('Qual a velocidade de um link de Internet (em Mbps)? '))
+ tempo = round((tamanho / (velo/8) / 60))
+ print(f'O tempo aproximado do Download é: {tempo} minuto(s)')
\ No newline at end of file
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..c3722a4ff 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,9 @@
def maior_de_dois_numeros(x, y):
"""Escreva aqui em baixo a sua solução"""
+ numero_1 = x
+ numero_2 = y
+ if numero_1 > numero_2:
+ print(numero_1)
+ else:
+ print(numero_2)
\ No newline at end of file
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..8af03532e 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,10 @@
def positivo_ou_negativo(n):
"""Escreva aqui em baixo a sua solução"""
+ valor = n
+ if valor == 0:
+ print("'não tem positivo nem negativo'")
+ elif valor < 0:
+ print("'negativo'")
+ else:
+ print("'positivo'")
\ 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..d72acd3a2 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,10 @@
def f_ou_m(sexo):
"""Escreva aqui em baixo a sua solução"""
+ sexo = sexo
+ if sexo == 'M':
+ print("'M - Masculino'")
+ elif sexo == 'F':
+ print("'F - Feminino'")
+ else:
+ print("'Sexo inválido'")
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..3304194f2 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,8 @@
def vogal_ou_consoante(letra):
"""Escreva aqui em baixo a sua solução"""
+ letra_ = letra
+ if letra_ in ('a','e','i','o','u','A','E','I','O','U'):
+ print("'vogal'")
+ else:
+ print("'consoante'")
\ No newline at end of file
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..b4570a295 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,10 @@
def notas_parciais(nota_1, nota_2):
"""Escreva aqui em baixo a sua solução"""
+ media = (nota_1 + nota_2)/ 2
+ if media == 10:
+ print("'Aprovado com Distinção'")
+ elif media >= 7:
+ print("'Aprovado'")
+ else:
+ print("'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..c406f8b52 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,14 @@
def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ if x > y :
+ if x > z:
+ print(x)
+ else:
+ print(z)
+ elif y > x:
+ if 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..88c546a03 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,7 @@
def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ lista = [x,y,z]
+ lista.sort()
+ print(f'Maior: {lista[-1]}')
+ print(f'Menor: {lista[0]}')
\ 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..33b18d44c 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,6 @@
def decidir_melhor_produto(x, y, z):
"""Escreva aqui em baixo a sua solução"""
+ precos = [x,y,z]
+ precos.sort()
+ print(f'Melhor produto custa R$ {precos[0] :.2f}')
\ No newline at end of file
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..2ccf13ceb 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"""
+ numeros = [x,y,z]
+ numeros.sort()
+ print(f'{numeros[2]}, {numeros[1]}, {numeros[0]}')
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..23fd91f32 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) in ('M', 'm'):
+ print("'Bom dia!'")
+ elif (turno) in ('V','v'):
+ print("'Boa tarde!'")
+ elif (turno) in ('N','n'):
+ print("'Boa noite!'")
+ else:
+ print("'Valor Inválido!'")
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..22e047c16 100644
--- a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
+++ b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
@@ -41,3 +41,32 @@
def calcular_aumento(salario: float):
"""Escreva aqui em baixo a sua solução"""
+ print(f'Salário atual: R$ {salario :.2f}')
+ if salario <= 280:
+ porcent = 20
+ valor = (porcent * salario) / 100
+ new_sala = salario + valor
+ print(f'Aumento porcentual: {porcent}%')
+ print(f'Valor do aumento: R$ {valor :.2f}')
+ print(f'Novo salário: R$ {new_sala :.2f}')
+ elif 700 > salario > 280:
+ porcent = 15
+ valor = (porcent * salario) / 100
+ new_sala = salario + valor
+ print(f'Aumento porcentual: {porcent}%')
+ print(f'Valor do aumento: R$ {valor :.2f}')
+ print(f'Novo salário: R$ {new_sala :.2f}')
+ elif 1500 > salario > 700:
+ porcent = 10
+ valor = (porcent * salario) / 100
+ new_sala = salario + valor
+ print(f'Aumento porcentual: {porcent}%')
+ print(f'Valor do aumento: R$ {valor :.2f}')
+ print(f'Novo salário: R$ {new_sala :.2f}')
+ else:
+ porcent = 5
+ valor = (porcent * salario) / 100
+ new_sala = salario + valor
+ print(f'Aumento porcentual: {porcent}%')
+ print(f'Valor do aumento: R$ {valor :.2f}')
+ print(f'Novo salário: R$ {new_sala :.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..51793c68d 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,44 @@
def calcular_salario_liquido(valor_hora: float, horas_trabalhadas: int):
"""Escreva aqui em baixo a sua solução"""
+ salario_bruto = valor_hora * horas_trabalhadas
+ inss = 10 * salario_bruto / 100
+ fgts = 11 * salario_bruto / 100
+ sindicato = 3 * salario_bruto / 100
+ if salario_bruto <= 900:
+ valor_ir = 0
+ ir = 0
+ elif salario_bruto <= 1500:
+ valor_ir = 5 * salario_bruto / 100
+ ir = 5
+ elif salario_bruto <= 2500:
+ valor_ir = 10 * salario_bruto / 100
+ ir = 10
+ else:
+ valor_ir = 20 * salario_bruto / 100
+ ir = 20
+
+ total_descontos = valor_ir + inss + sindicato
+ salario_liquido = salario_bruto - total_descontos
+
+ # Inteiros transformados em strings para passar rjust() e ljust
+ valor = f'{valor_hora: .2f}'
+ horas = f'{horas_trabalhadas}'
+ linha_sal_bruto = f'Salário Bruto: (R${valor} * {horas})'
+ linha_ir = f'(-) IR ({ir}%) '
+ s_salario_bruto = f'{salario_bruto:.2f}'
+ s_valor_ir = f'{valor_ir:.2f}'
+ s_inss = f'{inss:.2f}'
+ s_sindicato = f'{sindicato:.2f}'
+ s_fgts = f'{fgts:.2f}'
+ s_total_descontos = f'{total_descontos:.2f}'
+ s_salario_liquido = f'{salario_liquido:.2f}'
+
+ print(
+f'''{linha_sal_bruto.ljust(33)} : R$ {s_salario_bruto.rjust(8)}
+{linha_ir.ljust(27)} : R$ {s_valor_ir.rjust(8)}
+(-) INSS (10%) : R$ {s_inss.rjust(8)}
+(-) Sindicato (3%) : R$ {s_sindicato.rjust(8)}
+FGTS (11%) : R$ {s_fgts.rjust(8)}
+Total de descontos : R$ {s_total_descontos.rjust(8)}
+Salário Liquido : R$ {s_salario_liquido.rjust(8)}''')
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..d8363c107 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'")
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..708eefe33 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,25 @@
def calcular_conceito(nota_1: float, nota_2: float):
"""Escreva aqui em baixo a sua solução"""
+ media = (nota_1 + nota_2) / 2
+ conceito = " "
+ if 10 > media > 9:
+ conceito = 'A'
+ status = 'APROVADO'
+ elif 9 > media > 7.5 :
+ conceito = 'B'
+ status = 'APROVADO'
+ elif 7.5 > media > 6:
+ conceito = 'C'
+ status = 'APROVADO'
+ elif 6 > media > 4:
+ conceito = 'D'
+ status = 'REPROVADO'
+ elif 4 > media > 0:
+ conceito = 'E'
+ status = 'REPROVADO'
+
+ print(f'Notas: {nota_1 :.1f} e {nota_2 :.1f}.')
+ print(f'Média: {media :.1f}')
+ print(f'Conceito: {conceito}')
+ print(f'Status: {status}')
\ No newline at end of file
diff --git a/secao_02_estrutura_de_decisao/ex_15_triangulo.py b/secao_02_estrutura_de_decisao/ex_15_triangulo.py
index 7da3edebb..c6dda0db0 100644
--- a/secao_02_estrutura_de_decisao/ex_15_triangulo.py
+++ b/secao_02_estrutura_de_decisao/ex_15_triangulo.py
@@ -27,3 +27,11 @@
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 or lado_a + lado_c < lado_b or lado_b + lado_c < lado_a:
+ print("'Não é um triângulo'")
+ elif lado_a != lado_b and lado_b != lado_c:
+ print("'Triângulo Escaleno'")
+ elif lado_a == lado_c and lado_c == lado_b:
+ print("'Triângulo Equilátero'")
+ else:
+ print("'Triângulo Isósceles'")
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..a2da11aa6 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,23 @@
"""
+
def resolver_equacao_do_segundo_grau(a: float, b: float, c: float):
+
"""Escreva aqui em baixo a sua solução"""
+ import math
+ if a == 0:
+ return 'Valor do coeficiente a deve ser diferente de 0'
+ else:
+ delta = b ** 2 - 4 * a * c
+ if delta == 0:
+ x1 = (-b + math.sqrt(delta)) / 2 * a
+ return f'Delta é {delta}, raíz única no valor de {x1 :.1f}'
+ elif delta < 0:
+ return f'Delta negativo ({delta}), por isso não existem raízes reais'
+ else:
+ x1 = (-b + math.sqrt(delta)) / 2 * a
+ x2 = (-b - math.sqrt(delta)) / 2 * a
+ return f'Delta é {delta}, raízes são {x1 :.1f} e {x2 :.1f}'
+
+
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..673b7bfa1 100644
--- a/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
+++ b/secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
@@ -20,3 +20,7 @@
def eh_ano_bissexto(ano: int):
"""Escreva aqui em baixo a sua solução"""
+ if ano % 4 == 0 and ano % 100 != 0 or ano % 400 == 0:
+ return True
+ else:
+ return False
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..8a5dfc8fd 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
@@ -24,3 +24,16 @@
def validar_data(data: str):
"""Escreva aqui em baixo a sua solução"""
+ if data == '' or len(data) < 3:
+ return 'Data inválida'
+ else:
+ data = data.split('/')
+ dia = int(data[0])
+ mes = int(data[1])
+ ano = int(data[2])
+ if dia > 28 and mes in (0o2, 2):
+ return 'Data inválida'
+ elif mes > 2 or dia > 31:
+ return 'Data inválida'
+ else:
+ return 'Data válida'
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..d3d8f707a 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
@@ -52,3 +52,75 @@
def decompor_numero(numero: int):
"""Escreva aqui em baixo a sua solução"""
+ if numero >= 1000:
+ return 'O número precisa ser menor que 1000'
+ elif numero < 0:
+ return 'O número precisa ser positivo'
+ else:
+ centenas = int(numero / 100)
+ dezenas = int((numero - centenas * 100)/10)
+ unidades = numero - centenas * 100 - dezenas * 10
+ if centenas != 0:
+ if centenas == 1:
+ if dezenas == 0:
+ if unidades == 0:
+ return f'{numero} = {centenas} centena'
+ elif unidades == 1:
+ return f'{numero} = {centenas} centena e {unidades} unidade'
+ else:
+ return f'{numero} = {centenas} centena e {unidades} unidades'
+ elif dezenas == 1:
+ if unidades == 0:
+ return f'{numero} = {centenas} centena e {dezenas} dezena'
+ elif unidades == 1:
+ return f'{numero} = {centenas} centena, {dezenas} dezena e {unidades} unidade'
+ else:
+ return f'{numero} = {centenas} centena, {dezenas} dezena e {unidades} unidades'
+ else:
+ if unidades != 0:
+ return f'{numero} = {centenas} centena, {dezenas} dezenas e {unidades} unidades'
+ else:
+ return f'{numero} = {centenas} centena e {dezenas} dezenas'
+ else:
+ if dezenas == 0:
+ if unidades == 0:
+ return f'{numero} = {centenas} centenas'
+ elif unidades == 1:
+ return f'{numero} = {centenas} centenas e {unidades} unidade'
+ else:
+ return f'{numero} = {centenas} centenas e {unidades} unidades'
+ elif dezenas == 1:
+ if unidades == 0:
+ return f'{numero} = {centenas} centenas e {dezenas} dezena'
+ elif unidades == 1:
+ return f'{numero} = {centenas} centenas, {dezenas} dezena e {unidades} unidade'
+ else:
+ return f'{numero} = {centenas} centenas e {dezenas} dezena'
+ else:
+ if unidades != 0:
+ return f'{numero} = {centenas} centenas, {dezenas} dezenas e {unidades} unidades'
+ else:
+ return f'{numero} = {centenas} centenas e {dezenas} dezenas'
+ else:
+ if dezenas == 0:
+ if unidades == 1:
+ return f'{numero} = {unidades} unidade'
+ else:
+ return f'{numero} = {unidades} unidades'
+ elif dezenas == 1:
+ if unidades == 0:
+ return f'{numero} = {dezenas} dezena'
+ elif unidades == 1:
+ return f'{numero} = {dezenas} dezena e {unidades} unidade'
+ else:
+ return f'{numero} = {dezenas} dezena e {unidades} unidades'
+ else:
+ if unidades == 0:
+ return f'{numero} = {dezenas} dezenas'
+ elif unidades == 1:
+ return f'{numero} = {dezenas} dezenas e {unidades} unidade'
+ else:
+ return f'{numero} = {dezenas} dezenas e {unidades} unidades'
+
+
+
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..4d01f0868 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:
+ status = 'Aprovado com Distinção'
+ elif media >= 7:
+ status = 'Aprovado'
+ elif media < 7:
+ status = 'Reprovado'
+ return f'{status}'
diff --git a/secao_02_estrutura_de_decisao/ex_21_troco.py b/secao_02_estrutura_de_decisao/ex_21_troco.py
index 7edac85b2..229303c3c 100644
--- a/secao_02_estrutura_de_decisao/ex_21_troco.py
+++ b/secao_02_estrutura_de_decisao/ex_21_troco.py
@@ -23,7 +23,38 @@
>>> calcular_troco(399)
'3 notas de R$ 100, 1 nota de R$ 50, 4 notas de R$ 10, 1 nota de R$ 5 e 4 notas de R$ 1'
"""
+def quantas_notas( lista_qnt_nota: list,valor:int, nota:int):
+ if valor >= nota:
+ lista_qnt_nota.append(f"{valor // nota} nota")
+ if valor // nota > 1:
+ lista_qnt_nota[-1] += 's'
+ lista_qnt_nota[-1] += f' de R$ {nota}'
+ valor = valor % nota
+ return valor
-def calcular_troco(valor: int) -> str:
+
+def calcular_troco(valor: int):
"""Escreva aqui em baixo a sua solução"""
+<<<<<<< HEAD
+
+ lista_qnt_nota = []
+ valor = quantas_notas(lista_qnt_nota, valor, 100)
+ valor = quantas_notas(lista_qnt_nota, valor, 50)
+ valor = quantas_notas(lista_qnt_nota, valor, 10)
+ valor = quantas_notas(lista_qnt_nota, valor, 5)
+ valor = quantas_notas(lista_qnt_nota, valor, 1)
+
+ if len(lista_qnt_nota) == 5:
+ print(f"'{lista_qnt_nota[0]}, {lista_qnt_nota[1]}, {lista_qnt_nota[2]}, {lista_qnt_nota[3]} e {lista_qnt_nota[4]}'")
+
+ if len(lista_qnt_nota) == 4:
+ print(f"'{lista_qnt_nota[0]}, {lista_qnt_nota[1]}, {lista_qnt_nota[2]} e {lista_qnt_nota[3]}'")
+ if len(lista_qnt_nota) == 3:
+ print(f"'{lista_qnt_nota[0]}, {lista_qnt_nota[1]} e {lista_qnt_nota[2]}'")
+ if len(lista_qnt_nota) == 2:
+ print(f"'{lista_qnt_nota[0]} e {lista_qnt_nota[1]}'")
+ if len(lista_qnt_nota) == 1:
+ print(f"'{lista_qnt_nota[0]}'")
+=======
+>>>>>>> main
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..ea4fed089 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,7 @@
def decidir_se_eh_par_ou_impar(valor: int) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if valor % 2 == 0:
+ return 'Par'
+ else:
+ 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..08221a52d 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
@@ -22,3 +22,9 @@
def decidir_se_eh_inteiro_ou_decimal(valor: str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ valor = float(valor)
+ valor_ = round(valor)
+ if valor == 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..74b93fac5 100644
--- a/secao_02_estrutura_de_decisao/ex_24_operacao.py
+++ b/secao_02_estrutura_de_decisao/ex_24_operacao.py
@@ -28,6 +28,36 @@
"""
-
def fazer_operacao_e_classificar(n_1: float, n_2: float, operacao: str):
"""Escreva aqui em baixo a sua solução"""
+
+ if operacao == '+':
+ num = n_1 + n_2
+ elif operacao == '/':
+ num = n_1 / n_2
+ elif operacao == '-':
+ num = n_1 - n_2
+ elif operacao == '*':
+ num = n_1 * n_2
+
+ print(f'Resultado: {num :.2f}')
+
+ if num % 2 == 0:
+ if num < 0:
+ print('Número é par, negativo e inteiro.')
+ if num > 0:
+ print('Número é par, positivo e inteiro.')
+ if num == 0:
+ print('Número é par, neutro e inteiro.')
+ elif num % 2 != 0 and int(num) == num:
+ if num <0:
+ print('Número é impar, positivo e inteiro.')
+ if num > 0:
+ print('Número é impar, positivo e inteiro.')
+ if num == 0:
+ print('Número é impar, neutro e inteiro.')
+ else:
+ if num > 0:
+ print('Número é positivo e decimal.')
+ if num < 0:
+ print('Número é negativo e 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..9358526ea 100644
--- a/secao_02_estrutura_de_decisao/ex_25_sherlock.py
+++ b/secao_02_estrutura_de_decisao/ex_25_sherlock.py
@@ -33,3 +33,19 @@
def investigar(telefonou: str, estava_no_local: str, mora_perto: str, devia: str, trabalhou: str, ):
"""Escreva aqui em baixo a sua solução"""
+ respostas = [telefonou, estava_no_local, mora_perto, devia, trabalhou]
+ count = 0
+ for v in respostas:
+ if v == 'Sim':
+ count += 1
+ else:
+ pass
+
+ if count == 1 or count == 0:
+ return 'Inocente'
+ elif count == 2:
+ return 'Suspeito'
+ elif count == 3 or count == 4:
+ return 'Cúmplice'
+ elif count == 5:
+ return 'Assassino'
\ 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..a67b6d2b8 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,22 @@
def calcular_abastecimento(litros_de_combustivel: float, tipo_de_combustivel: str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if tipo_de_combustivel == 'A':
+ tipo_de_combustivel = 'álcool'
+ valor_inicial = 1.90 * litros_de_combustivel
+ if litros_de_combustivel <= 20:
+ valor_final = 1.90 * (litros_de_combustivel -(litros_de_combustivel * 3) / 100)
+ desconto = 3
+ else:
+ valor_final = 1.90 * (litros_de_combustivel - (litros_de_combustivel * 5) / 100)
+ desconto = 5
+ elif tipo_de_combustivel == 'G':
+ tipo_de_combustivel = 'gasolina'
+ valor_inicial = 2.50 * litros_de_combustivel
+ if litros_de_combustivel <= 20:
+ valor_final = 2.50 * (litros_de_combustivel - (litros_de_combustivel * 4) / 100)
+ desconto = 4
+ else:
+ valor_final = 2.50 * (litros_de_combustivel - (litros_de_combustivel * 6) / 100)
+ desconto = 6
+ return f'{litros_de_combustivel} litro(s) de {tipo_de_combustivel} custa(m): R$ {valor_inicial :.2f}. Com {desconto}% de desconto, fica R$ {valor_final :.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..843c68817 100644
--- a/secao_02_estrutura_de_decisao/ex_27_hortifruti.py
+++ b/secao_02_estrutura_de_decisao/ex_27_hortifruti.py
@@ -59,3 +59,27 @@
def calcular_preco_da_compra(kilos_de_morango: int, kilos_de_maca: int):
"""Escreva aqui em baixo a sua solução"""
+ kilos_total = kilos_de_morango + kilos_de_maca
+ valor_total = 0
+ if kilos_de_morango <= 5 and kilos_de_morango != 0:
+ valor_morangos = kilos_de_morango * 2.50
+ valor_total += valor_morangos
+ print(f'(+) Morango - valor: R$ {valor_morangos:4.2f} - quantidade: {kilos_de_morango :.0f} kg - preço: R$ 2.50/kg')
+ elif kilos_de_morango > 5:
+ valor_morangos = kilos_de_morango * 2.20
+ valor_total += valor_morangos
+ print(f'(+) Morango - valor: R$ {valor_morangos:4.2f} - quantidade: {kilos_de_morango} kg - preço: R$ 2.20/kg')
+ if kilos_de_maca <= 5 and kilos_de_maca != 0:
+ valor_maca = kilos_de_maca * 1.80
+ valor_total += valor_maca
+ print(f'(+) Maça - valor: R$ {valor_maca:4.2f} - quantidade: {kilos_de_maca} kg - preço: R$ 1.80/kg')
+ elif kilos_de_maca > 5:
+ valor_maca = kilos_de_maca * 1.50
+ valor_total += valor_maca
+ print(f'(+) Maça - valor: R$ {valor_maca:5.2f} - quantidade: {kilos_de_maca} kg - preço: R$ 1.50/kg')
+ if kilos_total > 8 or valor_total > 25:
+ desconto = valor_total * 0.1
+ else:
+ desconto = 0
+ print(f'(-) Desconto - valor: R$ {desconto :4.2f}')
+ print(f' Valor Total: R${valor_total - desconto :6.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..eb05f89c1 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,24 @@
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 tipo_de_carne == 'Filé Duplo':
+ if kilos_de_carne <= 5:
+ preco = 4.90
+ else:
+ preco = 5.80
+ elif tipo_de_carne == 'Alcatra':
+ if kilos_de_carne <= 5:
+ preco = 5.90
+ else:
+ preco = 6.80
+ elif tipo_de_carne == 'Picanha':
+ if kilos_de_carne <= 5:
+ preco = 6.90
+ else:
+ preco = 7.80
+ valor_final = kilos_de_carne * preco
+
+ if forma_de_pagamento == 'pix' or forma_de_pagamento == 'dinheiro':
+ return f'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco :.2f}/kg saem a R$ {valor_final :.2f}. Não há desconto, pagamento feito com {forma_de_pagamento}'
+ elif forma_de_pagamento == 'cartão tabajara':
+ return f'{kilos_de_carne} kg de {tipo_de_carne} a R$ {preco :.2f}/kg saem a R$ {valor_final :.2f}. Com desconto de 5% pelo pagamento feito com cartão tabajara, fica R$ {valor_final* 0.95 :.2f}'
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..66c9f8d98 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,15 @@
def obter_numero_valido():
"""Escreva aqui em baixo a sua solução"""
+ while True:
+ valor = input('Digite um valor: ')
+ if valor.isnumeric():
+ valor = int(valor)
+ if valor < 0 or valor > 10:
+ print(f'Número inválido: {valor}')
+ else:
+ break
+ else:
+ print(f'Número inválido: {valor}')
+
+ print(f'{valor}')
\ 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..91cd61229 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,12 @@
def validar_senha():
"""Escreva aqui em baixo a sua solução"""
+ while True:
+ login = input('Login: ')
+ senha = input('Senha: ')
+ if senha != login:
+ break
+ else:
+ print('Senha deve ser diferente do login')
+ pass
+ print(f"'Cadastro realizado com suceso, seu login é {login}'")
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..02419ef95 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,27 @@
def cadastrar_usuario(nome: str, idade: int, salario: float, sexo: str, estado_civil: str):
"""Escreva aqui em baixo a sua solução"""
+ if len(nome) >= 3 and idade > 0 and idade < 150 and salario > 0 and sexo in ('f', 'm') and estado_civil in ('s', 'c', 'v', 'd'):
+ print('Cadastro realizado com sucesso')
+ else:
+ print(f'Erro: o nome precisa ter 3 letras ou mais, não pode ser {nome}')
+
+ if idade > 0 and idade <= 150:
+ pass
+ else:
+ print(f'Erro: a idade precisa estar entre 0 e 150, não pode ser {idade}')
+
+ if salario > 0:
+ pass
+ else:
+ print(f'Erro: o salário precisa ser positivo, não pode ser 0')
+
+ if sexo in ('f', 'm'):
+ pass
+ else:
+ print(f'Erro: o sexo precisa ser "m" ou "f", não pode ser "{sexo}"')
+
+ if estado_civil in ("s", "c", "v", "d"):
+ pass
+ else:
+ print(f'Erro: o estado civil precisa ser "s", "c", "v" ou "d", não pode ser "{estado_civil}"')
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..7b49dde0c 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,15 @@
def calcular_ano_ultrapassagem_populacional() -> str:
"""Escreva aqui em baixo a sua solução"""
+ pop_A = 80000
+ pop_B = 200000
+ count = 1
+ while True:
+ pop_A = pop_A * 1.03
+ pop_B = pop_B * 1.015
+ if pop_A > pop_B:
+ break
+ else:
+ count += 1
+ pass
+ print(f"'População de A, depois de {count} ano(s) será de {pop_A :.0f} pessoas, superando a de B, que será de {pop_B :.0f} pessoas'")
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..c86eb9e33 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,20 @@ 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"""
+ pop_A = populacao_menor
+ pop_B = populacao_maior
+ count = 1
+ if pop_A > pop_B:
+ print(f"'População de A, depois de 0 ano(s) será de {pop_A:.0f} pessoas, superando a de B, que será de {pop_B:.0f} pessoas'")
+ elif float(taxa_crescimento_populacao_maior) >= float(taxa_crescimento_populacao_menor):
+ print(f"'A taxa de crescimento do país B ({taxa_crescimento_populacao_maior * 100 :.1f}%) deve ser menor do que a do país A ({taxa_crescimento_populacao_menor * 100 :.1f}%)'")
+ else:
+ while True:
+ pop_A *= (1 + taxa_crescimento_populacao_menor)
+ pop_B *= (1 + taxa_crescimento_populacao_maior)
+ if pop_A > pop_B:
+ break
+ else:
+ count += 1
+ pass
+ print(f"'População de A, depois de {count} ano(s) será de {pop_A:.0f} pessoas, superando a de B, que será de {pop_B:.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..64cc6483c 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,12 @@
def escrever_numeros_de_1_a_20(formato:str) -> str:
"""Escreva aqui em baixo a sua solução"""
+ if formato == 'um_abaixo_do_outro':
+ for i in range(1,21):
+ print(i)
+ elif formato == 'um_ao_lado_do_outro':
+ for i in range(1,21):
+ if i == 20:
+ print(f'{i}', end='')
+ else:
+ print(f'{i}', end = ' ')
diff --git a/secao_04_exercicios_lista/ex_04_consoantes_em_vetor.py b/secao_04_exercicios_lista/ex_04_consoantes_em_vetor.py
new file mode 100644
index 000000000..03ed17059
--- /dev/null
+++ b/secao_04_exercicios_lista/ex_04_consoantes_em_vetor.py
@@ -0,0 +1,19 @@
+"""
+Exercício 04 da seção de listas da Python Brasil:
+https://wiki.python.org.br/ExerciciosListas
+
+Faça um programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.
+
+ >>> imprimir_consoantes('consoantes')
+ 'A palavra "consoantes" possui 6 consoantes: c, n, s, t'
+ >>> imprimir_consoantes('programador')
+ 'Escreva uma palavra com 10 caracteres'
+ >>> imprimir_consoantes('amor')
+ 'Escreva uma palavra com 10 caracteres'
+ >>> imprimir_consoantes('engenheiro')
+ 'A palavra "engenheiro" possui 5 consoantes: n, g, h, r'
+"""
+
+
+def imprimir_consoantes(palavra: str):
+ """Escreva aqui embaixo a sua solução"""