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"""