2017-01-18 6 views
0
def input_base(): 
    print('please enter the number') 
    base = input("Number : ") 
    while not base.isdigit(): 
     print("It`s not integer") 
     base = input("R.Number : ") 
    return base 
    ... 

これは私のコードがあるとエラーがある:はAttributeError「int型のオブジェクトは、Ubuntuのでipythonでisdigit何の属性を持っていない

はAttributeError:「int型オブジェクトが属性 'isdigit'

を持っていません

このコードをどのように修正できるかわかりません。私は、Ubuntuの中にpython-numpyのようなアプリケーションをインストールしなければならないと思います...
そうですか?

+2

'input'の代わりに' raw_input'を使います。 – jordanm

+1

'isdigit'は文字列メソッドです。数値にはこのメソッドがありません。 – hpaulj

+0

http://stackoverflow.com/questions/4960208/python-2-7-getting-user-input-and-manipulating-as-string-without-quotations –

答えて

0

あなたはpython2を使用していますので、2つの関数inputraw_inputがあります。違いはinputが入力された文字列にevalを呼び出している点です。これは文字列からスクリプトやREPLに入力されたときのようにPythonが解釈するものに変わります。あなたはint型の値1

になるだろう1入力の場合

だから、あなたが今持っている値がint型ではなく文字列です。メソッド isdigitはありません。 Python 2を使用している場合は、代わりに raw_inputを使用する必要があります。 evalを実行しないため、常に isdigitメソッドを持つ文字列が返されます。

python3の場合input何を行うのですかraw_input py2なのでここで正しく動作します。

関連する問題