2017-09-26 8 views
3
getMin, getMax = int(input("Enter a range (min,max): ")); 

上記のためのユーザからの入力を取ることは、私が実装しようとしているコードですが、それはのPython 2.7は、2つの独立変数

int() argument must be a string or a number, not 'tuple' 

は基本的に、私は後.split(,)を入力しようとしている...と言って私にエラーを与えます入力ステートメントが、私は同じエラーが発生します。ユーザーが入力として1,10に入ると私はあなたがPythonの2にしているのでgetMin = 1getMax = 10

+1

可能な複製を分離[方法ユーザから整数タプルを入力する?](https://stackoverflow.com/questions/2233917/how-to-input-an-integer-tuple-from-user) –

答えて

0

input機能(doc hereを参照)提供された入力を評価しようとします。このような何かを試してみてください。たとえば、あなたの名前をAMcCauley13とすると、soという名前の変数が検索されます。 1,10のような値を入力すると、(1,10)のタプルで評価され、文字列が必要な関数が破損します。単純

getMin = int(raw_input("min range: ")) 
getMax = int(raw_input("max range: ")) 

かは、あなたが入力になりたいと仮定すると、balki suggested in the meanwhile

+0

ありがとう!私は最初にこのようにしましたが、教授がそれを受け入れるかどうかはわかりませんでした。 – AMcCauley13

+0

'input'はまったく使用しないでください。' __import __( 'os')などの文字列を扱う必要はありません。system( 'cat/etc/passwd') ' – wim

+0

それは良い点です。割り当て以外の何かのためにそれを使用するかもしれない他人を誤解させるのを避けるためにそれを修正する。 – Batsu

1

は、あなたがraw_input代わりのinputを使用する必要がありますしたいです。

from ast import literal_eval 

prompt = "Enter a range (min,max): " 
getMin = getMax = None 

while {type(getMin), type(getMax)} != {int}: 
    try: 
     getMin, getMax = literal_eval(raw_input(prompt)) 
    except (ValueError, TypeError, SyntaxError): 
     pass # ask again... 
+0

hello downvoter?何か言いたいことがありますか? – wim

1

私見としてクリーンなアプローチをsplitmapを組み合わせることで

てみコンマの

>>> prompt = "Enter a range (min,max): " 
>>> while True: 
...  try: 
...    getMin, getMax = map(int, raw_input(prompt).split(',')) 
...    break 
...  except (ValueError, TypeError): 
...    pass 
... 
Enter a range (min,max): skfj slfjd 
Enter a range (min,max): 232,23123,213 
Enter a range (min,max): 12, 432 
>>> getMin 
12 
>>> getMax 
432 
関連する問題