2017-04-30 46 views
-1

TypeError: '<' not supported between instances of 'NoneType' and 'int'Python - TypeError - TypeError: '<'は 'NoneType'と 'int'のインスタンス間でサポートされていません

私はスタックオーバーフローで答えを探しましたが、int(input(prompt) )、それは私が

def main():  
while True: 
     vPopSize = validinput("Population Size: ") 
     if vPopSize < 4: 
      print("Value too small, should be > 3") 
      continue 
     else: 
      break 

def validinput(prompt): 
while True: 
    try: 
     vPopSize = int(input(prompt)) 
    except ValueError: 
     print("Invalid Entry - try again") 
     continue 
    else: 
     break 
+1

があるかどうかを確認: ' – abccd

+0

問題が入力されていません。 Pythonは、有効な入力関数から暗黙のうちに 'None None'を返します。そして、ここに2つの異なる 'vPopSize'変数があります。 –

+0

私は' validinput'ブール値 –

答えて

0
Try: 
    def validinput(prompt): 
    print(prompt) # this one is new!! 
    while True: 
     try: 
      vPopSize = int(input(prompt)) 
     except ValueError: 
      print("Invalid Entry - try again") 
      continue 
     else: 
      break 

をやっていると関数が呼び出されたときに、あなたが気づくものです。

問題は、validinput()は何も返しません。あなたはそれ以外の場合は、暗黙のNoneを返し、数あなたが入力し得るためにあなたの関数内でリターンを追加する必要がvPopSize

+0

を編集してくれたでしょう! –

1

を返却する必要があると思います

def validinput(prompt): 
    while True: 
     try: 
      return int(input(prompt)) 
      # there is no need to use another variable here, just return the conversion, 
      # if it fail it will try again because it is inside this infinite loop 
     except ValueError: 
      print("Invalid Entry - try again") 


def main():  
    while True: 
     vPopSize = validinput("Population Size: ") 
     if vPopSize < 4: 
      print("Value too small, should be > 3") 
      continue 
     else: 
      break 

やコメントで述べたように、また、変数ValidInput作りますそれが適切な値あなたは ``追加デフ変数ValidInput(プロンプト)でvPopSize`を返す必要があります

def validinput(prompt): 
    while True: 
     try: 
      value = int(input(prompt)) 
      if value > 3: 
       return value 
      else: 
       print("Value too small, should be > 3") 
     except ValueError: 
      print("Invalid Entry - try again") 


def main():  
    vPopSize = validinput("Population Size: ") 
    # do stuff with vPopSize 
+0

ありがとうございました!私は戻ってきたことを暗に考えて自分自身を駄目だと思う! Daft本当に、しかしそこに行く...もう一度ありがとう。 – Dino3GL

関連する問題