如何让python识别RGB输入?

时间:2017-02-14 19:34:00

标签: python turtle-graphics python-3.6

我的目标是允许用户输入两个变量的RGB值,但我不知道如何让Python预先识别带有标记的RGB值,例如使用int和{{1标签。我的代码示例如下所示。

float

有没有人有解决方案?

BTW - 我正在使用Turtle Graphics,这有什么影响吗?

3 个答案:

答案 0 :(得分:0)

让用户输入以逗号分隔的值:

R, G, B = map(float, input("Enter comma-separated: ").split(','))

因此,当一个人输入2.3, 6.7, 34.8时,RGB的值将是从输入中提取的浮点数。

你也可以这样做:

shape_fill = map(...)
shape_pen = map(...)

然后使用R, G, B = shape_something 解压浮点数。

答案 1 :(得分:0)

以下可能会执行您想要的操作 - 前一个讨论中未提及的问题是turtle.colormode(),它会影响您是否需要int或float输入:

from turtle import Turtle, Screen

def input_rgb(prompt=""):
    triple = None

    text = prompt + "Enter comma-separated RGB values: "

    while True:
        try:
            triple_string = input(text).split(',', maxsplit=2)

            if len(triple_string) != 3:
                continue

            if isinstance(screen.colormode(), float):
                triple = map(float, triple_string)
            else:
                triple = map(int, triple_string)

        except ValueError:
            continue

        break

    return triple

screen = Screen()

yertle = Turtle(shape="turtle")

yertle.fillcolor(input_rgb("Fill color? "))
yertle.pencolor(input_rgb("Outline color? "))

yertle.begin_fill()
yertle.circle(100)
yertle.end_fill()

screen.exitonclick()

USAGE

% python3 test.py
Fill color? Enter comma-separated RGB values: 1.0,0.0,0.0
Outline color? Enter comma-separated RGB values: 0.0,0.0,1.0

输出

enter image description here

下一个挑战(对你而言)是将input_rgb()转换为使用乌龟图形输入例程而不是input()

turtle.textinput(title, prompt)
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)

答案 2 :(得分:-1)

我相信如果您使用龟图形,它确实会改变输入法 尝试查看at this website ,看看是否有帮助。