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