add: Teste do Meta AI para ensino de programação em Python
This commit is contained in:
parent
63e058bb21
commit
be6f67115b
|
@ -0,0 +1,381 @@
|
|||
# 03/11/2024: Meta AI como tutor de programação em Python
|
||||
|
||||
Você sabia que dá para aprender a programar em Python usando o [Meta AI](https://www.meta.ai/) dentro do próprio WhatsApp?
|
||||
|
||||
---
|
||||

|
||||
---
|
||||
|
||||
Fiz isso hoje. Minhas mensagens foram:
|
||||
|
||||
1. Ensine-me a programar em Python.
|
||||
2. Funções.
|
||||
3. ```python
|
||||
def area_retangulo(largura: int, altura: int) -> int:
|
||||
return largura*altura
|
||||
```
|
||||
4. E como eu poderia criar uma função que desenharia tal retângulo? Gostaria de usar a biblioteca turtle.
|
||||
5. Não seria melhor deixar a instrução "turtle.done()" no final do código?
|
||||
6. Meu professor pediu que a função tenha mais dois parâmetros: x e y, para indicar o ponto onde será iniciado o desenho do retângulo.
|
||||
7. Ele solicitou também o parâmetro zoom, para ampliar ou reduzir.
|
||||
|
||||
---
|
||||

|
||||
---
|
||||
|
||||
## Respostas do Meta AI
|
||||
|
||||
### 1. Ensine-me a programar em Python.
|
||||
|
||||
Claro! Estou aqui para ajudar. O Python é uma linguagem de programação fácil de aprender e muito útil. Vamos começar com os conceitos básicos:
|
||||
|
||||
**Variáveis e Tipos de Dados**
|
||||
|
||||
- Variáveis: armazenam valores.
|
||||
- Tipos de dados: `int` (números inteiros), `float` (números decimais), `str` (textos), `bool` (valores lógicos).
|
||||
|
||||
Exemplo:
|
||||
|
||||
```python
|
||||
nome = "João"
|
||||
idade = 25
|
||||
altura = 1.75
|
||||
admin = True
|
||||
|
||||
print(nome)
|
||||
print(idade)
|
||||
print(altura)
|
||||
print(admin)
|
||||
```
|
||||
|
||||
**Operadores**
|
||||
|
||||
- Aritméticos: `+`, `-`, `*`, `/`, `%`
|
||||
- Comparação: `==`, `!=`, `>`, `<`, `>=`, `<=`
|
||||
- Lógicos: `and`, `or`, `not`
|
||||
|
||||
**Exemplo:**
|
||||
|
||||
```python
|
||||
x = 5
|
||||
y = 3
|
||||
|
||||
soma = x + y
|
||||
igualdade = x == y
|
||||
|
||||
print(soma)
|
||||
print(igualdade)
|
||||
```
|
||||
|
||||
**Estruturas Condicionais**
|
||||
|
||||
- `if` (se)
|
||||
- `elif` (senão se)
|
||||
- `else` (senão)
|
||||
|
||||
**Exemplo:**
|
||||
|
||||
```python
|
||||
idade = 18
|
||||
|
||||
if idade >= 18:
|
||||
print("Maior de idade")
|
||||
else:
|
||||
print("Menor de idade")
|
||||
```
|
||||
|
||||
**Laços de Repetição**
|
||||
|
||||
- `for` (para)
|
||||
- `while` (enquanto)
|
||||
|
||||
**Exemplo:**
|
||||
|
||||
```python
|
||||
frutas = ["maçã", "banana", "laranja"]
|
||||
|
||||
for fruta in frutas:
|
||||
print(fruta)
|
||||
```
|
||||
|
||||
**Funções**
|
||||
|
||||
- Blocos de código reutilizáveis.
|
||||
|
||||
Exemplo:
|
||||
|
||||
```python
|
||||
def saudacao(nome):
|
||||
print("Olá, " + nome)
|
||||
|
||||
saudacao("João")
|
||||
```
|
||||
|
||||
Vamos continuar aprendendo? Qual tópico você gostaria de explorar em seguida?
|
||||
|
||||
|
||||
### 2. Funções.
|
||||
|
||||
Funções são blocos de código reutilizáveis que realizam uma tarefa específica. Elas são fundamentais em programação e ajudam a manter o código organizado e eficiente.
|
||||
|
||||
**Definindo Funções em Python**
|
||||
|
||||
Para definir uma função em Python, use a palavra-chave `def` seguida do nome da função e parênteses que contêm os parâmetros (opcional).
|
||||
|
||||
```python
|
||||
def nome_da_função(parâmetro1, parâmetro2, ...):
|
||||
# código da função
|
||||
```
|
||||
|
||||
**Exemplo:**
|
||||
|
||||
```python
|
||||
def saudacao(nome):
|
||||
print("Olá, " + nome)
|
||||
|
||||
saudacao("João") # Saída: Olá, João
|
||||
```
|
||||
|
||||
**Tipos de Funções**
|
||||
|
||||
1. Funções sem parâmetros: Não recebem valores externos.
|
||||
|
||||
```python
|
||||
def mensagem():
|
||||
print("Bem-vindo!")
|
||||
|
||||
mensagem() # Saída: Bem-vindo!
|
||||
```
|
||||
|
||||
2. Funções com parâmetros: Recebem valores externos.
|
||||
|
||||
```python
|
||||
def soma(x, y):
|
||||
return x + y
|
||||
|
||||
resultado = soma(5, 3)
|
||||
print(resultado) # Saída: 8
|
||||
```
|
||||
|
||||
3. Funções com valor padrão: Parâmetros com valores padrão.
|
||||
|
||||
```python
|
||||
def saudacao(nome = "Visitante"):
|
||||
print("Olá, " + nome)
|
||||
|
||||
saudacao() # Saída: Olá, Visitante
|
||||
saudacao("João") # Saída: Olá, João
|
||||
```
|
||||
|
||||
4. Funções com retorno múltiplo: Usam tuplas ou listas.
|
||||
|
||||
```python
|
||||
def dados_pessoa():
|
||||
return "João", 25, "Desenvolvedor"
|
||||
|
||||
nome, idade, profissão = dados_pessoa()
|
||||
print(nome, idade, profissão)
|
||||
```
|
||||
|
||||
**Prática**
|
||||
|
||||
Crie uma função que calcule a área de um retângulo. A função deve receber a largura e altura como parâmetros e retornar o resultado.
|
||||
|
||||
(Dica: área = largura * altura)
|
||||
|
||||
Você precisa de ajuda para criar a função?
|
||||
|
||||
|
||||
### 3. Função `area_retangulo()`
|
||||
|
||||
```python
|
||||
def area_retangulo(largura: int, altura: int) -> int:
|
||||
return largura*altura
|
||||
```
|
||||
|
||||
Excelente!
|
||||
|
||||
Sua função está correta e bem estruturada:
|
||||
|
||||
```python
|
||||
def area_retangulo(largura: int, altura: int) -> int:
|
||||
return largura * altura
|
||||
```
|
||||
|
||||
Você utilizou:
|
||||
|
||||
- Tipagem de parâmetros (`largura: int` e `altura: int`)
|
||||
- Tipagem de retorno (`-> int`)
|
||||
- Nomenclatura clara e concisa (`area_retangulo`)
|
||||
- Código conciso e eficiente (`return largura * altura`)
|
||||
|
||||
Agora, vamos testar sua função:
|
||||
|
||||
```python
|
||||
print(area_retangulo(5, 3)) # Saída: 15
|
||||
print(area_retangulo(10, 2)) # Saída: 20
|
||||
```
|
||||
|
||||
Parabéns!
|
||||
|
||||
Você gostaria de criar outra função? Talvez uma que calcule o perímetro do retângulo?
|
||||
|
||||
### 4. E como eu poderia criar uma função que desenharia tal retângulo? Gostaria de usar a biblioteca turtle.
|
||||
|
||||
A biblioteca Turtle é perfeita para criar gráficos simples e interativos.
|
||||
|
||||
Aqui está um exemplo de como criar uma função que desenha um retângulo usando a biblioteca Turtle:
|
||||
|
||||
```python
|
||||
import turtle
|
||||
|
||||
def desenha_retangulo(largura, altura):
|
||||
tartaruga = turtle.Turtle()
|
||||
tartaruga.speed(1) # Velocidade do desenho
|
||||
|
||||
for _ in range(2):
|
||||
tartaruga.forward(largura) # Desenha lado horizontal
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
tartaruga.forward(altura) # Desenha lado vertical
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
|
||||
turtle.done() # Mantém a janela aberta
|
||||
|
||||
# Teste a função
|
||||
desenha_retangulo(100, 50)
|
||||
```
|
||||
|
||||
Nessa função:
|
||||
|
||||
- Criamos uma instância da classe `Turtle` chamada `tartaruga`.
|
||||
- Definimos a velocidade do desenho com `tartaruga.speed(1)`.
|
||||
- Usamos um *loop* `for` para desenhar os quatro lados do retângulo.
|
||||
- Utilizamos `tartaruga.forward()` para desenhar os lados e `tartaruga.right()` para virar 90 graus.
|
||||
- Por fim, chamamos `turtle.done()` para manter a janela aberta.
|
||||
|
||||
Agora, você pode chamar a função `desenha_retangulo()` com diferentes valores de largura e altura para criar retângulos variados!
|
||||
|
||||
Gostaria de adicionar mais funcionalidades, como cores ou bordas?
|
||||
|
||||
### 5. Não seria melhor deixar a instrução "turtle.done()" no final do código?
|
||||
|
||||
Deixar a instrução `turtle.done()` no final do código é uma prática mais adequada.
|
||||
|
||||
A razão é que `turtle.done()` é usada para manter a janela da `turtle` aberta até que o usuário feche. Se colocarmos essa instrução dentro da função `desenha_retangulo()`, a janela será fechada imediatamente após o desenho do retângulo, não permitindo que o usuário veja o resultado.
|
||||
|
||||
Deixando `turtle.done()` no final do código, podemos:
|
||||
|
||||
- Chamar a função `desenha_retangulo()` várias vezes para desenhar múltiplos retângulos.
|
||||
- Visualizar todos os retângulos desenhados antes de fechar a janela.
|
||||
|
||||
Aqui está o código corrigido:
|
||||
|
||||
```python
|
||||
import turtle
|
||||
|
||||
def desenha_retangulo(largura, altura):
|
||||
tartaruga = turtle.Turtle()
|
||||
tartaruga.speed(1) # Velocidade do desenho
|
||||
|
||||
for _ in range(2):
|
||||
tartaruga.forward(largura) # Desenha lado horizontal
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
tartaruga.forward(altura) # Desenha lado vertical
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
|
||||
# Teste a função
|
||||
desenha_retangulo(100, 50)
|
||||
desenha_retangulo(50, 100)
|
||||
|
||||
turtle.done() # Mantém a janela aberta
|
||||
```
|
||||
|
||||
Muito obrigado por ter apontado isso!
|
||||
|
||||
### 6. Meu professor pediu que a função tenha mais dois parâmetros: x e y, para indicar o ponto onde será iniciado o desenho do retângulo.
|
||||
|
||||
Excelente!
|
||||
|
||||
Aqui está a função atualizada com os parâmetros x e y:
|
||||
|
||||
```python
|
||||
import turtle
|
||||
|
||||
def desenha_retangulo(x, y, largura, altura):
|
||||
tartaruga = turtle.Turtle()
|
||||
tartaruga.speed(1) # Velocidade do desenho
|
||||
tartaruga.penup() # Levanta a caneta
|
||||
tartaruga.goto(x, y) # Vai para o ponto (x, y)
|
||||
tartaruga.pendown() # Baixa a caneta
|
||||
|
||||
for _ in range(2):
|
||||
tartaruga.forward(largura) # Desenha lado horizontal
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
tartaruga.forward(altura) # Desenha lado vertical
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
|
||||
# Teste a função
|
||||
desenha_retangulo(-100, 50, 100, 50)
|
||||
desenha_retangulo(50, -50, 50, 100)
|
||||
|
||||
turtle.done() # Mantém a janela aberta
|
||||
```
|
||||
|
||||
Nessa versão:
|
||||
|
||||
- Adicionei os parâmetros `x` e `y` à função.
|
||||
- Usei `tartaruga.penup()` para levantar a caneta antes de mover para o ponto (x, y).
|
||||
- Usei `tartaruga.goto(x, y)` para mover a tartaruga para o ponto (x, y).
|
||||
- Usei `tartaruga.pendown()` para baixar a caneta após chegar ao ponto.
|
||||
|
||||
Agora, você pode especificar o ponto inicial do desenho do retângulo usando os parâmetros x e y!
|
||||
|
||||
Se tiver mais alguma dúvida ou precisar de ajuda, basta perguntar!
|
||||
|
||||
### 7. Ele solicitou também o parâmetro zoom, para ampliar ou reduzir.
|
||||
|
||||
Mais um desafio!
|
||||
|
||||
Aqui está a função atualizada com o parâmetro zoom:
|
||||
|
||||
```python
|
||||
import turtle
|
||||
|
||||
def desenha_retangulo(x, y, largura, altura, zoom=1):
|
||||
tartaruga = turtle.Turtle()
|
||||
tartaruga.speed(1) # Velocidade do desenho
|
||||
tartaruga.penup() # Levanta a caneta
|
||||
tartaruga.goto(x, y) # Vai para o ponto (x, y)
|
||||
tartaruga.pendown() # Baixa a caneta
|
||||
|
||||
# Aplica o zoom
|
||||
largura *= zoom
|
||||
altura *= zoom
|
||||
|
||||
for _ in range(2):
|
||||
tartaruga.forward(largura) # Desenha lado horizontal
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
tartaruga.forward(altura) # Desenha lado vertical
|
||||
tartaruga.right(90) # Vira 90 graus para direita
|
||||
|
||||
# Teste a função
|
||||
desenha_retangulo(-100, 50, 100, 50, zoom=2) # Retângulo grande
|
||||
desenha_retangulo(50, -50, 50, 100, zoom=0.5) # Retângulo pequeno
|
||||
|
||||
turtle.done() # Mantém a janela aberta
|
||||
```
|
||||
|
||||
Nessa versão:
|
||||
|
||||
- Adicionei o parâmetro `zoom` com valor padrão 1.
|
||||
- Multipliquei a `largura` e `altura` pelo valor do `zoom`.
|
||||
|
||||
Agora, você pode controlar o tamanho do retângulo usando o parâmetro `zoom`!
|
||||
|
||||
Observações:
|
||||
|
||||
- `zoom > 1`: amplia o retângulo.
|
||||
- `zoom < 1`: reduz o retângulo.
|
||||
- `zoom = 1`: mantém o tamanho original.
|
||||
|
||||
Se tiver mais alguma dúvida ou precisar de ajuda, basta perguntar!
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
Loading…
Reference in New Issue