add: Teste do Meta AI para ensino de programação em Python

This commit is contained in:
Jurandy Soares 2024-11-03 13:53:18 -03:00
parent 63e058bb21
commit be6f67115b
3 changed files with 381 additions and 0 deletions

View File

@ -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?
---
![Tela inicial do WhatsApp com Meta AI](meta-ai-whatsapp-01.jpg)
---
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.
---
![Conversa do WhatsApp com Meta AI](meta-ai-whatsapp-02.jpg)
---
## 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