2015-03-16 2 views
0

Я пытаюсь написать код, что, когда пользователь вводит форму черепаха втягивает его, это то, что я до сих пор, но он просто рисует пятиугольника все времяPython пользователь черепаха вход

import turtle 
turtle.shape('turtle') 

def triangle(): 
    for i in range(3): 
     turtle.forward(50) 
     turtle.right(360/3) 


def square(): 
    for i in range(4): 
     turtle.forward(50) 
     turtle.right(360/4) 

def pentagon(): 
    for i in range(5): 
     turtle.forward(50) 
     turtle.right(360/5) 


answer = input('pick a shape.. triangle, square or pentagon') 
if answer ==('triangle'): 
    triangle() 

elif answer == ('square'): 
    square() 

elif answer == ('pentagon'): 
    pentagon() 

else: 
    print ('wrong input') 
+0

[тег: черепаха] - это язык RDF. Использовать [tag: turtle-graphics] для таких вопросов –

+1

Формы нарисованы на моей машине. Вы уверены, что это код, который вы фактически используете? – Kevin

+0

def не работает на моем, нет mater какая форма я ввожу его просто говорит неправильный ввод – Shezza

ответ

0

Эй Вы можете попробовать ниже код:

import turtle 
def triangle(): 
    for i in range(3): 
     turtle.forward(50) 
     turtle.right(360/3) 


def square(): 
    for i in range(4): 
     turtle.forward(50) 
     turtle.right(360/4) 

def pentagon(): 
    for i in range(5): 
     turtle.forward(50) 
     turtle.right(360/5) 

turtle.shape('turtle') 
answer = raw_input('pick a shape.. triangle, square or pentagon: ') 

print(answer) 

if answer ==('triangle'): 
    triangle() 

elif answer == ('square'): 
    square() 

elif answer == ('pentagon'): 
    pentagon() 

else: 
    print ('wrong input') 
0

Я бы отделить ваши данные от вашего кода немного больше и идти с чем-то вроде этого:

from turtle import Turtle, Screen 

DISTANCE = 100 

def polygon(turtle, sides): 
    for _ in range(sides): 
     turtle.forward(DISTANCE) 
     turtle.right(360/sides) 

shapes = { \ 
    'triangle': lambda turtle: polygon(turtle, 3), \ 
    'square': lambda turtle: polygon(turtle, 4), \ 
    'pentagon': lambda turtle: polygon(turtle, 5), \ 
} 

shape = input('Pick a shape: ' + ", ".join(shapes) + ': ') 

if shape in shapes: 

    yertle = Turtle(shape='turtle') 

    shapes[shape](yertle) 

    screen = Screen() 
    screen.exitonclick() 

else: 
    print('Bad input!') 

Если вам неудобно с lambda заявления, вы можете просто сделать:

def triangle(turtle): 
    polygon(turtle, 3) 
... 
shapes = { \ 
    'triangle': triangle, 
    ... 
} 

для каждой формы вы хотите реализовать.