2017-05-20 8 views
-1

私は色データベースを作成しています。このデータベースでは、ユーザーが自分の色を追加できるようにしたいと考えています。もともと、私はこれをlist.appendを使って行っていました。私は、ユーザーが陰影の色とそのRGB値を入れて、色を追加するようにします。このデータは、データベースに追加する関数に渡されます。私は今、RGB値が0から255の間であることを保証することによってこれを変更しようとしています。数字が0から255の間でない場合は、値が正しくないことを印刷し、新しい図形を追加する必要があります。これは私がこれまで持っているものです。リスト入力に整数境界を追加していますか? Python3

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

'list.append'は' None'を返します。また、あなたのコードが実際にそこに入ると、そこには無限のループがあります。 – khelwood

+0

ユーザーが入力できる整数境界を実装するにはどうすればよいですか? –

答えて

1

は、どのように私は何をユーザーが入力できるの整数境界の実装に行くか

は、ループでは、まっすぐにあなたのリストにそれを置くのではなく、変数に入力値を割り当てます。それが正しい範囲にあることを確認してください。そうであれば、ループを終了します。それ以外の場合は、メッセージを出力し、ループを再開させます。

ループが完了し、許容値がある場合、、次にをリストに入れます。

など。

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) 
+0

ありがとう、素敵な一日を! –

関連する問題