From 5c3e8ed46056237f339a8584284e73febc6f0bd0 Mon Sep 17 00:00:00 2001 From: RafaelLeone <80486959+RafaelLeone@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:13:13 -0300 Subject: [PATCH 1/6] Create python-package.yml --- .github/workflows/python-package.yml | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 000000000..e1dad6f54 --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,40 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest From d7fa4430d5090b0eaade9cc199f3d0e5c1a97c05 Mon Sep 17 00:00:00 2001 From: RafaelLeone <80486959+RafaelLeone@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:53:00 -0300 Subject: [PATCH 2/6] Delete python-package.yml --- .github/workflows/python-package.yml | 40 ---------------------------- 1 file changed, 40 deletions(-) delete mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml deleted file mode 100644 index e1dad6f54..000000000 --- a/.github/workflows/python-package.yml +++ /dev/null @@ -1,40 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: Python package - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: ["3.8", "3.9", "3.10"] - - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - pytest From 03d2ca1b6dbd88032a687772a16c64c854e956dd Mon Sep 17 00:00:00 2001 From: RafaelLeone Date: Tue, 7 Jun 2022 13:45:44 -0300 Subject: [PATCH 3/6] dfinal feito(?) --- .../corretor_de_exercicios_secao_04.yml | 4 ++ .../ex_24_lancamento_de_dados.py | 51 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 secao_04_exercicios_lista/ex_24_lancamento_de_dados.py diff --git a/.github/workflows/corretor_de_exercicios_secao_04.yml b/.github/workflows/corretor_de_exercicios_secao_04.yml index 789960de9..8d1bfac7e 100644 --- a/.github/workflows/corretor_de_exercicios_secao_04.yml +++ b/.github/workflows/corretor_de_exercicios_secao_04.yml @@ -19,3 +19,7 @@ jobs: if: always() run: | python -m doctest -f secao_04_exercicios_lista/ex_01_vetor_5_numeros.py + - name: Correção do Exercício 24 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_24_lancamento_de_dados.py diff --git a/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py new file mode 100644 index 000000000..9160a07eb --- /dev/null +++ b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py @@ -0,0 +1,51 @@ +""" +Exercício 24 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +A partir de uma simulação de lançamento de dados +foram armazenados os valores de cada lançamento. +Mostre quantas vezes cada valor foi conseguido. + + >>> lancar_dados(2, 2, 2, 5, 3, 3, 1, 3, 4, 2, 6, 4, 3, 4, 4, 2, 6, 3, 6, 3, 4, + ... 3, 5, 5, 5, 1, 2, 1, 6, 5, 6, 3, 1, 6, 1, 1, 6, 5, 1, 6, 1, 1, 2, 1, 1, 2, 2, + ... 4, 4, 4, 2, 1, 4, 6, 6, 4, 2, 4, 4, 2, 5, 3, 6, 1, 2, 5, 4, 4, 5, 3, 4, 6, 6, + ... 6, 2, 4, 1, 5, 2, 5, 6, 5, 2, 5, 1, 4, 1, 1, 3, 6, 1, 5, 3, 1, 2, 6, 6, 5, 4, + ... 2) + O número 1 caiu 19 vezes + O número 2 caiu 18 vezes + O número 3 caiu 12 vezes + O número 4 caiu 18 vezes + O número 5 caiu 15 vezes + O número 6 caiu 18 vezes + + >>> lancar_dados(6, 6, 2, 5, 4, 5, 3, 3, 5, 1, 1, 4, 5, 4, 4, 2, 4, 6, 3, 6, 1, + ... 6, 6, 6, 6, 5, 5, 6, 6, 3, 5, 5, 1, 5, 5, 5, 2, 6, 4, 5, 5, 1, 3, 2, 3, 3, + ... 6, 3, 4, 3, 4, 1, 5, 6, 3, 1, 1, 2, 2, 2, 4, 4, 6, 3, 1, 2, 6, 2, 5, 2, 2, + ... 2, 2, 3, 2, 1, 3, 5, 3, 4, 5, 6, 3, 5, 2, 2, 3, 5, 6, 1, 4, 2, 3, 1, 3, 6, + ... 5, 3, 2, 5) + O número 1 caiu 12 vezes + O número 2 caiu 18 vezes + O número 3 caiu 19 vezes + O número 4 caiu 12 vezes + O número 5 caiu 21 vezes + O número 6 caiu 18 vezes + +""" + + +def lancar_dados(*valor_lancamentos): + """Escreva aqui em baixo a sua solução""" + lista = sorted(valor_lancamentos) + lista_quantidades = [] + i = 0 + valor = 0 + + lados_do_dado = 6 + for lado in range(lados_do_dado): + while i < len(lista) and lista[i] == lado+1: + i += 1 + valor += 1 + lista_quantidades.append(valor) + valor = 0 + print(f'O número {lado + 1} caiu {lista_quantidades[lado]} vezes') + lado += 1 \ No newline at end of file From a2fd12e23202ef2e05aee2a1b14c1cd1333ada23 Mon Sep 17 00:00:00 2001 From: RafaelLeone Date: Tue, 7 Jun 2022 14:04:26 -0300 Subject: [PATCH 4/6] dfinal feito (?) --- .../ex_24_lancamento_de_dados.py | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py index 9160a07eb..5449d3900 100644 --- a/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py +++ b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py @@ -2,33 +2,35 @@ Exercício 24 da seção de listas da Python Brasil: https://wiki.python.org.br/ExerciciosListas -A partir de uma simulação de lançamento de dados -foram armazenados os valores de cada lançamento. -Mostre quantas vezes cada valor foi conseguido. +A partir de uma simulação de lançamento de dados, foram armazenados os valores de cada lançamento. +Mostre na tela: +1)Quantas vezes o dado foi lançado; +2)Quantas vezes cada valor foi obtido; +3)Qual lado caiu mais vezes (e quantas vezes.) >>> lancar_dados(2, 2, 2, 5, 3, 3, 1, 3, 4, 2, 6, 4, 3, 4, 4, 2, 6, 3, 6, 3, 4, ... 3, 5, 5, 5, 1, 2, 1, 6, 5, 6, 3, 1, 6, 1, 1, 6, 5, 1, 6, 1, 1, 2, 1, 1, 2, 2, - ... 4, 4, 4, 2, 1, 4, 6, 6, 4, 2, 4, 4, 2, 5, 3, 6, 1, 2, 5, 4, 4, 5, 3, 4, 6, 6, - ... 6, 2, 4, 1, 5, 2, 5, 6, 5, 2, 5, 1, 4, 1, 1, 3, 6, 1, 5, 3, 1, 2, 6, 6, 5, 4, - ... 2) - O número 1 caiu 19 vezes - O número 2 caiu 18 vezes - O número 3 caiu 12 vezes - O número 4 caiu 18 vezes - O número 5 caiu 15 vezes - O número 6 caiu 18 vezes - - >>> lancar_dados(6, 6, 2, 5, 4, 5, 3, 3, 5, 1, 1, 4, 5, 4, 4, 2, 4, 6, 3, 6, 1, + ... 4, 4, 4, 2, 1, 4, 6, 6, 4, 2, 4, 4, 2, 5, 3, 6, 1, 2, 5, 4, 4, 5, 3, 4, 6, 6) + O dado foi lançado 73 vezes + O número 1 caiu 13 vezes + O número 2 caiu 13 vezes + O número 3 caiu 10 vezes + O número 4 caiu 15 vezes + O número 5 caiu 9 vezes + O número 6 caiu 13 vezes + O lado com o número 4 caiu mais vezes (15 vezes) + + >>> lancar_dados(6, 6, 2, 5, 4, 5, 3, 3, 5, 1, 4, 5, 4, 4, 2, 4, 6, 3, 6, 1, ... 6, 6, 6, 6, 5, 5, 6, 6, 3, 5, 5, 1, 5, 5, 5, 2, 6, 4, 5, 5, 1, 3, 2, 3, 3, - ... 6, 3, 4, 3, 4, 1, 5, 6, 3, 1, 1, 2, 2, 2, 4, 4, 6, 3, 1, 2, 6, 2, 5, 2, 2, - ... 2, 2, 3, 2, 1, 3, 5, 3, 4, 5, 6, 3, 5, 2, 2, 3, 5, 6, 1, 4, 2, 3, 1, 3, 6, - ... 5, 3, 2, 5) - O número 1 caiu 12 vezes - O número 2 caiu 18 vezes - O número 3 caiu 19 vezes - O número 4 caiu 12 vezes - O número 5 caiu 21 vezes - O número 6 caiu 18 vezes + ... 6, 3, 4, 3, 4, 1, 6, 6, 3, 1, 1, 2, 2, 2, 4, 4, 3, 1, 2, 6, 2, 5, 2, 2) + O dado foi lançado 69 vezes + O número 1 caiu 8 vezes + O número 2 caiu 11 vezes + O número 3 caiu 11 vezes + O número 4 caiu 10 vezes + O número 5 caiu 14 vezes + O número 6 caiu 15 vezes + O lado com o número 6 caiu mais vezes (15 vezes) """ @@ -40,6 +42,8 @@ def lancar_dados(*valor_lancamentos): i = 0 valor = 0 + print(f"O dado foi lançado {len(valor_lancamentos)} vezes") + lados_do_dado = 6 for lado in range(lados_do_dado): while i < len(lista) and lista[i] == lado+1: @@ -48,4 +52,8 @@ def lancar_dados(*valor_lancamentos): lista_quantidades.append(valor) valor = 0 print(f'O número {lado + 1} caiu {lista_quantidades[lado]} vezes') - lado += 1 \ No newline at end of file + lado += 1 + + maxi = max(lista_quantidades) + numero = lista_quantidades.index(maxi) + print(f'O lado com o número {numero+1} caiu mais vezes ({maxi} vezes)') \ No newline at end of file From ebd4312e11b192c9894a240b13facd0edae24440 Mon Sep 17 00:00:00 2001 From: RafaelLeone Date: Tue, 7 Jun 2022 14:09:41 -0300 Subject: [PATCH 5/6] 04-24 adicionado --- .../ex_24_lancamento_de_dados.py | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py index 5449d3900..a985da45d 100644 --- a/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py +++ b/secao_04_exercicios_lista/ex_24_lancamento_de_dados.py @@ -37,23 +37,3 @@ def lancar_dados(*valor_lancamentos): """Escreva aqui em baixo a sua solução""" - lista = sorted(valor_lancamentos) - lista_quantidades = [] - i = 0 - valor = 0 - - print(f"O dado foi lançado {len(valor_lancamentos)} vezes") - - lados_do_dado = 6 - for lado in range(lados_do_dado): - while i < len(lista) and lista[i] == lado+1: - i += 1 - valor += 1 - lista_quantidades.append(valor) - valor = 0 - print(f'O número {lado + 1} caiu {lista_quantidades[lado]} vezes') - lado += 1 - - maxi = max(lista_quantidades) - numero = lista_quantidades.index(maxi) - print(f'O lado com o número {numero+1} caiu mais vezes ({maxi} vezes)') \ No newline at end of file From 83477139a80fabc945abf6abe782488f475fab37 Mon Sep 17 00:00:00 2001 From: RafaelLeone Date: Fri, 24 Jun 2022 15:07:46 -0300 Subject: [PATCH 6/6] =?UTF-8?q?feita=20corre=C3=A7=C3=A3o=20do=20exerc?= =?UTF-8?q?=C3=ADcio=2015=20da=20se=C3=A7=C3=A3o=20de=20listas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../corretor_de_exercicios_secao_04.yml | 4 ++ .../ex_15_brincando_com_notas.py | 59 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 secao_04_exercicios_lista/ex_15_brincando_com_notas.py diff --git a/.github/workflows/corretor_de_exercicios_secao_04.yml b/.github/workflows/corretor_de_exercicios_secao_04.yml index 707408530..68be43e88 100644 --- a/.github/workflows/corretor_de_exercicios_secao_04.yml +++ b/.github/workflows/corretor_de_exercicios_secao_04.yml @@ -43,6 +43,10 @@ jobs: if: always() run: | python -m doctest -f secao_04_exercicios_lista/ex_13_media_de_temperaturas_anual.py + - name: Correção do Exercício 15 da seção de Listas + if: always() + run: | + python -m doctest -f secao_04_exercicios_lista/ex_15_brincando_com_notas.py - name: Correção do Exercício 24 da seção de Listas if: always() run: | diff --git a/secao_04_exercicios_lista/ex_15_brincando_com_notas.py b/secao_04_exercicios_lista/ex_15_brincando_com_notas.py new file mode 100644 index 000000000..f7fb7d034 --- /dev/null +++ b/secao_04_exercicios_lista/ex_15_brincando_com_notas.py @@ -0,0 +1,59 @@ +""" +Exercício 15 da seção de listas da Python Brasil: +https://wiki.python.org.br/ExerciciosListas + +Faça um programa que leia um número indeterminado de valores, correspondentes a notas (números reais com uma casa após a vírgula), +encerrando a entrada de dados quando for informado um valor igual a -1 (que não deve ser armazenado). +Após esta entrada de dados, faça: +1)Mostre a quantidade de valores que foram lidos; +2)Exiba todos os valores na ordem em que foram informados, um ao lado do outro; +3)Exiba todos os valores na ordem inversa à que foram informados, um abaixo do outro; +4)Calcule e mostre a soma dos valores; +5)Calcule e mostre a média dos valores; +6)Calcule e mostre a quantidade de valores acima da média calculada; +7)Calcule e mostre a quantidade de valores abaixo de sete; +8)Encerre o programa com uma mensagem; + + >>> from secao_04_exercicios_lista import ex_15_brincando_com_notas + >>> notas = ['-1', '9.5', '6', '6', '10', '6'] + >>> ex_15_brincando_com_notas.input = lambda k: notas.pop() + >>> ex_15_brincando_com_notas.brincar_com_notas() + Quantidade de valores recebidos: 5 + 6.0, 10.0, 6.0, 6.0, 9.5 + ------------------------------------------------------------------ + 9.5 + 6.0 + 6.0 + 10.0 + 6.0 + ------------------------------------------------------------------ + Soma: 37.5 + Média: 7.5 + Valores acima dessa média: 2 + Valores abaixo de 7: 3 + ------------------------------------------------------------------ + O programa foi encerrado :) + + >>> from secao_04_exercicios_lista import ex_15_brincando_com_notas + >>> notas = ['-1', '3.5', '2.7'] + >>> ex_15_brincando_com_notas.input = lambda k: notas.pop() + >>> ex_15_brincando_com_notas.brincar_com_notas() + Quantidade de valores recebidos: 2 + 2.7, 3.5 + ------------------------------------------------------------------ + 3.5 + 2.7 + ------------------------------------------------------------------ + Soma: 6.2 + Média: 3.1 + Valores acima dessa média: 1 + Valores abaixo de 7: 2 + ------------------------------------------------------------------ + O programa foi encerrado :) + + +""" + + +def brincar_com_notas(): + """Escreva aqui em baixo a sua solução"""