2017-09-14 4 views
0

同じ行に2つの値を入力する必要があり、スペースで区切られています。 出力はので、私はコードpython2.7同じ行に2つの入力を終了する(スペースで区切って)

a ,b = map(float, raw_input().split()) 
print ('input is '), a ,(' and '), b 

この作品 を使用しかし、私はときに、ユーザの入力直後にスクリプトを終了したいこの

123 456

input is 123 and 456

ようないくつかのものになるように「-1」の 例えば、ユーザーがaの値として-1を入力すると、プログラムはユーザーからの入力の読み取りを中止し、「間違った入力」を表示します。

wrong input

wh私が '-1' の入力に試してみて、プレスが

'を入力して' アンは

ValueError: need more than 1 value to unpack

は、それは私が使用してはならない 'マップ(フロート、raw_input()。スプリット())' を意味していると言われていますか?

答えて

0

だけのリストにあなたのパラメータを配置し、それらを処理:

params = map(float, raw_input().split()) 

のparams [0]が-1または配列の長さが予想よりも異なっている場合は、その後、確認することができます。あなたのチェックの後、あなたが割り当てることができます。

a,b=params 
0

を、Bに保管しようとしたときには、ただ一つの入力(-1)を入力すると、pytjonはトレースバックをスローします。

a、bに格納する代わりに、単にリストに格納します。

あなたは、マップ機能を使用したい場合は、以下を使用します。有効な入力の

  1. ケース:余分

    >>> a = map(float, raw_input().split()) 
    -1 
    >>> if a[0] == -1 : 
    ...  print 'Wrong Input' 
    ... else : 
    ...  print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]]) 
    ... 
    Wrong Input 
    
  2. 何か入力 - 無効の

    >>> a = map(float, raw_input().split()) 
    123 456 
    >>> if a[0] == -1 : 
    ...  print 'Wrong Input' 
    ... else : 
    ...  print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]]) 
    ... 
    input is 123.0 and 456.0 
    
  3. ケース(有効) -

    >>> a = map(float, raw_input().split()) 
    12 34 56 78 
    >>> if a[0] == -1 : 
    ...  print 'Wrong Input' 
    ... else : 
    ...  print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]]) 
    ... 
    input is 12.0 and 34.0 and 56.0 and 78.0 
    
  4. 何か余計な(無効) -

    >>> a = map(float, raw_input().split()) 
    -1 234 
    >>> if a[0] == -1 : 
    ...  print 'Wrong Input' 
    ... else : 
    ...  print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]]) 
    ... 
    Wrong Input 
    
関連する問題