AttributeError'int'对象在ubuntu的ipython中没有属性isdigit

时间:2017-01-18 02:55:12

标签: python ubuntu ipython

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'对象没有属性'isdigit'

我不知道如何修复此代码。我想,我应该在Ubuntu中安装一些应用程序,例如python-numpy ...
是吗?

1 个答案:

答案 0 :(得分:0)

您使用的是python2,因此您有两个函数inputraw_input。区别在于input在输入的字符串上调用eval。这将它从一个字符串转换为python在将其作为脚本输入或在REPL时将其解释为。

对于输入1,您将获得int值1.

所以你现在拥有的是一个int而不是一个字符串。它没有方法isdigit。如果您坚持使用python 2,则应该使用raw_input而不使用eval,因此始终返回一个字符串,该字符串具有isdigit方法。

对于python3 input执行raw_input使它成为py2,因此在这里正常工作。