Python算术运算符及用法介绍
发布时间:2022-07-05 12:13:34 所属栏目:语言 来源:互联网
导读:算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。 表 1 Python 常用算术运算符 运算符 说明 实例 结果 + 加 12.45 + 15 27.45 - 减 4.56 - 0.26 4.3 * 乘 5 * 3.6 18.0 / 除法(和数学中的规
算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。 表 1 Python 常用算术运算符 运算符 说明 实例 结果 + 加 12.45 + 15 27.45 - 减 4.56 - 0.26 4.3 * 乘 5 * 3.6 18.0 / 除法(和数学中的规则一样) 7 / 2 3.5 // 整除(只保留商的整数部分) 7 // 2 3 % 取余,即返回除法的余数 7 % 2 1 ** 幂运算/次方运算,即返回 x 的 y 次方 2 ** 4 16,即 24 接下来将对表 1 中各个算术运算符的用法逐一讲解。 + 加法运算符 加法运算符很简单,和数学中的规则一样,请看下面的代码: m = 10 n = 97 sum1 = m + n x = 7.2 y = 15.3 sum2 = x + y print("sum1=%d, sum2=%.2f" % (sum1, sum2) ) 运行结果: sum1=107, sum2=22.50 拼接字符串 当+用于数字时表示加法,但是当+用于字符串时,它还有拼接字符串(将两个字符串连接为一个)的作用,请看代码: name = "C语言中文网" url = "http://c.biancheng.net/" age = 8 info = name + "的网址是" + url + ",它已经" + str(age) + "岁了。" print(info) 运行结果: C语言中文网的网址是http://c.biancheng.net/,它已经8岁了。 str() 函数用来将整数类型的 age 转换成字符串。 - 减法运算符 减法运算也和数学中的规则相同,请看代码: n = 45 m = -n x = -83.5 y = -x print(m, ",", y) 运行结果: -45 , 83.5 求负 -除了可以用作减法运算之外,还可以用作求负运算(正数变负数,负数变正数),请看下面的代码: n = 45 n_neg = -n f = -83.5 f_neg = -f print(n_neg, ",", f_neg) 运行结果: -45 , 83.5 注意,单独使用+是无效的,不会改变数字的值,例如: n = 45 m = +n x = -83.5 y = +x print(m, ",", y) 运行结果: 45 , -83.5 *乘法运算符 乘法运算也和数学中的规则相同,请看代码: n = 4 * 25 f = 34.5 * 2 print(n, ",", f) 运行结果: 100 , 69.0 重复字符串 *除了可以用作乘法运算,还可以用来重复字符串,也即将 n 个同样的字符串连接起来,请看代码: str1 = "hello " print(str1 * 4) 运行结果: hello hello hello hello / 和 // 除法运算符 Python 支持/和//两个除法运算符,但它们之间是有区别的: /表示普通除法,使用它计算出来的结果和数学中的计算结果相同。 //表示整除,只保留结果的整数部分,舍弃小数部分;注意是直接丢掉小数部分,而不是四舍五入。 请看下面的例子: #整数不能除尽 print("23/5 =", 23/5) print("23//5 =", 23//5) print("23.0//5 =", 23.0//5) print("-------------------") #整数能除尽 print("25/5 =", 25/5) print("25//5 =", 25//5) print("25.0//5 =", 25.0//5) print("-------------------") #小数除法 print("12.4/3.5 =", 12.4/3.5) print("12.4//3.5 =", 12.4//3.5) 运行结果: 23/5 = 4.6 23//5 = 4 23.0//5 = 4.0 ------------------- 25/5 = 5.0 25//5 = 5 25.0//5 = 5.0 ------------------- 12.4/3.5 = 3.542857142857143 12.4//3.5 = 3.0 从运行结果可以发现: /的计算结果总是小数,不管是否能除尽,也不管参与运算的是整数还是小数。 当有小数参与运算时,//结果才是小数,否则就是整数。 需要注意的是,除数始终不能为 0,除以 0 是没有意义的,这将导致 ZeroDivisionError 错误。在某些编程语言中,除以 0 的结果是无穷大(包括正无穷大和负无穷大)。 Python 2.x 中的除法 Python 2.x 只提供了一种除法运算,就是/,它的行为和大部分编程语言中/的行为是一样的: 当/两边都是整数时,结果始终是整数;如果不能除尽,就直接舍弃小数部分。 当/两边有一个是小数时,结果始终是小数;如果恰好除尽,小数部分就是 0。 请看下面的代码: #整数除法 print "18/6 =", 18/6 print "47/7 =", 47/7 print "----------------" #小数除法 print "18.0/6 =", 18.0/6 print "47.0/7 =", 47.0/7 print "29.5/4.2 =", 29.5/4.2 运行结果: 18/6 = 3 47/7 = 6 ---------------- 18.0/6 = 3.0 47.0/7 = 6.71428571429 29.5/4.2 = 7.02380952381 你可以将 Python 2.x 中的/看作 Python 3.x 中/和//的结合体,因为 Python 2.x 中/的行为有点奇怪,所以 Python 3.x 增加了//运算符,用以规范除法运算的行为。 % 求余运算符 Python % 运算符用来求得两个数相除的余数,包括整数和小数。Python 使用第一个数字除以第二个数字,得到一个整数的商,剩下的值就是余数。对于小数,求余的结果一般也是小数。 注意,求余运算的本质是除法运算,所以第二个数字也不能是 0,否则会导致 ZeroDivisionError 错误。 Python % 使用示例: print("-----整数求余-----") print("15%6 =", 15%6) print("-15%6 =", -15%6) print("15%-6 =", 15%-6) print("-15%-6 =", -15%-6) print("-----小数求余-----") print("7.7%2.2 =", 7.7%2.2) print("-7.7%2.2 =", -7.7%2.2) print("7.7%-2.2 =", 7.7%-2.2) print("-7.7%-2.2 =", -7.7%-2.2) print("---整数和小数运算---") print("23.5%6 =", 23.5%6) print("23%6.5 =", 23%6.5) print("23.5%-6 =", 23.5%-6) print("-23%6.5 =", -23%6.5) print("-23%-6.5 =", -23%-6.5) 运行结果: -----整数求余----- 15%6 = 3 -15%6 = 3 15%-6 = -3 -15%-6 = -3 -----小数求余----- 7.7%2.2 = 1.0999999999999996 -7.7%2.2 = 1.1000000000000005 7.7%-2.2 = -1.1000000000000005 -7.7%-2.2 = -1.0999999999999996 ---整数和小数运算--- 23.5%6 = 5.5 23%6.5 = 3.5 23.5%-6 = -0.5 -23%6.5 = 3.0 -23%-6.5 = -3.5 从运行结果可以发现两点: 只有当第二个数字是负数时,求余的结果才是负数。换句话说,求余结果的正负和第一个数字没有关系,只由第二个数字决定。 %两边的数字都是整数时,求余的结果也是整数;但是只要有一个数字是小数,求余的结果就是小数。 本例中小数求余的四个结果都不精确,而是近似值,这和小数在底层的存储有关系,有兴趣的读者请猛击《小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计(长篇神文)》了解更多。 ** 次方(乘方)运算符 Python ** 运算符用来求一个 x 的 y 次方,也即次方(乘方)运算符。 由于开方是次方的逆运算,所以也可以使用 ** 运算符间接地实现开方运算。 Python ** 运算符示例: print('----次方运算----') print('3**4 =', 3**4) print('2**5 =', 2**5) print('----开方运算----') print('81**(1/4) =', 81**(1/4)) print('32**(1/5) =', 32**(1/5)) 运行结果: ----次方运算---- 3**4 = 81 2**5 = 32 ----开方运算---- 81**(1/4) = 3.0 32**(1/5) = 2.0 (编辑:包头站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐