python不可变数据类型(python 语义分析)
python变量的可变与不可变类型
(1)数字类型(int,float, bool,complex)
(2)字符串(str)
(3)元组(tuple)
(1)列表(list)
(2)字典(dict)
示例蔽答-不可拆激变类型:
结果:
示例-可变类型:
结果:
示例1:
结果:
示例2:
结果:
hash(object) 返回对象的哈希值。
(1)只能接受不可变类型的数据作为参数
(2)返回的是一个整数,是数据的唯一特征码(就像人的指纹一样)
(3)在python中,设置字典键值对时,会首先对key进行hash,用来决定如何在内存中保存字典的数据,以方便后续对字典进行宏御慧增删改查;
python中字符串数据类型是不可变数据类型
python中不可变数据类型和可变数据类型
在学习python过程中我们一定会遇到不可变数据类镇差型和可变数据类型。
1.名词解释
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型册禅。
可变数据州旅尘类型? ? :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
? ?总结:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变
Python怎么要求保持输入数据类型不变
可以使用Python内置的abs()函数来求一个数的绝对值,但是abs()函数的返回结果是一个浮点数,因此需要对结果进行类型转换。可以使用type()函数来获取神森输入数据的类型,然后根据类型进行类型转换。
以下是示例代码:
n = input("请输入一个数字:")
n_type = type(n)
n = abs(float(n)) if n_type == str else abs(n)
n = n_type(n) # 恢复原来的类型
print("该数字的绝对值为:", n)
代码中首先使用input()函游颂亩数获取输入数字,并使用type()函数获取输入数字的类型。然后根据输入数字的类型,使用float()函数或者直接对输入数字进行abs()函数计算。最后,将计算结果转换回原来的类型并输出。注意,在输入数字为字符串时,需要先使用float()函数将其转换为浮点数再进行计樱册算。
python中变量的引用、可变和不可变类型、局部变量和全局变量
变量的引用
变量和数据都是保存在内存中的
变量和数据是分开存储的
数据保存在内存中某个位置,通过地址来标记
变量保存的是数据的地址,通过地址可以找到数据在内存空间的位置
把变量保存数据地址的过程称为引用
变量枣雹的重新赋值修改的是变量中引用数据的内存地址
变量之间的赋值实际是引用的传递
函数参数的传递,本质也是引用的传递
函数的返回值本身也是引用的传递
可变和不可变类型
不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)
可变类型,内存中的数据可以被修改:列表list、字典dict
无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用
Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型
局部变量
1.在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)
2.在函数外部无法直接访问局部变量
3.不同的函数中可以定义同名的悄岩陵局部变量
4.局部变量的生命周期:从定义变量时开始,到函数运行结束
全局变量
1.在所有函数外边定义的变量就是全局变量
2.让所有函数都能访问到,可以作为函数通信的桥梁
3.一般情况下,为了和普通变量的启戚区别,需要加上g_或gl_前缀
4.全局变量一般放在所有函数的最上面
5.在函数内部修改全局变量,必须要加上global关键字,如果不加global只是定义了一个同名的局部变量
函数的多个返回值
Python中,值不能改变的数据被称为。
Python中,值不能改变的数芹皮据被称为不可变数据类型。
当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
关键字,改变元素值,内存地址发生改变,被称为数据内型嫌凳差不可变如string,元组,存储数据类型单一,不能同时存在两个数据类型,新增元素后粗哗,表容量,元素个数,元素存储区ID改变,典型的内置元素一体存储法。