将整数边界添加到列表输入? Python3

时间:2017-05-20 07:47:56

标签: list python-3.x integer

我正在创建一个颜色数据库。对于这个数据库,我希望用户能够添加自己的颜色。最初,我使用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'

1 个答案:

答案 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)