我正在创建一个颜色数据库。对于这个数据库,我希望用户能够添加自己的颜色。最初,我使用list.append完成了这个。我希望用户通过添加阴影颜色及其RGB值来添加颜色。然后将该数据传递给我将其添加到数据库的函数。我现在试图通过确保RGB值在0到255之间来改变它。如果数字不在0到255之间,它应该打印出值不正确,并且它们必须添加一个新数字。这就是我到目前为止所做的:
def addColour():
values = []
values.append (input("What shade is the colour?\n"))
red = values.append(int(input("What is its red value?\n")))
while red > 255 or red < 0:
print("That is an incorrect figure. It must be between 255 and 0")
values.append(input("What is its green value?\n"))
values.append(input("What is its blue value?\n"))
insertData(values)
然后我将用户的输入添加到数据库中:(仅供参考)
def insertData(values):
with sqlite3.connect("colours.db") as db:
cursor = db.cursor()
sql = "insert into Colours (Shade, Red, Green, Blue) values (?, ?, ?, ?)"
cursor.execute(sql,values)
db.commit()
question = input("Do you want to add another colour?")
if question.lower() == "y":
addColour()
else:
mainMenu()
我得到的类型错误也列在下面:
TypeError: '>' not supported between instances of 'NoneType' and 'int'
答案 0 :(得分:1)
我如何在用户可以输入的内容上实现整数边界?
在循环中,将输入值分配给变量,而不是将其直接放入列表中。检查它是否在正确的范围内。如果是,则结束循环。否则,打印一条消息并允许循环重新启动。
当循环完成,并且您有一个可接受的值,然后,您将它放在列表中。
E.g。
while True:
red = int(input('What is its red value?'))
if 0<=red<=255:
break
print('The value must be between 0 and 255.')
values.append(red)