Python算术运算符及用法详解

樵夫2021-08-20 10:55

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了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 = "开课吧"
url = "https://www.kaikeba.com/"
age = 8
info = name + "的网址是" + url + ",它已经" + str(age) + "岁了。"
print(info)

运行结果:  

开课吧的网址是https://www.kaikeba.com/,它已经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)

运行结果:  

hellohellohellohello  

/和//除法运算符  

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的结果是无穷大(包括正无穷大和负无穷大)。  

Python2.x中的除法  

Python2.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

你可以将Python2.x中的/看作Python3.x中/和//的结合体,因为Python2.x中/的行为有点奇怪,所以Python3.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

以上就是小编为大家整理发布的“Python算术运算符及用法详解”一文,更多相关内容尽在开课吧Python教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
零基础轻松入门Python