我的目标是允许用户输入两个变量的RGB值,但我不知道如何让Python预先识别带有标记的RGB值,例如使用int
和{{1标签。我的代码示例如下所示。
float
有没有人有解决方案?
BTW - 我正在使用Turtle Graphics,这有什么影响吗?
答案 0 :(得分:0)
让用户输入以逗号分隔的值:
R, G, B = map(float, input("Enter comma-separated: ").split(','))
因此,当一个人输入2.3, 6.7, 34.8
时,R
,G
和B
的值将是从输入中提取的浮点数。
你也可以这样做:
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
输出
下一个挑战(对你而言)是将input_rgb()
转换为使用乌龟图形输入例程而不是input()
:
turtle.textinput(title, prompt)
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
答案 2 :(得分:-1)
我相信如果您使用龟图形,它确实会改变输入法 尝试查看at this website ,看看是否有帮助。