先提问: 运算符是什么?表达式是什么?
我们先来说运算符。
运算符是一些可以用 + 号或其他关键词符号(如:+,-,*,/)替代的功能。运算符会对相关数据进行运算,这些被运算的数据称为操作数。
下面列出了常用的运算符
+ (加)
- (减)
* (乘)
** (乘方)
/ (除)
// (除且取整)
% (取模)
<< (左移)
>> (右移)
& (按位与)
|
(按位或)
^ (按位异或)
~ (按位取反)
< (小于)
> (大于)
<= (小于或等于)
>= (大于或等于)
== (等于)
!= (不等于)
not (布尔非)
and (布尔与)
or (布尔或)
这么多的运算符,会不会看的脑袋有点晕?嘻嘻,别慌,我们用代码来看这一连串的运算符。
# + (加)
# 将两对象相加
print(4+5) # 看看打印的结果是多少?
print('虎' + '哥')
# - (减)
# 将一个数减去另一个数
print(-67)
print(100-11)
# * (乘)
# 得到两个数相乘的值,或者将一个字符串重复若干次。
print(3*4)
print('虎' * 3) # 想不到吧,字符串也可以做乘法
# ** (乘方)
# 返回 x 的 y 次幂
print(2**4) # 2**4 的算术展开式: 2*2*2*2
#/ (除)
# x 除以 y
# 13 / 3 得到 4.333333333333333
print(14 / 5)
# // (除且取整)
# x 除以 y 并返回小于商的最大整数,注意,如果操作数之一为浮点数,则返回值必为浮点数。
print(14//5)
print(-13//3) # 注意这里 是向下取整除法
print(10//3.14) # 注意这里 是向下取整除法
#% (取模)
#返回作除法之后的余数。
#13 % 3 得到 1. -25.5 % 2.25 得到 1.5.
print (10%4)
print (-10%4) # 注意这里 是向下取整除法,并且注意,Python中的% 与 C语言的%运算符的意思是完全不同的
# <<,>>,&,|,^,~ 这几个都是按位操作的
#<< (左移)
#将数字位向左移动指定的位数。每个数字在内存中用位或二进制数(如 0 和 1 )表示。
print(2<<3) # 2的二进制为10,10左移3位 得10000,十进制16.
# >> (右移)
#将数字按位向右移动指定的位数。
#根据上面的例子,我们用16向右移动4位,结果会是多少呢?同学们去打印一下
print(16>>4) # 16 的二进制为10000,右移4位,那么结果应该为1.
#& (按位与)
#数字的按位与, 是按照数的二进制的按位与
# 6 & 4 得到 4。 也就是110 & 100 = 100
print(6&4)
# | (按位或)
# 数字的按位或, 是按照数的二进制的按位与
# 6 | 4 得6 , 110 | 100 = 110
print(6|4)
#^ (按位异或)
#数字的按位异或
# 6 ^ 4 得到 2, 110 ^ 100 = 10
print(6^4)
#~ (按位取反)
#x 按位取反是 -(x+1)
#~6 得到 -7。
print(~6)
#< (小于)
#返回 x 是否小于 y 。比较运算符只返回 True 或 False。
#9 < 6 得到 False ,而 6 < 9 得到 True。
print(9<6)
print(6<9)
#> (大于)
#返回 x 是否大于 y
#9 > 6 返回 True。 6>9 返回 False.
print(9>6)
print(6>9)
#<= (小于或等于)
#返回 x 是否小于或等于 y
#x = 6; y = 9; x <= y 返回 True
print(6<=9)
# >= (大于或等于)
# 返回 x 是否大于或等于 y, True,或者 False
print(6>=9)
# == (等于)
#比较一下对象是否相等, 可以是数字的比较,也可以是字符串的比较,还可以是对象(之后在说对象)的比较
# x = 6; y = 9; x == y 返回 False
x = 6
y = 9
print(x == y)
# x = 'fff'; y = 'ffA'; x == y 返回 False
x = 'fff'
y = 'ffA'
print(x == y)
# x = 'FFF'; y = 'FFF'; x == y 返回 True
x = 'fff'
y = 'fff'
print(x == y)
#!= (不等于)
#比较一下对象是否不相等
#x = 2; y = 3; x != y 返回 True
x = 6
y = 9
print(x != y)
# 同样也可以字符串的比较
x = 'fff'
y = 'fff'
print(x != y)
# not (布尔非)
# 如果 x 为 True,它会返回 False。 如果 x 为 False,它会返回 True。
x = True;
print(not x)
#and (布尔与)
#如果 x 为 False , x and y 返回 False 。否则,返回 y 的值
x = False
y = True
print(x and y) #因为 x 为False了,在这种情况下, Python 不会计算 y ,因为它知道 ‘and’ 表达式的左边为 False,在去计算右边的y值,就没有意义了
#or (布尔或)
# 如果 x 为 True,它会返回真,否则返回 y 的值
x = True
y = False
print(x or y) # 返回 True。在这种情况下, Python 不会计算 y ,因为它知道 ‘or’ 表达式的左边为 True,在去计算右边的y值,就没有意义了,也就是不管y是True,或者False,都返回True。