An open API service indexing awesome lists of open source software.

https://github.com/claudimf/python_game


https://github.com/claudimf/python_game

alura alura-cursos-online docker docker-compose python-3 python3

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

          

# Python Game

👋 Olá, Seja Bem-vindo(a) ao 'Python Game'.

# Projeto 'Python Game' dos cursos:

## [Python 3 parte 1: Introdução à nova versão da linguagem](https://cursos.alura.com.br/course/python-3-introducao-a-nova-versao-da-linguagem)

### Aulas

Introdução e Instalação do Python 3


  • Introdução

  • Instalando o Python no Windows

  • Instalando em outras plataformas

  • Usar o Python sem instalá-lo

  • Função print e variáveis

  • Imprimindo uma mensagem na tela

  • Personalizando a saída

  • Imprimindo datas

  • Tipagem do Python

  • Qual o tipo da variável?

  • Tipagem de variáveis

  • Para saber mais: Snake_Case

Lidando com a entrada do usuário


  • Instalando e conhecendo o PyCharm

  • Mão na massa: Primeiro projeto com PyCharm

  • Comparando variáveis

  • Impossível acertar o número

  • Onde foi que ela errou?

  • Comparação estranha

  • O resultado da soma é...

  • E o resultado agora?

  • Diferenças entre o Python 2 e o Python 3

  • Python 2 vs Python 3 - #1

  • Python 2 vs Python 3 - #2

  • Para saber mais: JavaScript vs Python

  • Arquivos do projeto atual

Testando valores


  • A condição elif

  • Faixa Etária

  • Faixa Etária - Variáveis

  • If..else. e nada funciona!

  • Mão na massa: Dando dicas

  • Qual é o tipo?

  • Para saber mais: if sem ou com parênteses?

  • Arquivos do projeto atual

A sequência do jogo


  • O laço com while

  • Resultado do programa

  • if e while

  • Formatação de strings

  • Testando formatação

  • Mão na massa: Usando while

  • Arquivos do projeto atual

Iterando de maneira diferente


  • O laço com for

  • De while para for

  • De while para for #2

  • Encerrando a interação e o loop

  • break e continue

  • while com break

  • for com continue

  • Mão na massa: Usando for

  • Para saber mais: Formatação de strings

  • Adaptando o Padrão Americano

  • O resultado da interpolação

  • Interpolação - Python 2 vs Python 3

  • Arquivos do projeto atual

Gerando números aleatórios


  • Gerando e arredondando um número aleatório

  • Importar módulo

  • Definindo um intervalo para a geração de números aleatórios

  • O menor e o maior

  • Múltiplos aleatórios

  • O grande sorteio

  • Mão na massa: Número secreto aleátorio

  • Para saber mais: Pseudo-Random

  • Arquivos do projeto atual

Nível e Pontuação


  • Adicionando níveis ao jogo

  • Definindo uma pontuação para o usuário

  • Funções built-in

  • Dividindo pontos

  • Mão na massa: Níveis e Pontuação

  • Para saber mais: arredondar no Python 2 e no Python 3

  • Para saber mais: Divisão de float e integer

  • Arquivos do projeto atual

Organizando ainda melhor o nosso código


  • Importando arquivos dentro de outros

  • Criando funções para os nossos jogos

  • Declarando funções

  • Importação de módulo

  • Importação de módulo, mas um pouco diferente

  • Diferenciando um arquivo executado de um importado

  • Um módulo pode se chamar automaticamente?

  • Mão na massa: Modularizando o jogo

  • Download do jogo

  • Arquivos do projeto atual

Comparando Python com C


  • Python vs C

  • Interpretado vs Compilado

  • Python é interpretado ou compilado?

  • Download e considerações finais

## [Python 3 parte 2: Avançando na linguagem](https://cursos.alura.com.br/course/python-3-avancando-na-linguagem)

### Aulas

Preparando o jogo da forca


  • Introdução

  • Se você veio do Python 2...

  • Ajustando a infraestrutura

  • Arquivos do curso e IDE utilizada

  • Game Loop

  • Quantos erros tem...

  • Tipo Booleano

  • Para saber mais: built-in

  • Mãos na massa

  • Arquivos do projeto atual

Manipulando strings


  • Encontrando letras

  • Buscando um caracter em uma string

  • Iterando em uma palavra

  • Recordando...

  • Funções importantes da String

  • Grandes poderes trazem grandes responsabilidades

  • Mãos na massa

  • Para saber mais: Alterações com strings

  • Arquivos do projeto atual

Conhecendo e trabalhando com listas


  • Estrutura de dados: List

  • Sistema para as frutas

  • Um bom jeito de economizar

  • Contando os funcionários

  • Um falso campeão

  • Guardando as letras acertadas

  • Mãos na massa

  • Para Saber Mais: Outros recursos com a lista

  • Arquivos do projeto atual

Conhecendo e trabalhando com tuplas


  • O que são tuplas?

  • Tipos considerados sequências

  • Funções importantes

  • Diferenças entre sequências

  • Sequência imutável

  • Listas e tuplas juntas

  • Ajuda na conversão

  • Exemplos de sequências

  • Para saber mais: Set

  • Para saber mais: Dictionary

  • Arquivos do projeto atual

Implementando o encerramento do jogo


  • Estipulando tentativas de erros

  • Calculando o total de caracteres em um loop

  • Saindo do loop

  • Forca com teste de erros alternativo

  • Opcional: quantas tentativas faltam?

  • Para saber mais: outra maneira de sair do loop

  • Compreensão de lista

  • Loop relativo à List Comprehension

  • Preenchendo uma lista com os quadrados de números inteiros

  • Para saber mais: inicializando uma lista de números pares

  • Mãos na massa: encerrando o jogo

  • Arquivos do projeto atual

Escrita e leitura de arquivos


  • Escrevendo em um arquivo

  • A função open

  • Os modificadores de acesso

  • Uma boa prática com arquivos

  • Lendo um arquivo

  • Lendo a primeira linha

  • Lendo um arquivo por completo

  • Escolhendo uma palavra

  • Para saber mais: with

  • Mãos na massa: Palavras aleatórias no jogo

  • Arquivos do projeto atual

Melhorando o código e a apresentação


  • Organizando o código em funções

  • Sobre funções

  • Criando mais funções

  • Sintaxe das funções

  • Melhorando a apresentação da forca

  • Boas práticas de código

  • Mãos na Massa: Exportando o código para funções

  • Mãos na Massa: Melhorando a apresentação do jogo

  • Para saber mais: Parâmetros opcionais e nomeados

  • Considerações finais

  • Download e considerações finais

  • Próximos passos

# Notas das aulas:

Para executar um script python, faça conforme o exemplo abaixo:
```sh
docker-compose run --rm app python aulas/01.py
```

Para abri o terminal interativo do Python:

```sh
docker-compose run --rm app python
```

## Sobre o projeto:

### Permissões de arquivos:

Ao se criar migrações, adicionar libs ou qualquer outro comando que crie arquivos dentro do contâiner Docker o proprietário para edição se torna o contâiner, sendo assim você precisará rodar o comando abaixo para alterar essas permissões e você poder editar:

```sh
sudo chown -R $USER:$USER .
```

# Exigências

**:warning: Atenção:** É necessário que os desenvolvedores usem o Docker no seu ambiente de desenvolvimento.

- **🛠 Modo Desenvolvimento Docker**
- :computer: [Linux Ubuntu LTS](https://ubuntu.com/download/desktop)
- 🐳 [Docker](https://docs.docker.com/engine/installation/) Deve estar instalado.
- 🐳 [Docker Compose](https://docs.docker.com/compose/) Deve estar instalado.
- **💡 Dica:** [Documentação do Docker](https://docs.docker.com/)

# Instalando

## 🐳 Modo Desenvolvimento com Docker

Após instalar o docker e docker-compose, estando na pasta raiz do projeto, execute:

```sh
docker-compose up
```

Para se certificar que os seus containers subiram corretamente, todos os containers deve estar com o status `UP`, execute:

```sh
docker-compose ps -a
```

Para acessar o container da aplicação, execute:

```sh
docker-compose run --rm app bash
```

Para derrubar e subir a instância do docker novamente, execute:

```sh
docker-compose down && docker-compose up
```

# Referências utilizadas

[1° Conteinerização de scripts em Python](https://github.com/claudimf/containerized_python)

[2° Exemplos de formatação de strings](https://docs.python.org/3/library/string.html#formatexamples)

[3° Built-in Functions](https://docs.python.org/3/library/functions.html)