Получение пользовательского ввода для функции для изменения цветов

#python #python-turtle

#python #python-черепаха

Вопрос:

Я хочу написать функцию для создания круга, но пусть пользователь выбирает значения RGB для этого круга. Я пытался использовать функцию ввода python и текстовый ввод turtle, но, похоже, ни один из них не работает. Хотя, возможно, проблема не в этом. Помощь очень ценится.

 import turtle
# my turtle
t = turtle.Turtle()

red = int(turtle.textinput("Color", "Choose a value between 0-255:"))
#green = int(input("choose a second value between 0 -255."))
#blue = int(input("choose a third value between 0 -255."))

# my colorful circle function
def colors(r,g,b):
  t.color(r,g,b)
  t.fillcolor(r,g,b)
  t.begin_fill()
  t.circle(100)
  t.end_fill()

green = 0
blue = 0

# calling the function
colors(red,green,blue)
  

Ответ №1:

Основная проблема, которую я вижу в вашем коде, заключается в том, что вы используете значения RGB от 0 до 255, тогда как turtle.py который поставляется с Python, использует значения RGB 0.0 — 1.0, если вы не укажете иное, используя colormode() :

 from turtle import Screen, Turtle

def colors(r, g, b):
    turtle.color(r, g, b)
    turtle.begin_fill()
    turtle.circle(100)
    turtle.end_fill()

screen = Screen()
screen.colormode(255)

red = int(screen.numinput("Red", "Choose a value between 0-255", minval=0, maxval=255))
green = int(screen.numinput("Green", "Choose a second value between 0-255", minval=0, maxval=255))
blue = int(screen.numinput("Blue", "Choose a third value between 0-255", minval=0, maxval=255))

turtle = Turtle()

colors(red, green, blue)

screen.exitonclick()
  

Поскольку вам нужен числовой ввод, я переключился с textinput() на numinput() . Тем не менее, я сохранил int() преобразование в виде numinput() возвращаемых float значений и желаемых функций цвета int .

Некоторые нестандартные реализации turtle для Python предполагают значения RGB от 0 до 255, но, исходя из вашего использования textinput() , я предполагаю, что вы используете стандартную черепаху Python 3. Если нет, укажите в своем вопросе, что (веб-сайт) Python, который вы используете.