下面可能做你想要的東西 - 還沒有在前面的討論中被提及的一個問題是turtle.colormode()
影響你是否希望整數或浮點數輸入:
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()
用法
% 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)
我只是想讓你知道,我現在已經解決了這個問題。我通過將RGB值分成三個不同的int來實現這一點,並要求用戶輸入三個不同的值。 –