2.运算符
2.1标准运算符
运算符 | 描述 |
---|---|
+ | 加 - 两个对象相加 |
- | 减 - 得到负数或是一个数减去另一个数 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 - x 除以 y |
% | 取模 - 返回除法的余数 |
** | 幂 - 返回x的y次幂 |
// | 取整除 - 返回商的整数部分 |
加+、减-、乘*、除/
print(1+1) #加法
print(1-1) #减法
print(2*4) #乘法
print(1/2) #除法
print(11/2) #除法运算
print(11//2) # 5整除运算//
print(11%2) # 1 取余运算%
print(2**2) #2的2次方,幂运算符**
取余%(一正一负要公式)
print(9//4) #2
print(-9//-4) #2
print(9//-4) #-3
print(-9//4) #-3 一正一负的整数公式,向下取整
print(9%-4) #-3 余数=被除数-除数*商 9-(-4)*(-3) 9-12--> -3
print(-9%4) #3
2.2赋值运算:右——>左
运算符 | 描述 |
---|---|
= | 简单赋值运算 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
**= | 幂赋值 |
//= | 取整除赋值 |
链式赋值:a=b=c20
参数赋值:+=、-=、*=、/=、//=、%=
系列解包赋值:a,b,c=20,30,40
print('-----链式赋值-------')
i=3+4
print(i)
a=b=c=20
print(a,id(a))
print(b,id(b))
print(c,id(c))
print('---参数赋值-----')
a=20
a+=30 #a=a+30
print(a)
a -=10 #a=a-10
print(a)
a*=2
print(a)
a/=3
print(a)
print(type(a)) #float
a//=2
print(a)
a%=3
print(a)
print('-----解包赋值------')
a,b,c = 20,30,40
print(a,b,c)
print('-------交换两个变量的值----------')
a,b=10,20
print('交换之前:',a,b)
a,b=b,a
print('交换之后:',a,b)
--------------------------------------->输出
-----链式赋值-------
7
20 2687724383120
20 2687724383120
20 2687724383120
---参数赋值-----
50
40
80
26.666666666666668
<class 'float'>
13.0
1.0
-----解包赋值------
20 30 40
-------交换两个变量的值----------
交换之前: 10 20
交换之后: 20 10
2.3比较运算符
对结果大小、真假比较
运算符 | 描述 |
---|---|
== | 等于 - 比较对象是否相等 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
>,<,>=,<=,!=,==,is, is not
a,b=10,20
print('a>b吗',a>b)
print('a<b吗',a<b)
print('a>=b吗',a>=b)
print('a<=b吗',a<=b)
print('a==b吗',a==b)
print('a!=b吗',a!=b)
"""
一个=称赋值运算,==比较运算
变量由三部分组成:标识,类型,值
比较对象的标识使用 is
"""
a=10
b=10
print(a==b) #True a与b的value相等
print(a is b) #True a与b的id标识相等
list1=[11,22,33,44]
list2=[11,22,33,44]
print(list1==list2)
print(list1 is list2)
print(id(list1))
print(id(list2))
print(a is not b) #False a的id和b的id不相等
print(list1 is not list2) #True
输出结果:
a>b吗 False
a<b吗 True
a>=b吗 False
a<=b吗 True
a==b吗 False
a!=b吗 True
True
True
True
False
1911670578752
1911670907648
False
True
2.4布尔运算
and,or,not,in,not in
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 布尔“与” x为False, x and y返回False |
or | x or y | 布尔“或”,x 为True,返回x,否则返回y的计算值 |
not | not x | 布尔”非‘,x 为True,返回False,x 为False,返回True |
in | x in y | 在指定序列中找到值返回True;否则返回False |
not in | x not in y | 判断两个标识符是不是引用自不同对象 |
身份运算符
运算符 | 描述 |
---|---|
is | 判断两个标识符是不是引用自一个对象 |
is not | 判断两个标识符是不是引用自不同对象 |
a,b=1,2
print('-----and------')
print(a==1 and b==2) #True
print(a==1 and b<2) #Flase
print(a!=1 and b==2) #False
print(a!=1 and b!=2) #False
print('----or------')
print(a==1 or b==2) #True
print(a==1 or b<2) #True
print(a!=1 or b==2) #True
print(a!=1 or b!=2) #Flase
print('-----not对布尔类型取反--------')
f=True
f2=False
print(not f)
print(not f2)
print('-------in与not in-----------')
s='good monming'
print('m' in s)
print('o' in s)
print('k' not in s)
print('i' not in s)
运算结果:
-----and------
True
False
False
False
----or------
True
True
True
False
-----not对布尔类型取反--------
False
True
-------in与not in-----------
True
True
True
False
2.5位运算符
运算符 | 描述 |
---|---|
& | 按位与运算 1&1-->1 1&0-->0 |
| | 按位或 |
^ | 按位异或,相异为1 |
~ | 按位取反,二进制位取反,1变0,如:~y等于-y-1 如:~2=-3 |
<< | 左移 |
>> | 右移 |
2.6混合运算
print(5*4/2+1)
11.0
print(5*4/2+1)
6.666666667
2.7python运算符优先级
优先级 | 运算符 | 描述 |
---|---|---|
最高 | ** | 指数(最高优先级) |
~+- | *~*按位取反的意思;一元加号;一元减号 | |
* / % // | 乘;除;取模;取整除 | |
+ - | 加法;减法 | |
>> << | 右移;左移 | |
& | 位‘AND’ | |
^| | 位运算符 | |
<= < > >= | 比较运算符 | |
<>==!= | 等于运算符 | |
= %= /= //= -= += *= **= | 赋值运算符 | |
is is not | 身份运算符 | |
in not in | 成员运算符 | |
最低 | and not and | 逻辑运算符 |
input()——>算术——>位——>比较——>布尔——>赋值
内置type 函数:查看数据的类型**
>>> type(3)
<class 'int'>
>>> type(4.5)
<class 'float'>
print(((993+196)*7)/3) 除
print(((993+196)*7)//3) 取整
print(((993+196)*7)%3) 取模
print(type('abc')) 打印类型,字符串需要加单引号
python中对象的名字称为变量名,简称变量。变量名和数据对象之间用等号连接。
变量名规则:
1.可包含字母、数字和下划线
2.可以以字母和下划线开头,如var1,或_var
3.不能以数字开头
4.变量名不可以包含空格,可以包含下划线
特殊:
1.变量名不能喝关键字同名;<font color=#0000FF >as</font>是python的<font color=#0000FF >关键字</font>,不能作变量名
2.变量名不要和内置函数同名
常用内置的函数
1.数学运算相关函数
abs():返回给定参数的绝对值,参数可以是整数,浮点数,复数
>>> abs(-23)
23
>>> abs(2.333)
2.333
>>> abs(1+2j)
2.23606797749979
round()函数:返回数字舍入到小数点后的n位精度
>>> round(0.5)
0
>>> round(-0.5)
0
>>> round(1.5)
2
divmod(a,b)函数:a是被除数,b除数,返回a除以b的商和余数,以元祖形式返回。
>>> divmod(25,4)
(6, 1)
pow(a,b)函数:返回数值的指数值
>>> pow(2,3)
8
max(),min():求最大值,求最小值
>>> max(12,45,4,5)
45
>>> min(12,45,4,5)
4
>>> max('adgas')
's'
>>> min('adgas')
'a'
sum():求和运算,iterable为可迭代对象,比如列表,集合,元祖;start为指定相加的参数,默认为0
>>> lis = [1,2,5]
>>> tup = (45,32)
>>> sum(lis)
8
>>> sum(tup)
77
>>> sum(lis,4)
12
>>> sum(tup,-4)
73
**eval(expression, globals=None, locals=None)**函数:执行一个字符串表达式,对表达式进行分析计算并返回计算的值。可以用来执行任意的代码对象
expression:参数是字符串
globals:管控全局的命名空间的参数
locals:管控局部的命名空间的参数,和globals类似,和globals有重复的部分时,locals的定义会覆盖globals中的
>>> a = 1
>>> b = 2
>>> gloabls = {'a':4,'b':5}
>>> local = {'a':5,'b':6}
>>> eval('a+b')
3
>>> eval('a+b',gloabls)
9
>>> eval('a+b',gloabls,local)
11
2.序列相关函数
sorted()和list.sorted():sorted(iterable, key=None, reverse=False):sorted()函数是python的一个内置排序函数.
iterable:可迭代对象,可以是字符,列表,字典等; key:按照指定关键字排序,默认None;
reverse:排序规则,默认False升序,即从小到大。reverse=True时降序排列。
对字符串,列表排序
>>> lis = [1,2,3,4,5,0,6,7]
>>> sorted(lis) #升序
[0, 1, 2, 3, 4, 5, 6, 7]
>>> sorted(lis,reverse=True) #降序
[7, 6, 5, 4, 3, 2, 1, 0]
>>> str='agdsmhk'
>>> sorted(str) #对字符串排序
['a', 'd', 'g', 'h', 'k', 'm', 's']
对字典排序,默认按键值进行升序排列
>>> c = {'a':1,'b':3}
>>> sorted(c)
['a', 'b']
>>> sorted(c,reverse=True)
['b', 'a']
>>> sorted(c.items(),key=lambda x:x[1])
[('a', 1), ('b', 3)]
>>> sorted(c.items(),key=lambda x:x[0])
[('a', 1), ('b', 3)]
reversed()
reversed(seq):python的一个内置函数,返回序列的逆向迭代子。
1)不会改变原序列的排序 2)只能遍历一次
- 返回值是一个迭代子