diff --git a/.github/workflows/corretor_de_exercicios_secao_05.yml b/.github/workflows/corretor_de_exercicios_secao_05.yml index 89c00367c..d80ff00da 100644 --- a/.github/workflows/corretor_de_exercicios_secao_05.yml +++ b/.github/workflows/corretor_de_exercicios_secao_05.yml @@ -19,3 +19,7 @@ jobs: if: always() run: | python -m doctest -f secao_05_exercicios_funcoes/ex_01_piramide.py + - name: Correção do Exercício 06 da seção de Funções + if: always() + run: | + python -m doctest -f secao_05_exercicios_funcoes/ex_06_converte_horas.py diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..129213673 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Rodar Doctest", + "type": "python", + "request": "launch", + "module": "doctest", + "args": ["${file}", "-v"], + "cwd": "${workspaceRoot}", + "justMyCode": true + } + ] +} \ 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..3e5797337 100644 --- a/secao_01_estrutura_sequencial/ex_01_alo_mundo.py +++ b/secao_01_estrutura_sequencial/ex_01_alo_mundo.py @@ -12,4 +12,3 @@ def ola_mundo(): """Escreva aqui em baixo a sua solução""" - 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..1e31166b6 100644 --- a/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py +++ b/secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py @@ -12,5 +12,4 @@ """ def escreva_um_numero(): - """Escreva aqui em baixo a sua solução""" - + """Escreva aqui em baixo a sua solução""" \ 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..42ba03c83 100644 --- a/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py +++ b/secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py @@ -14,5 +14,4 @@ def calcular_media(): - """Escreva aqui em baixo a sua solução""" - + """Escreva aqui em baixo a sua solução""" \ 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..5ce908270 100644 --- a/secao_01_estrutura_sequencial/ex_07_area_quadrado.py +++ b/secao_01_estrutura_sequencial/ex_07_area_quadrado.py @@ -19,4 +19,4 @@ def calcular_area_de_quadrado(): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""" \ 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..77632d3df 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,5 @@ def transformar_para_celsius(): """Escreva aqui em baixo a sua solução""" + + \ 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..ca8e40195 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,4 @@ def transformar_para_fahrenheit(): """Escreva aqui em baixo a sua solução""" + diff --git a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py index 1f8418fab..e734e6141 100644 --- a/secao_01_estrutura_sequencial/ex_12_peso_ideal.py +++ b/secao_01_estrutura_sequencial/ex_12_peso_ideal.py @@ -18,4 +18,4 @@ def calcular_peso_ideal(): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""" \ 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..754c72d19 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 @@ -21,4 +21,4 @@ def calcular_peso_ideal(): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""" \ 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..537b8b151 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 @@ -25,4 +25,4 @@ def calcular_peso_excedente_e_multa(): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""" \ No newline at end of file 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..2a54d9ab7 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,7 @@ def calcular_latas_e_preco_de_tinta(): """Escreva aqui em baixo a sua solução""" + + + + 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..6d909270a 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,5 @@ def maior_de_dois_numeros(x, y): """Escreva aqui em baixo a sua solução""" + + 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..8f6742044 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 @@ -14,6 +14,6 @@ 'negativo' """ - def positivo_ou_negativo(n): """Escreva aqui em baixo a sua solução""" + 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..0c034c251 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,4 @@ def vogal_ou_consoante(letra): """Escreva aqui em baixo a sua solução""" + 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..f418b6ea7 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,4 @@ def calcular_maior_de_3_numeros(x, y, z): """Escreva aqui em baixo a sua solução""" + 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..3a7a8cca2 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 @@ -20,4 +20,4 @@ def calcular_maior_de_3_numeros(x, y, z): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""", 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..b68ef2651 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,6 @@ def cumprimentar(turno: str): """Escreva aqui em baixo a sua solução""" + + + 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..1ca0b8806 100644 --- a/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py +++ b/secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py @@ -40,4 +40,4 @@ def calcular_aumento(salario: float): - """Escreva aqui em baixo a sua solução""" + """Escreva aqui em baixo a sua solução""" \ 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..d96ba7abe 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,4 @@ def calcular_salario_liquido(valor_hora: float, horas_trabalhadas: int): """Escreva aqui em baixo a sua solução""" + 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..1893974e7 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,5 @@ def calcular_dia_da_semana(numero: int): """Escreva aqui em baixo a sua solução""" + + 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..865356320 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,5 @@ def calcular_conceito(nota_1: float, nota_2: float): """Escreva aqui em baixo a sua solução""" + + 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..6f3df5150 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 @@ -26,3 +26,8 @@ def resolver_equacao_do_segundo_grau(a: float, b: float, c: float): """Escreva aqui em baixo a sua solução""" + + + + + \ No newline at end of file diff --git a/secao_03_estrutura_de_repeticao/ex_42_intervalos.py b/secao_03_estrutura_de_repeticao/ex_42_intervalos.py index 9699874c2..16784c38d 100644 --- a/secao_03_estrutura_de_repeticao/ex_42_intervalos.py +++ b/secao_03_estrutura_de_repeticao/ex_42_intervalos.py @@ -6,7 +6,7 @@ intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deverá terminar quando for lido um número negativo. - >>> from secao_03_estrutura_de_repeticao import ex_42_intervalos + >>> from secao_03_estrutura_de_repeticao import ex_42_intervalos>>> from secao_03_estrutura_de_repeticao import ex_42_intervalos >>> numeros_para_avaliacao=[-1, 10, 15, 20, 50, 13, 78, 22, 14, 16] >>> ex_42_intervalos.input = lambda k: numeros_para_avaliacao.pop() >>> ex_42_intervalos.listar_numeros_para_avaliacao() diff --git a/secao_05_exercicios_funcoes/ex_06_converte_horas.py b/secao_05_exercicios_funcoes/ex_06_converte_horas.py new file mode 100644 index 000000000..3de28fa97 --- /dev/null +++ b/secao_05_exercicios_funcoes/ex_06_converte_horas.py @@ -0,0 +1,47 @@ +""" +Exercício 06 da seção de funções da Python Brasil: +https://wiki.python.org.br/ExerciciosFuncoes + +Faça um programa que converta da notação de 24 horas para a notação de 12 horas. +Por exemplo, o programa deve converter 14:25 em 2:25 P.M. +A entrada é dada em dois inteiros. +Deve haver pelo menos duas funções: uma para fazer a conversão e uma para a saída. +Registre a informação A.M./P.M. como um valor 'A' para A.M. e 'P' para P.M. +Assim, a função para efetuar as conversões terá um parâmetro formal para +registrar se é A.M. ou P.M. Inclua um loop que permita que o usuário +repita esse cálculo para novos valores de entrada todas as vezes que desejar. + + >>> from secao_05_exercicios_funcoes import ex_06_converte_horas + >>> entradas = [0, 25, 18, 42,17, 30,7] + >>> ex_06_converte_horas.input = lambda k: entradas.pop() + >>> ex_06_converte_horas.converte_horas() + 7:30 --> 7:30 A.M. + 17:42 --> 5:42 P.M. + 18:25 --> 6:25 P.M. + >>> entradas = [0] + >>> ex_06_converte_horas.input = lambda k: entradas.pop() + >>> ex_06_converte_horas.converte_horas() + >>> entradas = [0, 18, 19, 25,50, 60,17, 4,18] + >>> ex_06_converte_horas.input = lambda k: entradas.pop() + >>> ex_06_converte_horas.converte_horas() + 18:04 --> 6:04 P.M. + Minutos inválidos. + 17:50 --> 5:50 P.M. + Hora inválida. + 19:18 --> 7:18 P.M. + >>> entradas = [0, 25,19, 4,18, 40,18] + >>> ex_06_converte_horas.input = lambda k: entradas.pop() + >>> ex_06_converte_horas.converte_horas() + 18:40 --> 6:40 P.M. + 18:04 --> 6:04 P.M. + 19:25 --> 7:25 P.M. + >>> entradas = [0, 25,4, 3,6, 10,7] + >>> ex_06_converte_horas.input = lambda k: entradas.pop() + >>> ex_06_converte_horas.converte_horas() + 7:10 --> 7:10 A.M. + 6:03 --> 6:03 A.M. + 4:25 --> 4:25 A.M. +""" + + +