python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python内建类型

python内建类型与标准类型

作者:芒果在努力​​​​​​​

这篇文章主要介绍了python内建类型与标准类型,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

全可以访问相同的对象, 因此我们讲 这种变量名也叫对象的 "引用".

验证1:

a = 2
b = 3
print(id(a),id(b))  #140734889681584 140734889681616
b = 2
print(id(b))    #140734889681584

验证2:

b = 3
print(id(b))    #140734889681616
b +=1
print(id(b))    #140734889681648

相加其实是创建一个新的对象,然后把这个标签b移到这个新的对象上

思考: 为什么Python的变量是这样的? 和C/C++差异这么大捏?

Python的GC机制, 是这样的设定的基础.

理解对象和类型

关于不可变类型和可变类型

s = "hehe"
s[0] = 'a'; #error 报错 TypeError: 'str' object does not support item assignment

s = 'a'+s[1:]   #只能重新创建
print(s)    #aehe
#原来的hehe对象已经销毁,s贴在了aehe这个对象的身上

列表和字典都是可变对象:

关于动态静态强弱类型

类似的, C语言是一种静态弱类型语言. Java的类型检查更为严格, 一般认为是静态强类型, 而Javascript则是动态弱类型

如:

int a = 10; long b = 20; a = b ->C++可以 java不可

int a = 10; bool b = false; a = b ->C++可以,把false当成0 java不可

动态类型:小规模下更好,使用灵活

大规模常用静态类型,否则多人协作容易有歧义

但是类型:越强越好

标准类型

注意:如果想要比较两个浮点数是否相同,不能直接比较,因为会有精度损失,要做差比较

其它内建类型

类型的类型

前面我们说, 类型也是对象

print(type(type(100)))  #<class 'type'>  
print(id(type(100)))    #140734889206240

None ->空类型

Python有一个特殊的类型, 称为NoneType. 这个类型只有一个对象, 叫做None

print(type(None))   #<class 'NoneType'>
def func():
    print("haha")
ret = func()    #打印haha     函数没有返回值却接收了,就是None
print(ret)  #打印None,

内建类型的布尔值

所有的标准对象, 均可以用于布尔测试(放到if条件中).

下列对象的布尔值是False:

if "":
    print("True")
else:
    print("False")
#打印:False

其他情况下, 这些内建对象的布尔值就是True.

到此这篇关于python内建类型与标准类型的文章就介绍到这了,更多相关python内建类型 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文