3.1 算术运算符

算术运算符常用的有:+,-,*,**,/,//,%,>>,<<

+ (加)

两个数相加。

对字符串使用+运算符,结果为字符串连接在一起。字符串和数值不能进行+的操作。

3 + 5 则输出 8 。 'abc' + 'def' 则输出 'abcdef' 。

- (减)

从一个数中减去另一个数,如果第一个操作数不存在,则假定为零。

-5.2 将输出一个负数, 50 - 24 输出 26 。

* (乘)

给出两个数的乘积。

字符串和数值使用*运算符,返回字符串重复指定次数后的结果,两个字符串不能使用*。

3 * 5 输出 15 。 'abc' * 5 输出 'abcabcabcabcabc' 。

** (乘方)

返回 x 的 y 次方。

3 ** 4 输出 81 (即 3 * 3 * 3 * 3 )。

/ (除)

x 除以 y,结果为浮点类型。

13 / 3 输出 4.333333333333333 。

// (整除)

x 除以 y 并对结果向下取整至最接近的整数,通常称为地板除,结果为整型。

13 // 3 输出 4 。

思考:

-13 // 3 输出?

13 // -3 输出?

-13 // -3 输出?

% (取模)

返回除法运算后的余数。

13 % 3 输出 1 。

思考:

-13 % 3 输出?

13 % -3 输出?

-13 % -3 输出?

// 和 % 的联系:整除的结果是商,取模的结果是余数。

如果:x // y = a,x % y = b

那么:x = a * y + b,可以通过此关系得出余数。

<< (左移)

将数字的位向左移动指定的位数。数字在内存中以二进制数表示,即 0 和1的序列。向左移动一位,相当于乘以2。

2 << 2 输出 8 。

2 用二进制数表示为 10 。向左移 2 位会得到 1000 这一结果,表示十进制中的 8 。

>> (右移)

将数字的位向右移动指定的位数。向右移动一位,相当于整除2。

11 >> 1 输出 5 。

11 在二进制中表示为 1011 ,右移一位后输出 101 这一结果,表示十进制中的5 。

以上例子代码:3.1-算术运算符.py

# 算术运算符

# +:加
print('3 + 5 = {}'.format(3 + 5))
# 字符串的加
print("'abc' + 'def' = '{}'".format('abc' + 'def'))

# -:减
print('50 - 24 = {}'.format(50 - 24))

# *:乘
print('3 * 5 = {}'.format(3 * 5))
# 字符串和数值相乘
print("'abc' * 5 = '{}'".format('abc' * 5))

# **:乘方
print('3 ** 4 = {}'.format(3 ** 4))

# /:除法
print('13 / 3 = {}'.format(13 / 3))

# //:地板除
print('13 // 3 = {}'.format(13 // 3))
print('-13 // 3 = {}'.format(-13 // 3))
print('13 // -3 = {}'.format(13 // -3))
print('-13 // -3 = {}'.format(-13 // -3))

# %:取模
print('13 % 3 = {}'.format(13 % 3))
print('-13 % 3 = {}'.format(-13 % 3))
print('13 % -3 = {}'.format(13 % -3))
print('-13 % -3 = {}'.format(-13 % -3))

# <<:左移
print('2 << 2 = {}'.format(2 << 2))

# >>:右移
print('11 >> 1 = {}'.format(11 >> 1))

结果为:

3 + 5 = 8
'abc' + 'def' = 'abcdef'
50 - 24 = 26
3 * 5 = 15
'abc' * 5 = 'abcabcabcabcabc'
3 ** 4 = 81
13 / 3 = 4.333333333333333
13 // 3 = 4
-13 // 3 = -5
13 // -3 = -5
-13 // -3 = 4
13 % 3 = 1
-13 % 3 = 2
13 % -3 = -2
-13 % -3 = -1
2 << 2 = 8
11 >> 1 = 5