'''
* 算数运算符
+、-、*、/、%(模---余数)、**(幂)、//(取整--商)
'''
# / 产生一个浮点数结果,获取整数使用 " // " 操作符
print(12 / 3)
# print(20 % 3)
# print(2 ** 3)
# print(5 // 3)
# 在混合计算时,Python 会把整型转换成为浮点数。
'''
打印1341的个位、十位、百位、千位
'''
# x = 1341
# print(x % 10)
# print(x % 100 // 10)
# print(x // 100 % 10)
# print(x // 1000)
'''
作业
一个三位数 121 回文数
用户输入一个判断是否是回文数
'''
'''
* 比较运算符 (同一数据类型) 比较结果为True或者False
==、!=(<>python2.7中)、>、<、>=、<=
判断结果为True或False
'''
# if 1 != 2:
# print("Yes")
# else:
# print("No")
# 注意 1 < x < 7 在python可行(不建议)
# if 1 < 4 and 4 < 7:
# print("Yes")
# else:
# print("No")
'''
* 赋值运算符
=、+=、-=、*=、/=、**=、%=、//=
'''
# x = 12
# x += 20 # 相当于 x = x + 20
'''
* 位运算符
&(都为1结果为1,否则为0)
|(一个为1结果为1)
^(异或,不同为1)
~(取反)
<<(左移,高位丢弃,低位补0) == 乘2**N
(正数的原码反码补码都一样)
负数的反码=原码取反
补码=反码+1(符号位不变)
(左移负数补1)
'''
# x = 10
# y = 8
# z = x & y
# print(z)
# z1 = x | y
# print(z1)
# z3 = x ^ y
# print(z3)
#
# z4 = ~x
# print(z4)
#
# z5 = y << 2 # 相当于乘2**N N 为要移动的位数
# print(z5)
# z6 = y >> 2 # 相当于除2**N N 为要移动的位数
# print(z6)
"""
* 逻辑运算符
and、or、not
"""
# True == 1
# False == 0
print(int(True), int(False))
# 判断结果不为0,都为True
# and 所有的条件都为True才为True,当第一个条件不成立,则不执行第二个条件判断
# or 只要一个结果为True则整个结果为True,连续判断当第一个为True则不再执行第二个条件判断
# not 相当于取反True转为False
# if not 0 and 2:
# print("Yes")
# else:
# print("NO")
'''
* 成员运算符
in 、not in
# in 在成员里面
not in 不再成员里
'''
# str = "abcdef"
# if not "g" in str:
# print("OK")
# else:
# print("NO")