Python中int和int()有什么区别

时间:2019-01-02 21:31:47

标签: python input

我只是想了解int和int()之间的区别。 这是我的代码:

def function(define):
    if type(define) == int:
        return 'sorry'
    else:
        return len(define)

print(function(10))

它返回:抱歉

File "exercise2.py", line 14, in <module>
    print(function(10))
  File "exercise2.py", line 12, in function
    return len(define)
TypeError: object of type 'int' has no len()

3 个答案:

答案 0 :(得分:2)

int-数字类型

int()-一种方法,可从任何数字或字符串返回整数对象

两者都不是序列/集合,因此它们没有长度,因此您不能在它们上使用len()

检查变量是否为int的更好方法是:

def function(define):
    if isinstance(define, int):
        return 'sorry'
    else:
        return len(define)

print(function(10))

答案 1 :(得分:1)

要回答您的问题,从技术上讲int是一类,但您也可以将其视为其他人指出的数据类型。由于它是the documentationint()将为__call__类调用int方法。出于这个问题的考虑,您可以将其视为使用整数的字符串表示形式并返回int的构造函数。

为清楚起见,这是Python REPL中的示例。

Python 3.7.0 (default, Sep 22 2018, 18:29:00)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> int
<class 'int'>
>>> int('1')
1
>>> int('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> int.__call__('1')
1
>>> isinstance(int('1'), int)
True
>>> type(1) is int
True

答案 2 :(得分:0)

int用于执行确定变量类型的操作(如您在示例中所做的那样)。 int()用于将非int变量转换为int(即“ 45”变为45)。我不太确定您对本示例的理解。一切似乎都正常运行,然后您就粘贴了错误而没有任何解释。