资源简介 (共34张PPT)3、运算符和数字3.2 Python语言程序设计算术运算符运算符 描述 实例+ 加 - 两个对象相加 a + b 输出结果 31- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210/ 除 - x 除以 y b / a 输出结果 2.1% 取模 - 返回除法的余数 b % a 输出结果 1** 幂 - 返回x的y次幂 a**b 为10的21次方// 取整除 - 向下取接近商的整数 >>> 9//24>>> -9//2-5以下假设变量 a=10,变量 b=21:算术运算符# 修改变量 a 、b 、ca = 2b = 3c = a**bprint ("6 - c 的值为:", c)a = 10b = 5c = a//bprint ("7 - c 的值为:", c)a = 21b = 10c = 0c = a + bprint ("1 - c 的值为:", c)c = a - bprint ("2 - c 的值为:", c)c = a * bprint ("3 - c 的值为:", c)c = a / bprint ("4 - c 的值为:", c)c = a % bprint ("5 - c 的值为:", c)以下实例演示了Python所有算术运算符的操作:以上实例输出结果:1 - c 的值为: 312 - c 的值为: 113 - c 的值为: 2104 - c 的值为: 2.15 - c 的值为: 16 - c 的值为: 87 - c 的值为: 2比较运算符运算符 描述 实例== 等于 - 比较对象是否相等 (a == b) 返回 False。!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True。> 大于 - 返回x是否大于y (a > b) 返回 False。< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 True。以下假设变量a为10,变量b为20:比较运算符以下实例演示了Python所有比较运算符的操作:a = 21;b = 10;c = 0if ( a == b ):print ("1 - a 等于 b")else:print ("1 - a 不等于 b")if ( a != b ):print ("2 - a 不等于 b")else:print ("2 - a 等于 b")if ( a < b ):print ("3 - a 小于 b")else:print ("3 - a 大于等于 b")if ( a > b ):print ("4 - a 大于 b")else:print ("4 - a 小于等于 b")# 修改变量 a 和 b 的值a = 5b = 20if ( a <= b ):print ("5 - a 小于等于 b")else:print ("5 - a 大于 b")if ( b >= a ):print ("6 - b 大于等于 a")else:print ("6 - b 小于 a")输出结果:1 - a 不等于 b2 - a 不等于 b3 - a 大于等于 b4 - a 大于 b5 - a 小于等于 b6 - b 大于等于 a赋值运算符运算符 描述 实例= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c+= 加法赋值运算符 c += a 等效于 c = c + a-= 减法赋值运算符 c -= a 等效于 c = c - a*= 乘法赋值运算符 c *= a 等效于 c = c * a/= 除法赋值运算符 c /= a 等效于 c = c / a%= 取模赋值运算符 c %= a 等效于 c = c % a**= 幂赋值运算符 c **= a 等效于 c = c ** a//= 取整除赋值运算符 c //= a 等效于 c = c // a:= 海象运算符,可在表达式内部为变量赋值。 Python3.8 版本新增运算符。 在这个示例中,赋值表达式可以避免调用 len() 两次:if (n := len(a)) > 10:print(f"List is too long ({n} elements, expected <= 10)")以下假设变量a为10,变量b为20:赋值运算符以下实例演示了Python所有赋值运算符的操作:a = 21;b = 10;c = 0c = a + bprint ("1 - c 的值为:", c)c += aprint ("2 - c 的值为:", c)c *= aprint ("3 - c 的值为:", c)c /= aprint ("4 - c 的值为:", c)c = 2c %= aprint ("5 - c 的值为:", c)c **= aprint ("6 - c 的值为:", c)c //= aprint ("7 - c 的值为:", c)以上实例输出结果:1 - c 的值为: 312 - c 的值为: 523 - c 的值为: 10924 - c 的值为: 52.05 - c 的值为: 26 - c 的值为: 20971527 - c 的值为: 99864位运算符运算符 描述 实例& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:下表中变量 a 为 60,b 为 13二进制格式如下:位运算符a = 60 # 60 = 0011 1100b = 13 # 13 = 0000 1101c = 0c = a & b # 12 = 0000 1100print ("1 - c 的值为:", c)c = a | b # 61 = 0011 1101print ("2 - c 的值为:", c)c = a ^ b # 49 = 0011 0001print ("3 - c 的值为:", c)c = ~a # -61 = 1100 0011print ("4 - c 的值为:", c)c = a << 2 # 240 = 1111 0000print ("5 - c 的值为:", c)c = a >> 2 # 15 = 0000 1111print ("6 - c 的值为:", c)以下实例演示了Python所有位运算符的操作:输出结果:1 - c 的值为: 122 - c 的值为: 613 - c 的值为: 494 - c 的值为: -615 - c 的值为: 2406 - c 的值为: 15逻辑运算符Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:运算符 逻辑表达式 描述 实例and x and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 (a and b) 返回 20。or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False逻辑运算符a = 10b = 20if ( a and b ):print ("1 - 变量 a 和 b 都为 true")else:print ("1 - 变量 a 和 b 有一个不为 true")if ( a or b ):print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")else:print ("2 - 变量 a 和 b 都不为 true")逻辑运算符# 修改变量 a 的值a = 0if ( a and b ):print ("3 - 变量 a 和 b 都为 true")else:print ("3 - 变量 a 和 b 有一个不为 true")if ( a or b ):print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")else:print ("4 - 变量 a 和 b 都不为 true")if not( a and b ):print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")else:print ("5 - 变量 a 和 b 都为 true")逻辑运算符以上实例输出结果:1 - 变量 a 和 b 都为 true2 - 变量 a 和 b 都为 true,或其中一个变量为 true3 - 变量 a 和 b 有一个不为 true4 - 变量 a 和 b 都为 true,或其中一个变量为 true5 - 变量 a 和 b 都为 false,或其中一个变量为 false成员运算符除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。运算符 描述 实例in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。成员运算符以下实例演示了Python所有成员运算符的操作:a = 10b = 20list = [1, 2, 3, 4, 5 ]if ( a in list ):print ("1 - 变量 a 在给定的列表中 list 中")else:print ("1 - 变量 a 不在给定的列表中 list 中")if ( b not in list ):print ("2 - 变量 b 不在给定的列表中 list 中")else:print ("2 - 变量 b 在给定的列表中 list 中")# 修改变量 a 的值a = 2if ( a in list ):print ("3 - 变量 a 在给定的列表中 list 中")else:print ("3 - 变量 a 不在给定的列表中 list 中")输出结果:1 - 变量 a 不在给定的列表中 list 中2 - 变量 b 不在给定的列表中 list 中3 - 变量 a 在给定的列表中 list 中身份运算符身份运算符用于比较两个对象的存储单元运算符 描述 实例is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。注: id() 函数用于获取对象内存地址。身份运算符以下实例演示了Python所有身份运算符的操作:a = 20b = 20if ( a is b ):print ("1 - a 和 b 有相同的标识")else:print ("1 - a 和 b 没有相同的标识")if ( id(a) == id(b) ):print ("2 - a 和 b 有相同的标识")else:print ("2 - a 和 b 没有相同的标识")# 修改变量 b 的值b = 30if ( a is b ):print ("3 - a 和 b 有相同的标识")else:print ("3 - a 和 b 没有相同的标识")if ( a is not b ):print ("4 - a 和 b 没有相同的标识")else:print ("4 - a 和 b 有相同的标识")输出结果:1 - a 和 b 有相同的标识2 - a 和 b 有相同的标识3 - a 和 b 没有相同的标识4 - a 和 b 没有相同的标识身份运算符is 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。>>>a = [1, 2, 3]>>> b = a>>> b is aTrue>>> b == aTrue>>> b = a[:]>>> b is aFalse>>> b == aTrue运算符优先级运算符 描述** 指数 (最高优先级)~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % // 乘,除,求余数和取整除+ - 加法减法>> << 右移,左移运算符& 位 'AND'^ | 位运算符<= < > >= 比较运算符== != 等于运算符= %= /= //= -= += *= **= 赋值运算符is is not 身份运算符in not in 成员运算符not and or 逻辑运算符以下表格列出了从最高到最低优先级的所有运算符:运算符优先级以下实例演示了Python所有运算符优先级的操作:a = 20b = 10c = 15d = 5e = 0e = (a + b) * c / d #( 30 * 15 ) / 5print ("(a + b) * c / d 运算结果为:", e)e = ((a + b) * c) / d # (30 * 15 ) / 5print ("((a + b) * c) / d 运算结果为:", e)e = (a + b) * (c / d) # (30) * (15/5)print ("(a + b) * (c / d) 运算结果为:", e)e = a + (b * c) / d # 20 + (150/5)print ("a + (b * c) / d 运算结果为:", e)输出结果:(a + b) * c / d 运算结果为: 90.0((a + b) * c) / d 运算结果为: 90.0(a + b) * (c / d) 运算结果为: 90.0a + (b * c) / d 运算结果为: 50.0#and 拥有更高优先级:x = Truey = Falsez = Falseif x or y and z:print("yes")else:print("no")输出结果:yes数字(Number)Python 数字数据类型用于存储数值。数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。以下实例在变量赋值时 Number 对象将被创建:var1 = 1var2 = 10也可以使用del语句删除一些数字对象的引用。del语句的语法是:del var1[,var2[,var3[....,varN]]]通过使用del语句删除单个或多个对象的引用,例如:del vardel var_a, var_b数字(Number)Python 支持三种不同的数值类型:整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。数字(Number)我们可以使用十六进制和八进制来代表整数:>>> number = 0xA0F # 十六进制:0x开头>>> number2575>>> number=0o37 # 八进制:0o开头>>> number31数字(Number)int float complex10 0.0 3.14j100 15.20 45.j-786 -21.9 9.322e-36j080 32.3e+18 .876j-0490 -90. -.6545+0J-0x260 -32.54e100 3e+26J0x69 70.2E-12 4.53e-7jPython支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。数字类型转换有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。int(x) 将x转换为一个整数。float(x) 将x转换到一个浮点数。complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。以下实例将浮点数变量 a 转换为整数:>>> a = 1.0>>> int(a)1数字运算Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。表达式的语法很直白: +, -, * 和 /, 和其它语言(如Pascal或C)里一样。例如:>>> 2 + 24>>> 50 - 5*620>>> (50 - 5*6) / 45.0>>> 8 / 5 # 总是返回一个浮点数1.6注意:在不同的机器上浮点运算的结果可能会不一样。数字运算在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // :>>> 17 / 3 # 整数除法返回浮点型5.666666666666667>>>>>> 17 // 3 # 整数除法返回向下取整后的结果5>>> 17 % 3 # %操作符返回除法的余数2>>> 5 * 3 + 217>>> 7//23>>> 7.0//23.0>>> 7//2.03.0>>>注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。数字运算等号 = 用于给变量赋值。赋值之后,除了下一个提示符,解释器不会显示任何结果。>>> width = 20>>> height = 5*9>>> width * height900Python 可以使用 ** 操作来进行幂运算:>>> 5 ** 2 # 5 的平方25>>> 2 ** 7 # 2的7次方128数字运算变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误:>>> n # 尝试访问一个未定义的变量Traceback (most recent call last):File "", line 1, in NameError: name 'n' is not defined不同类型的数混合运算时会将整数转换为浮点数:>>> 3 * 3.75 / 1.57.5>>> 7.0 / 23.5数学函数函数 返回值 ( 描述 )abs(x) 返回数字的绝对值,如abs(-10) 返回 10ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。pow(x, y) x**y 运算后的值。round(x [,n]) 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。sqrt(x) 返回数字x的平方根。如math.sqrt(9),返回3.0内置和math模块随机数函数函数 描述random() 随机生成一个实数,它在[0,1)范围内。uniform(a,b) 随机生成一个实数,它在[a,b]范围内。randint(a,b) 随机生成一个整数,它在[a,b]范围内。choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。shuffle(seq) 将序列的所有元素随机排序samlpe(seq,k) 从序列中随机挑选k个元素random模块三角函数函数 描述cos(x) 返回x的弧度的余弦值。sin(x) 返回的x弧度的正弦值。tan(x) 返回x弧度的正切值。degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0radians(x) 将角度转换为弧度math模块数学常量常量 描述pi 数学常量 pi(圆周率,一般以π来表示)e 数学常量 e,e即自然常数(自然常数)。math模块 展开更多...... 收起↑ 资源预览