02. 变量与数据类型
Posted juno3550
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02. 变量与数据类型相关的知识,希望对你有一定的参考价值。
1. 变量与数据类型
2. Python中的“引用”概念
3. 常用的数据类型转换
1. 变量与数据类型
1.1 什么是变量
在Python中,存储一个数据,需要一个叫做变量的东西。
程序就是用来处理数据的,而变量就是用来存储数据的。
1 num1 = 100 # num1就是一个变量,好比一个菜篮子 2 3 num2 = 87 # num2也是一个变量 4 5 result = num1 + num2 # 把num1和num2这两个"菜篮子"中的数据进行累加,然后放到result变量中
1.2 Python中的命名规范
什么是标识符?
- 标识符是开发人员在程序中自定义的一些符号和名称,如变量名 、函数名等。
- 标示符由字母、下划线和数字组成,且数字不能开头。
命名规范
-
小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
-
大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
-
在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如send_buf
1.3 数据类型
在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要开发者主动地声明它的类型,系统就会自动识别。
想一想,我们应该让变量占用多大的空间,保存什么样的数据?
在程序中,为了更充分地利用内存空间以及更有效率地管理内存,数据是有不同的类型的,如下所示:
- Numbers(数值)
- int(有符号整型)
- long(python2有,而3没有)
- float(浮点型)
- complex(复数)
- Boolean(布尔)
- True
- False
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
- Set(集合)
可以使用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.4 可变类型与不可变类型
不可变类型,即其值不可改变(当变量的值发生改变时,其引用的内存地址也发生改变):
- 数值
- 字符串
- 元组
可变类型,即其值可以改变(当变量的值发生改变时,其引用的内存地址不发生改变):
- 列表
- 字典
- 集合
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
2. Python中的“引用”概念
在 python 中,值是靠引用来传递的,如下图所示:
- 在C语言中,变量a和变量b均各自保存着100的值;
- 而在python中,变量a和变量b引用的是同一份(即100这个值的)内存地址。
可以用 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值始终一致
3. 常用的数据类型转换
函数 | 说明 |
---|---|
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}
以上是关于02. 变量与数据类型的主要内容,如果未能解决你的问题,请参考以下文章