Python выдает ошибку при вводе значений RGB в bgcolor () - PullRequest
0 голосов
/ 22 октября 2018

Мой код выдает ошибку, которая в итоге выглядит следующим образом:

"Встроенная функция для цвета в Turtle не может справиться с неравенством, используемым при определении значений цвета, используя обе встроенные функции:Python и целое число "

from turtle import *

pen = Turtle()
screen = Screen()
screen.colormode(255)
screen.bgcolor('white')

def pen_color(i):
    print("Input a number between 1 and 255 for red")
    red = input
    print("Input a number between 1 and 255 for green")
    green = input
    print("Input a number between 1 and 255 for blue")
    blue = input
    screen.bgcolor(red, green, blue)

pen_color(pen)
pen.exitonclick()

1 Ответ

0 голосов
/ 22 октября 2018

Есть несколько проблем с вашим кодом: как отмечает @PatrickHaugh:

print("Input a number between 1 and 255 for red")
red = input

не будет делать то, что вы хотите / ожидаете.Либо выполните:

print("Input a number between 1 and 255 for red")
red = input()

Или еще лучше:

red = input("Input a number between 1 and 255 for red")

Далее, это не будет работать, поскольку exitonclick() - это метод Screen, а не Turtle:

pen.exitonclick()

Наконец, причина, по которой вы сталкиваетесь с проблемами с цветом, заключается в том, что bgcolor() хочет получить числовой аргумент, и вы передали ему строки.Вам нужно сделать:

screen.bgcolor(int(red), int(green), int(blue))

Собрать все это вместе:

from turtle import Screen, Turtle

def pen_color():
    red = input("Input a number between 1 and 255 for red: ")
    green = input("Input a number between 1 and 255 for green: ")
    blue = input("Input a number between 1 and 255 for blue: ")

    screen.bgcolor(int(red), int(green), int(blue))

screen = Screen()
screen.colormode(255)

pen_color()

pen = Turtle()

screen.exitonclick()
...