第三章 运算符与表达式

数字对象的运算

 “//”代表整除,对int和float都适用,“/”代表正常的除法,有余数
对于复数,区域和截取除法是无效的

>>> 3//2
1
>>> 3/2
1.5
>>> 1.5//0.3
5.0
>>> 1.5/0.3
5.0
>>> 1.5//0.4
3.0
>>> 1.5/0.4
3.75

优先级: 一元运算符 》 乘方 》乘法 》 除法 》加减法

Python的运算符绝大多数都是从左边开始的,只有两个特例,乘方(**)和条件表达式运算符是从右边开始的

>>> 5 or (8 if 5>6 else 0)
5
>>> 5 or 8 if 5>6 else 3  
3
// 条件表达式运算符的优先级比逻辑运算符低

关系运算

不允许对复数进行比较

当操作数数同一类型时,比较才有效,如果不相同,会进行强制的进制转换。

逻辑运算

not a:如果a是false,返回1.否则返回0

a and b: 如果a是false,返回a,否则返回b。

a or b: 如果a是false,反馈b,否则反馈a。

总结,逻辑运算就是讲第一个使得该命题最有可能的条件返回出来,同时,逻辑运算的结合性是从左到右的,对于and运算符,只有and左边的值是false的时候,才继续计算右边的数。同理,对于 or 运算符,只有or左边的数是false的时候,才继续计算右边的值。

运算符

左移,右移,按位与(&),按位或(|),按位异或(^)(相同的时候返回0,不同的时候返回1)

~(按位求反)

1.3
>>> 1 if 3 else 4
1
>>> 1 if 0 else 4
4
>>> 

运算方式。先计算中间的条件,如果中间的是true,那么计算左边的,否则计算右边的。

条件表达式的结合性

>>> 1 if 3>2 else 2 if 5>6 else 3
1
>>> (1 if 3>2 else 2) if 5>6 else 3
3

从右边开始,到左边结束。

 常用函数

input函数

>>> x= input('x= ')
x= 34
>>> x
'34'
>>> x=float(input('x='))
x=34
>>> 
>>> x
34.0

print函数

>>> print(1,2,3,sep='%%%',end='\n')// 按照什么分隔开,换行符。
1%%%2%%%3

eval函数

实现从字符串向数字的转换

具体格式 eval(字符串,【字典【,映射】】)

str函数

将数字对象,列表对象,元祖,集合转换为字符串,还可以进行运算。

>>> str(1+2)
'3'
>>> str([1,2,3])
'[1, 2, 3]'
>>> str((1,2,3))
'(1, 2, 3)'

range函数(左闭右开)

>>> x=range(10)
>>> x[2]
2
>>> x[1]
1
>>> x[0]
0
>>> x[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: range object index out of range

enumerate函数

是一个可迭代对象,s返回的是一个迭代器。

数学函数库的函数应用

导入方法:import <库名>  或者 from<库名> import <函数名>

>>> import math
>>> math.sqrt(3)
1.7320508075688772

ceil函数(往上取整)

>>> import math
>>> math.ceil(1.2)
2
>>> math.ceil(-1.2)
-1

 trunc函数(往下取整)

>>> math.trunc(1.2)
1

factorial函数

当x是整数的时候,返回x的阶乘,否则返回错误信息

>>> math.factorial(19)
121645100408832000
>>> math.factorial(1,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: factorial() takes exactly one argument (2 given)

isinf函数,判断是不是超过最大值,如果是,返回true,否则返回false。正常的值的话,-1.7e308~1.7e308。

isnan函数

当x不是数字的时候,返回true,否则返回false(这里的数字指的是在数据范围里面的数,如果超过了这个范围,就不认为是数字了,返回true)。(两个nan之间无法比较)

常用的字符串方法

find函数

>>> s="abcd"
>>> s.find("bc")
1
>>> s.find("bc",2,3)
-1
>>> s.find("bc",1,3)
1
>>> s.find("bc",1,2)
-1

lower函数和islower函数


>>> s="ABCS_12"
>>> s.lower()
'abcs_12'
>>> s.islower()
False
>>> s="avc"
>>> s.islower()
True

split函数

以原字符串s中的分隔符作为拆分依据,拆分字符串s,返回一个列表,当不指定分隔符的时候,说明原字符串中的分隔符是空格。

>>> s="ab,cd,1234,xy"
>>> s.split(sep=',')
['ab', 'cd', '1234', 'xy']
>>> s="ab cd 123  xy"
>>> s.split()
['ab', 'cd', '123', 'xy']
>>> 

strip函数

删除字符串两边的空格或者指定的字符

>>> s="  %%123%%  "
>>> s.strip()
'%%123%%'
>>> s.strip('%')
'  %%123%%  '
>>> s
'  %%123%%  '
>>> s.strip('%')
'  %%123%%  '
>>> s1=s.strip()
>>> s1
'%%123%%'
>>> s1.strip('%')
'123'
>>> s='%%123%%'
>>> s
'%%123%%'
>>> s.strip('%')
'123'
>>> 

fromhex函数,用十六禁止创建一个字节串对象,可以容忍十六禁止数串中的空格。

hex函数,将字节串转换为16进制的数。

decode函数,讲字节串转换为字符串。如果不特指编码参数,就是“UTF-8 ”编码。

posted @ 2018-11-14 11:58  Let_Life_Stop  阅读(198)  评论(0编辑  收藏  举报