2016-03-23 19 views
-1

私はMinValueとMaxValueを考慮し、エラーメッセージを出力してからループを続行しようとしています。関数エラーまたはパラメータにエラーがありますか?

入力を設定されたパラメータでチェックし、入力がパラメータの両側にある場合、エラーメッセージを出力してからループを続行する必要があります。しかし、If関数をスキップし、 "Number is 'x' 'という文字を表示しているようです。

def inputInt(prompt, errorMessage = 'Invalid input - Try again.', minValue = 3 , maxValue = None): 
while True: 
    value = input('Enter a value:') 
    try:    
     return int(value) 
    except ValueError: 
     print(errorMessage) 

    if (minValue != 'None' and value < minValue): 
      print(errorMessage = 'Value below Minimum') 

    if (maxValue != 'None' and value > maxValue): 
      print(errorMessage = 'Value above Maximum') 

    value = inputInt('Enter an int: ') 
    print('Value is', value) 

    def inputFloat(prompt, errorMessage = 'Invalid input - Try again.', minValue ='None', maxValue = 'None'): 
while True: 
    value = input('Enter a value:') 
    try:    
     return float(value) 
    except ValueError: 
     print(errorMessage) 

    if (minValue != 'None' and int(value) < minValue): 
     print(errorMessage = 'Value below Minimum') 


    if (maxValue != 'None' and int(value) < maxValue): 
     print(errorMessage = 'Value above Maximum') 

    value = inputFloat('Enter an int: ') 
    print('Value is', value) 
+0

「return文」は何を理解していますか? –

+0

ああ、こんにちはkurt ...これは[私の答え](http://stackoverflow.com/a/36181405/5827215)からコードですので、私はすでにあなたが 'return'を理解していないことを知っている... –

+0

私はなぜあなたは 'print'(' errorMessage = 'Value ...')で '='を使用しているのでしょうか?代わりにコンマを入れたいと思いますが、 : '' None ''の代わりに' 'None''をチェックしたいかもしれません。 –

答えて

0

returnそれが呼ばれていたところ、これまでに機能し、「リターン」を終了します。

def f(): 
    return 1 
    raise RuntimeError("Function continued after return?!?!") 
print(f()) #will not raise the error, prints 1 

ので、あなたが変数としてそれを格納する必要が変換した後、余分なものをやって、その後最後にそれを返します:

while True: 
    value = input(...) #you still probably want to use the prompt variable here 
    try: 
     value = float(value) 
    except ValueError: 
     print(errorMessage) 
     continue #continue with loop, go back to top of loop 

    #other code here 

    return value 
関連する問題