大家好,最近喜欢上写文章了,虽然有点累,幸福感却满满的,有粉丝在看,有粉丝在咨询,有粉丝在索取资料。。。,每天都满满的收获和快乐。同时发现自己的编程水平也在快速的提升,做了多年的IT工作,从来没这么仔细地总结过,发现了好多新的知识点。更加坚信:“帮助别人就是在帮助自己”!好,开始今天的内容。在 Python 中,所有数据类型都是类,类的实例就是对象,这是 Python 面向对象设计的核心特性。这种设计让 Python 具有高度的一致性和灵活性。那么,当把数据赋值给一个变量时,变量在计算机内存中又是如何存储的呢?又引出另一个概念:变量和字面量。# 给变量a赋值a=343print(type(a)) # <class 'int'>s = 'hello'print(type(s)) # <class 'str'>lst=[1,2,3]print(type(lst)) # <class 'list'>
字面量的定义:在代码中,被写下来在代码中的固定值。如:343,'hello',[1,2,3]等都是字面量。当给一个变量a声明赋值后,系统会在内存中划出一块独立空间(内存中的数据),用来存储变量a的引用值343,而变量a存储的是引用值的内存地址,1445785820848,并不是存储字面量的值343。如下图:大家有没有发现一个问题?变量【lst】可以存储多个内存地址,是不是变量【a】和【s】也可以存储多个内存地址呢?数字类型、字符类型、元组类类型为不可变数据类型。怎么个不可变呢?请看下图:当给变量【a】重新赋值为【345】时,又独立开辟了一个空间,变量【a】就指向了内存地址为【1882695926032】的数据值【345】,原数据字面量【343】没有改变,而是被系统自动释放内存。这就是所谓的不可变数据类型。字符类型、元组类型也是一样的道理。# 给变量lst重新赋值lst = [1,2,3]lst.append(4)print(type(lst)) # <class 'list'>
当变量【lst】追加一个元素【4】时,系统同样划出一个空间存储数据【4】,同时变量【lst】又指向了一个内存地址,而原来的数据【1,2,3】不会被系统释放。从字面量上看数据发生了变化,这种类型称为可变数据类型。同理,字典、集合也是同样的道理。小结:从上面的内容可以看出结论:变量无类型,只用数据才有类型。我们常说的整数变量、字符串变量都是“昙花一现”。# 一般拼接方法data = ["Python", 3.9, "Version", True]result = ''for lst in data: result += str(lst)print(result) # Python3.9VersionTrue # ''.join()方法拼接 result = " ".join(str(x) for x in data) print(result) # "Python 3.9 Version True"# 可迭代对象都支持result = "-".join(str(x) for x in range(4)) print(result) # "0-1-2-3"
从上面代码可以看出,''.join()方法拼接代码简洁、支持多类型数据拼接、连接符灵活等优势。5. 误认为元组完全不可变,元组里的可变元素是可以改变的元组既是不可变数据类型,又是容器类数据类型,元组可以包含多种数据类型。# 定义一个元组tuptup=([1,2],{'name':'Alice'},'hello')tup[0].append(3) # 元组里的可变元素是可以改变的。print(tup) # 输出:([1, 2, 3], {'name': 'Alice'}, 'hello')
6. 字典keys()、values()、items()方法的遍历# 定义一个字典dict = {'a':1,'b':2,'c':3,'d':4}for key in dict.keys(): # 遍历键 print(key,end=' ') # a b c d for value in dict.values(): # 遍历的值 print(value,end=' ') # 1 2 3 4 for key ,value in dict.items(): # 遍历键值对 print(key,value,end='') # 输出:a 1 b 2 c 3 d 4
在遍历字典时,一定要注意这三个方法用法,避免混淆使用。# 1. 创建空集合的语法empty_dict = {} # 这是字典empty_set = set() # 这才是集合
1.《零基础入门学Python视频教程+案例应用》一套,让你快速掌握Python基础要点。2. 《Python方面的数据分析PDF电子书》10多册,保证你学数据分析,不用再去买教程了。