python基础之变量类型和数据运算
一、变量的类型
程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的。
怎样知道一个变量的类型呢?
在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要我们主动的去说明它的类型,系统会自动辨别
可以使用type(变量的名字),来查看变量的类型
name = "Python" age = 18 print(type(name),type(age)) —————————————————————————————————— <class 'str'> <class 'int'>
1、数字(Number)
(1)int(有符号整型)
在32位机器上:-2**31~2**31-1
在64位机器上:-2**63~2**64-1
(2)long(长整型)(基本不用)
(3)float(浮点型)
浮点数用来处理实数,即带有小数的数字
(4)complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj
PS:Python中存在小数字池:-5 ~ 257
2、布尔类型
真或家(1或0)(True or False)
3、字符串(String)
PS:字符串(%s);整数(%d);浮点数(%f)
字符串常用功能:
移除空白、分割、长度、索引、切片
4、列表(List)
创建列表:
1 num_list = [12,234,45,12] 2 或 3 num_list2 = list([12,23,34,126])
基本操作:
索引、切片、追加、删除、长度、循环、包含
5、元组(Tuple)(不可变列表)
创建元组:
age = (11,22,33,44)
或
age = tuple((11,22,33,44))
6、字典(Dictionary)
创建字典:
person = {"name":"ryz","age":18} 或 person = dict({"name":"ren","age":18})
常用操作:
索引、新增、删除、键值对、循环、长度
7、空值(None)
空值时python中一个特殊的值,用None表示;None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
8、可变类型和不可变类型
可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表、字典
不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
二、数据运算
1、算数运算
# 算数运算
a = 10 b = 5 print(a+b) # 加法 print(a-b) # 加法 print(a*b) # 乘法 print(a/b) # 除法 print(a//b) # 取整除 print(a%b) # 取余 print(a**b) # 取幂 ----------------------------------------------------------------- 15 5 50 2.0 2 0 100000
2、比较运算
#比较运算符 a = 10 b = 5 print(a == b) print(a != b) print(a < b) print(a <= b) print(a > b) print(a >= b) #注意:<>表示不等于,现在已经被废弃 ------------------------------------------------------ False True False False True True
3、赋值运算(复合赋值运算符)
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Renyz #赋值运算符 #要求:让两个变量等于一个值 #1、链式赋值 a = b = 2 print(id(a),id(b)) --------------------------------------------------------- 140730512466608 140730512466608 --------------------------------------------------------- --------------------------------------------------------- #2、交叉赋值 #第一种交叉赋值法: n = 10 m = 20 c = n n = m m = c print(n,m) ---------------------------------------------------------- 20 10 ---------------------------------------------------------- #第二种交叉赋值法: n = 10 m = 20 n,m = m,n print(n,m) ----------------------------------------------------------- 20 10
4、逻辑运算
#and #去办理贷款买房手续,需要你且你媳妇一同来办理 you = input("你本人去吗(去或者不去)?") your_wife = input("媳妇去吗(去或者不去)?") if you == "去" and your_wife == "去": print("恭喜,两个人来了,把事情办成了!") else: print("必须有两个人来办理贷款业务!") ---------------------------------------------------------------- 你本人去吗(去或者不去)?去 媳妇去吗(去或者不去)?去 恭喜,两个人来了,把事情办成了!
#or #去办理个人贷款买房手续,只需要你或者你媳妇代理 you = input("你本人去吗(去或者不去)?") your_wife = input("媳妇去吗(去或者不去)?") if you == "去" or your_wife == "去": print("恭喜,至少一个人办理就行了!") else: print("必须有一个人来办理贷款业务!") ----------------------------------------------------------------- 你本人去吗(去或者不去)?去 媳妇去吗(去或者不去)?不去 恭喜,至少一个人办理就行了!
#青年时期17~24年龄 age = 30 #不是青年时期 if not (age >= 17 and age <= 24): print("不是青年时期!<17或者大于24") ------------------------------------------------------------- 不是青年时期!<17或者大于24
5、成员运算
name = ''' 毕洪态, 赵明利, hello, world, ''' a = "world" in name b = "haha" in name c = "毕洪态" not in name print(a) print(b) print(c) ------------------------------------------------------------------------ True False False
6、身份运算
is 是比较两个引用是否指向了同一个对象(引用比较)
== 是比较两个对象(值)是否相等
#身份运算符 #is是判断内存地址;==是判断变量值
#一个内存地址可以对应多个变量,一个变量只能对应一个内存地址 a = [11,22,33] b = [11,22,33] print(a == b) print(a is b) #验证id print(id(a),id(b)) ------------------------------------------------------------------- True False 434119402120 434119402184
拓展: In [1]: a=256 In [2]: b=256 In [3]: a is b Out[3]: True In [4]: a=257 In [5]: b=257 In [6]: a is b Out[6]: False
注意:因为python对小整数在内存中直接创建了一份,不会回收,所有创建的小整数变量直接从对象池中引用他即可。但是注意Python仅仅对比较小的整数对象进行缓存(范围为范围[-5, 256])缓存起来,而并非是所有整数对象。也就说只有在这个[-5,256]范围内创建的变量值使用is比较时候才会成立
7、位运算
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Renyz a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b # 12 = 0000 1100 print("Line 1 - Value of c is ", c) c = a | b # 61 = 0011 1101 print("Line 2 - Value of c is ", c) c = a ^ b # 49 = 0011 0001 #相同为0,不同为1 print("Line 3 - Value of c is ", c) c = ~a # -61 = 1100 0011 print("Line 4 - Value of c is ", c) c = a << 2 # 240 = 1111 0000 print("Line 5 - Value of c is ", c) c = a >> 2 # 15 = 0000 1111 print("Line 6 - Value of c is ", c)
运算符优先级: