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)只能遍历一次

  1. 返回值是一个迭代子