+--*/--基本运算符

Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

1.算数运算符(可以跟= 形成赋值运算符)

代码

a = 23.6
b = 14.7
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)
print(a//b)
print(a**b)
print("======================")
a = 10
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)
print(a//b)
print(a**b)

结果

38.3
8.9
346.92
1.60544217687
8.9
1.0
1.51987000319e+20
======================
12
8
20
5
0
5
100

总结

+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2(如果两个都是整数,跟//等效,否则,正常触法)
% 取模 - 返回除法的余数 b % a 输出结果 0(如果余数不是整数,结果仍然是类似于除法结果)
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0(永远取整数结果)

 

算术运算符跟赋值运算符可以搭配形成混合运算符。如 a+=b 它等价于 a = a + b

2.关系运算符

代码

a = 2
b = 1
print(a > b)
print(a < b)
print(a <> b)
print(a == b)
print(a != b)
print(a >= b)
print(a <= b)

结果

True
False
True
False
True
True
False

总结

== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 True。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。

注意

它的状态的首字母都是大写的,这是跟java等语言的不同点

3.位运算符

代码

a = 2#00000010
b = 1#00000001
print(a & b)
print(a | b)
print(a ^ b)
print(~a)
print(a>>1)
print(a<<2)

结果

0
3
3
-3
1
8

总结

& 按位与运算符 (a & b) 输出结果 12 ,二进制解释: 0000 1100(一0则0)
| 按位或运算符 (a | b) 输出结果 61 ,二进制解释: 0011 1101(一1则1)
^ 按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001(相同则0)
~ 按位取反运算符 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。(01互换)
<< 左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000(每一位往左移动n位)
>> 右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111(每一位往右移动n位)

这个是跟c语言一样的,主要是把两个量,转为二进制进行位的操作

4.逻辑运算符

代码

if 0 and 1:
    print("0 and 1 False")
print("0 and 1",(0 and 1))
print("False and 1",(False and 1))
print("True and 1",(True and 1))
print("\n")
if 2 or 3:
    print("2 and 3 True")
print("2 or 3",(2 or 3))
print("True or 3",(True or 3))
print("False or 3",(False or 3))
print("\n")
if not 0:
    print("not 0 True")

print("not 0",(not 0))
print("not False",(not False))
print("not 3",(not 3))
print("not True",(not True))

结果

('0 and 1', 0)
('False and 1', False)
('True and 1', 1)


2 and 3 True
('2 or 3', 2)
('True or 3', True)
('False or 3', 3)


not 0 True
('not 0', True)
('not False', True)
('not 3', False)
('not True', False)

总结

and 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。 (a and b) 返回 true。
or 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。 (a or b) 返回 true。
not 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。 not(a and b) 返回 false

5.成员运算符

代码

if 1 in (1,2,3,4):
    print("1 in (1,2,3,4)")
else:
    print("1 not in (1,2,3,5)")
if 1 not in (2,3,3):
    print("1 not in (2,3,4)")
else:
    print("1 in (2,3,4)")

结果

1 in (1,2,3,4)
1 not in (2,3,4)

结论

in 如果在指定的序列中找到值返回True,否则返回False。 x 在 y序列中 , 如果x在y序列中返回True。
not in 如果在指定的序列中没有找到值返回True,否则返回False。 x 不在 y序列中 , 如果x不在y序列中返回True。

6.身份运算符

代码

a ="hahaha"
b = "hahaha"
print(a is b)
print(id(a) == id(b))

结果

a ="hahaha"
b = "hahaha"
print(a is b)
print(id(a) == id(b))

总结

is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

感觉它有点像是判断两个值是否相等。具体有什么用处还不明白,等以后用到再深入研究吧

 

posted @ 2015-06-01 15:09  小白屋  阅读(1325)  评论(0编辑  收藏  举报