一、基本概念 1、Python语言支持的运算符类型   算数运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级 2、计算顺序     运算符优先级表决定了哪个运算符在别的运算符之前计算,若是要改变计算的顺序,使用圆括号。 3、结合规律   运算符通常由左向右结合,即相同优先级的运算符按照从左向右的顺序计算。 In [2]: 3*4-2+6/2Out[2]: 13In [3]: 3*4-(2+6)/2Out[3]: 8 二、运算符优先级表 运算符 描述 lambda lambda表达式 or 布尔“或” and 布尔“与” not x 布尔“非” in,not in 成员测试 is,is not 同一性测试 <,<=,>,>=,!=,== 比较 | 按位或 ^ 按位异或 & 按位与 >>,<< 移位 +,- 加法与减法 *,/,% 乘法、除法、取余 +x,-x 正负号 ~x 按位翻转 ** 指数 x.attribute 属性参考 x[index] 下标 x[index:index] 寻址段 f(arguments...) 函数调用 (expression,...) 绑定或元组显示 [expression,...] 列表显示 {key:datum,...} 字典显示 'expression,...' 字符串转换 三、运算符相关函数 1、内建函数 cmp():比较两个数的大小 type():返回数字对象的类型 str():将数字转换为字符串 int():将变量的值的类型转换为整型的 iOS培训,Swift培训,苹果开发培训,移动开发培训 In [4]: cmp(5,6) Out[4]: -1In [5]: cmp(6,6) Out[5]: 0 In [6]: cmp(9,6) Out[6]: 1 iOS培训,Swift培训,苹果开发培训,移动开发培训 解析:cmp()是将圆括号里的第一个数和第二数进行比较,<(输出-1)、=(输出0)、>(输出1) iOS培训,Swift培训,苹果开发培训,移动开发培训 In [8]: str(123) Out[8]: '123'In [9]: str(0xFF) Out[9]: '255'In [10]: type(123666666666666666666666666) Out[10]: long In [12]: a=456In [13]: type(a) Out[13]: int In [14]: str(a) Out[14]: '456' iOS培训,Swift培训,苹果开发培训,移动开发培训 2、数值工厂函数 int():返回一个字符串或者数值对象的整型表示 long():返回一个字符串或者数值对象的长整型表示 float():返回一个字符串或者数值对象的浮点型表示 bool():返回对象的布尔值 iOS培训,Swift培训,苹果开发培训,移动开发培训 In [17]: int(3.1415926) Out[17]: 3In [18]: long(56) Out[18]: 56LIn [19]: float(8) Out[19]: 8.0In [20]: bool(0) Out[20]: False In [21]: bool(1) Out[21]: True In [22]: bool(123) Out[22]: True iOS培训,Swift培训,苹果开发培训,移动开发培训 3、功能函数 abs():返回给定参数的绝对值 coerce():返回一个包含类型转换完毕的两个数值元素的元组 divmod():将除法和取余运算结合起来,返回一个包含商和余数的元组 pow():可以进行指数运算 round():用于对浮点型进行四舍五入运算 iOS培训,Swift培训,苹果开发培训,移动开发培训 In [24]: abs(-123) #|-123|=123Out[24]: 123In [25]: coerce(12,23) Out[25]: (12, 23) In [26]: divmod(10,3) #10除以3等于3余1Out[26]: (3, 1) In [27]: pow(2,3) #2^3=8Out[27]: 8In [28]: round(3.1415926) Out[28]: 3.0In [29]: round(5.678) Out[29]: 6.0 iOS培训,Swift培训,苹果开发培训,移动开发培训 4、数字进制转换函数 hex():将数字转换成十六进制数并以字符串形式返回 oct():将数字转换成八进制数并以字符串形式返回 bin():将数字转换成二进制数并以字符串形式返回 iOS培训,Swift培训,苹果开发培训,移动开发培训 In [30]: hex(123) Out[30]: '0x7b'In [31]: oct(9) Out[31]: '011'In [32]: bin(9) Out[32]: '0b1001' iOS培训,Swift培训,苹果开发培训,移动开发培训 注意:   1、Python中进制显示     二进制binary--0b     八进制octal--0     十进制decimal     十六进制hex--0x   2、在shell中 0开头的数认为是八进制的数 iOS培训,Swift培训,苹果开发培训,移动开发培训 [root@localhost ~]# echo $((08*2))-bash: 08: value too great for base (error token is "08") [root@studying ~]# echo $((07*2))14[root@localhost ~]# echo $((09*2))-bash: 09: value too great for base (error token is "09") iOS培训,Swift培训,苹果开发培训,移动开发培训 解析:在shell中0开头的数被解释为八进制的数值(八进制数个位最大是7) [root@localhost ~]# echo $((9*2))18[root@localhost ~]# echo $((10#09*2))18 解决办法:在数值的前面注释10#表示该数为十进制数 四、脚本实例之运算符 脚本练习1:分数成绩的判断 iOS培训,Swift培训,苹果开发培训,移动开发培训 #!/usr/bin/pythonu_grade=raw_input("please input your grade:")if u_grade.isdigit(): if 90<=int(u_grade)<=100: print "your grade is",u_grade,"A" elif 80<=int(u_grade)<=89: print "your grade is",u_grade,"B" elif 70<=int(u_grade)<=79: print "your grade is",u_grade,"C" elif 60<=int(u_grade)<=69: print "your grade is",u_grade,"D" elif 0<=int(u_grade)<=59: print "your grade is",u_grade,"E" else: print "please input the range of number 0-100"else: print "It's not a valid number,try again" iOS培训,Swift培训,苹果开发培训,移动开发培训 脚本练习2:用户信息的按条件获取 iOS培训,Swift培训,苹果开发培训,移动开发培训 #!/usr/bin/pythonimport os f=os.popen('cat /etc/passwd')for i in f: u_list=i.split(":") if 500 in ()----> 1 c+d TypeError: unsupported operand type(s) for +: 'int' and 'str' iOS培训,Swift培训,苹果开发培训,移动开发培训 2、乘法问题   对于乘法中的*,如果数字相乘则为其本意=数与数的乘积运算,如果字符串*一个数字则表示字符串的重复显示,如下: iOS培训,Swift培训,苹果开发培训,移动开发培训 In [27]: a=123In [28]: a*3Out[28]: 369In [29]: b="123"In [30]: b*3Out[30]: '123123123' iOS培训,Swift培训,苹果开发培训,移动开发培训 @author:http://www.cnblogs.com/geaozhang/ http://www.cnblogs.com/geaozhang/p/7120238.html