- Apresente três opções para o usuário escolher, numeradas de 1 a 3 . Use a função input () para obter a escolha do usuário. Usando uma condicional, execute a função (ou rotina) ou a sequência de instruções correspondente à opção desejada. Por exemplo, uma opção pode ser desenhar um quadrado, outra desenhar um círculo, e a terceira desenhar um polígono.
Passo 1
O enunciado pede que eu faça um programa que:
- Apresente três opções numeradas de 1 a 3 para o usuário escolher.
- Use a função
input()para obter a escolha do usuário. - Use uma condicional para executar a rotina correspondente à opção escolhida.
O enunciado dá como exemplo opções do tipo: desenhar um quadrado, desenhar um círculo, desenhar um polígono. Vou usar exatamente essas três opções no programa. Não vou te perguntar nada — farei o programa completo e explicarei passo a passo como ele funciona.
Passo 2
Por que vou escolher Python com o módulo
turtle para desenhar?- É um método simples e visual: você vê o resultado (desenho) sem instalar bibliotecas externas.
- Usa apenas conceitos básicos pedida pela questão:
input()e condicional (if/elif/else). - É prático para estudar: dá pra entender função por função e cada comando tem efeito direto no desenho.
Então o plano: mostrar um menu, ler a opção cominput(), converter para inteiro, e usarif/elif/elsepara chamar a função de desenho adequada.
Passo 3
Entendendo
input() e conversão:input(prompt)mostrapromptao usuário e retorna uma string (texto).- Se queremos tratar escolhas numéricas (como
1,2,3), precisamos converter a string para inteiro comint(...). - Conversão pode falhar (por exemplo, se o usuário digitar “abc”). Para isso, usamos
try/exceptpara capturarValueErrore tratar a entrada inválida.
Exemplo rápido:
s = input("Digite um número: ")
try:
n = int(s)
except ValueError:
print("Entrada inválida")
No programa, farei isso ao ler a escolha do menu e também ao ler tamanhos/raios.
Passo 4
Entendendo condicionais (
if / elif / else):- Estrutura básica:
if escolha == 1:
# faz algo
elif escolha == 2:
# faz outra coisa
else:
# alternativa padrão
==compara valores (verifica igualdade). Não confundir com=que é atribuição.- Vou usar
ifpara verificar se a escolha é1,elifpara2e3, eelsepara tratar opções desconhecidas.
Passo 5
Dividindo em funções (boa prática e importante para prova):
- Funções deixam o código organizado e permitem reuso.
- Vou criar três funções de desenho:
draw_square(turtle_obj, size)— desenha um quadrado de ladosize.draw_circle(turtle_obj, radius)— desenha um círculo de raioradius.draw_polygon(turtle_obj, sides, size)— desenha um polígono comsideslados e lado de comprimentosize.
Explicando cada parâmetro:
turtle_objé o objetoTurtle()que fará os movimentos (evita usar variáveis globais direto).sizeeradiussão números inteiros que controlam o tamanho do desenho.sidesé o número de lados do polígono (deve ser inteiro >= 3).
Passo 6
Noções básicas do
turtle que usarei:import turtleimporta o módulo.screen = turtle.Screen()cria a janela.pen = turtle.Turtle()cria a “caneta” que desenha.pen.forward(x)move a caneta para frentexpixels.pen.right(angle)gira a caneta para a direitaanglegraus.pen.circle(r)desenha um círculo de raior.screen.exitonclick()mantém a janela aberta até o usuário clicar — útil para ver o desenho.
No polígono regular, cada ângulo de giro é360 / sidesgraus (cálculo simples: completa-se uma volta).
Passo 7
Como será o fluxo do programa ( passo a passo executivo ):
- Mostrar um menu com as três opções (
1,2,3) usandoinput(). - Tentar converter a entrada para
int. Se inválida, imprimir mensagem e encerrar (ou poderia repetir — optei por encerrar para manter simples e claro). - Se escolha for
1: pedir o tamanho do lado e desenhar um quadrado chamandodraw_square. - Se escolha for
2: pedir raio e desenhar o círculo chamandodraw_circle. - Se escolha for
3: pedir número de lados e tamanho do lado; validarsides >= 3; chamardraw_polygon. - Se escolha for outra coisa, informar que a opção é desconhecida.
- Ao final, usar
screen.exitonclick()para manter a janela até o clique do usuário.
Passo 8
Dicas para a prova (como escrever um código semelhante rápido):
- Não esqueça de converter o
input()paraintse for comparar números. - Sempre trate entradas inválidas com
try/exceptou verificandostr.isdigit()quando apropriado. - Separe funcionalidades em funções curtas — facilita a leitura e a correção.
- Para desenhos, lembre que para um polígono regular o ângulo de rotação é
360 / n. - No enunciado da prova pode ser suficiente só escrever o pseudocódigo ou um esqueleto; seja claro no menu, conversão e condicionais.
Passo 9
Vou entregar agora o programa final pronto para execução. Ele usa
input() para receber a escolha e usa condicionais para executar a rotina escolhida. Se quiser rodar, copie o código para um arquivo .py e execute em um ambiente que suporte turtle (IDLE, terminal com GUI, etc.). O próximo bloco contém somente o código exigido pelo enunciado.Resposta
import turtle
def draw_square(turtle_obj, size):
for _ in range(4):
turtle_obj.forward(size)
turtle_obj.right(90)
for _ in range(4):
turtle_obj.forward(size)
turtle_obj.right(90)
def draw_circle(turtle_obj, radius):
turtle_obj.circle(radius)
turtle_obj.circle(radius)
def draw_polygon(turtle_obj, sides, size):
angle = 360 / sides
for _ in range(sides):
turtle_obj.forward(size)
turtle_obj.right(angle)
angle = 360 / sides
for _ in range(sides):
turtle_obj.forward(size)
turtle_obj.right(angle)
def main():
screen = turtle.Screen()
pen = turtle.Turtle()
pen.speed(3)
screen = turtle.Screen()
pen = turtle.Turtle()
pen.speed(3)
menu = "Escolha uma opção:\n1 - Quadrado\n2 - Círculo\n3 - Polígono\nDigite o número da opção: "
choice_str = input(menu)
try:
choice = int(choice_str)
except ValueError:
print("Entrada inválida: digite 1, 2 ou 3.")
screen.bye()
return
if choice == 1:
size_str = input("Tamanho do lado (por exemplo, 100): ")
try:
size = int(size_str)
except ValueError:
print("Entrada inválida para tamanho. Usando 100.")
size = 100
draw_square(pen, size)
elif choice == 2:
r_str = input("Raio do círculo (por exemplo, 50): ")
try:
r = int(r_str)
except ValueError:
print("Entrada inválida para raio. Usando 50.")
r = 50
draw_circle(pen, r)
elif choice == 3:
sides_str = input("Número de lados (inteiro >= 3, por exemplo, 5): ")
size_str = input("Tamanho do lado (por exemplo, 80): ")
try:
sides = int(sides_str)
size = int(size_str)
except ValueError:
print("Entrada inválida. Usando 5 lados e tamanho 80.")
sides = 5
size = 80
if sides < 3:
print("Um polígono precisa ter pelo menos 3 lados.")
else:
draw_polygon(pen, sides, size)
else:
print("Opção desconhecida. Digite 1, 2 ou 3.")
screen.exitonclick()
if name == “main”:
main()
main()