标签:bool 不同的 oat hex head 可变 enter 开发人员 第一个
在Python中,存储一个数据,需要一个叫做变量的东西。
程序就是用来处理数据的,而变量就是用来存储数据的。
1 num1 = 100 # num1就是一个变量,好比一个菜篮子 2 3 num2 = 87 # num2也是一个变量 4 5 result = num1 + num2 # 把num1和num2这两个"菜篮子"中的数据进行累加,然后放到result变量中
什么是标识符?
命名规范
小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如send_buf
在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要开发者主动地声明它的类型,系统就会自动识别。
想一想,我们应该让变量占用多大的空间,保存什么样的数据?
在程序中,为了更充分地利用内存空间以及更有效率地管理内存,数据是有不同的类型的,如下所示:
可以使用type(变量名),来查看变量的类型:
1 >>> a = 1 2 >>> type(a) 3 <class ‘int‘> 4 >>> b = 1.0 5 >>> type(b) 6 <class ‘float‘> 7 >>> c = 1+1j 8 >>> type(c) 9 <class ‘complex‘> 10 >>> d = True 11 >>> type(True) 12 <class ‘bool‘> 13 >>> e = [1, 2, b] 14 >>> type(e) 15 <class ‘list‘> 16 >>> f = (1, 2, b) 17 >>> type(f) 18 <class ‘tuple‘> 19 >>> g = {1: a, "b": 2} 20 >>> type(g) 21 <class ‘dict‘> 22 >>> h = {1, a, 2} 23 >>> type(h) 24 <class ‘set‘>
不可变类型,即其值不可改变(当变量的值发生改变时,其引用的内存地址也发生改变):
可变类型,即其值可以改变(当变量的值发生改变时,其引用的内存地址不发生改变):
1 >>> a = 1 2 >>> id(a) 3 1349380016 4 >>> a = 2 # 此时已改变了引用的内存地址 5 >>> id(a) 6 1349380032 7 >>> 8 >>> a = "a" 9 >>> id(a) 10 15288384 11 >>> a = "b" # 此时已改变了引用的内存地址 12 >>> id(a) 13 15320000 14 >>> 15 >>> a = [1, 2] 16 >>> id(a) 17 51719336 18 >>> a[0] = 2 # 此时是在原有内存地址上进行修改 19 >>> a 20 [2, 2] 21 >>> id(a) 22 51719336
在 python 中,值是靠引用来传递的,如下图所示:
可以用 id() 函数来判断两个变量是否为同一个值的引用,可以将 id 值理解为那块内存地址标示。
示例1:不可变类型的引用
1 1 >>> a = 1 2 2 >>> b = 1 3 3 >>> id(a) 4 4 1349380016 5 5 >>> id(b) 6 6 1349380016 # 两个变量的id值相同 7 7 >>> a = 2 8 8 >>> id(a) 9 9 1349380032 # 变量a的id值已改变 10 10 >>> id(b) 11 11 1349380016 # 变量b的id值未变
示例2:可变类型的引用
1 >>> a = [1, 2] 2 >>> b = a 3 >>> id(a) 4 51719368 5 >>> id(b) 6 51719368 7 >>> a.append(3) 8 >>> a 9 [1, 2, 3] 10 >>> id(a) 11 51719368 12 >>> id(b) 13 51719368 # 变量a和变量b的id值始终一致
函数 | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
long(x) | 将x转换为一个长整数 |
float(x) | 将x转换到一个浮点数 |
complex(real) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(seq) | seq:要转换为列表的元组或字符串 |
dict(x) | 将对象如(a=1, b=2, c=3)转换为一个字典 |
set(x) | 将对象x转换为一个无序不重复的元素集合 |
chr(x) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
示例1:
1 >>> int("100") 2 100 3 >>> float(100) 4 100.0 5 >>> str(100.0) 6 ‘100.0‘ 7 >>> complex(100) 8 (100+0j) 9 >>> repr([1, 2, 3]) 10 ‘[1, 2, 3]‘ 11 >>> eval("1+1") 12 2
示例2:tuple()
1 >>> tuple([1, 2, 3]) 2 (1, 2, 3) 3 >>> tuple("www") # 拆分每个字符 4 (‘w‘, ‘w‘, ‘w‘) 5 >>> tuple({1: 2, "a": 2}) # 仅返回字典的键 6 (1, ‘a‘) 7 >>> tuple((1, 2 ,3)) 8 (1, 2, 3)
示例3:list()
1 >>> dict() 2 {} 3 >>> 4 >>> dict({1: 2, 2: 3}) # 传一个字典 5 {1: 2, 2: 3} 6 >>> 7 >>> dict(one=2, two=3) # 传关键字(等号前只能是字母) 8 {‘one‘: 2, ‘two‘: 3} 9 >>> 10 >>> dict([(1, 2), ("a", 2)]) # 传包含一个或多个元组的列表 11 {1: 2, ‘a‘: 2} 12 >>> 13 >>> dict(zip(["one", "two"], [1, 2])) # 传zip函数 14 {‘one‘: 1, ‘two‘: 2}
示例4:set()
1 >>> set("aabc") # 传字符串 2 {‘a‘, ‘c‘, ‘b‘} 3 >>> 4 >>> set([1, 1, "a"]) # 传列表 5 {1, ‘a‘} 6 >>> 7 >>> set((1, 2, 2)) # 传元组 8 {1, 2} 9 >>> 10 >>> set({1, 2, 2}) # 传集合 11 {1, 2} 12 >>> 13 >>> set({1:2, 2:3}) # 传字典,仅返回键 14 {1, 2}
标签:bool 不同的 oat hex head 可变 enter 开发人员 第一个
原文地址:https://www.cnblogs.com/juno3550/p/12305808.html