示例3-17—比较运算符的使用:
示例3-18—逻辑运算符的使用:
print(True and True) # True
print(True and False) # False
print(False and False) # False
print(False and True) # False
print('-'*40)
print(8>7 and 6>5) # True
print(8>7 and 6<5) # False
print(8<7 and 10/0) # False, 10/0并没有运算,当第一个表达式的结果为False,直接得结果,不会计算and右侧的表达式了
print('-'*40)
print(True or True)
print(True or False)
print(False or False) # False
print(False or True)
print('-'*40)
print(8>7 or 10/0) # True,左侧的表达式结果为True时,or的右侧表达式根本不执行运算
print('-'*40)
print(not True) # False
print(not False) # True
print(not (8>7)) # False
位运算符把数字看作二进制数来计算的。
“左移位”运算(<<)是将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。
“右移位”运算(>>)是将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。
示例3-19—位运算:
print('按位与运算', 12&8) # 8
print('按位或运算', 4|8) # 12
print('按位异或运算符', 31^22) # 9
print('按位取反:', ~123) # -124
# 左乘右除
print('左移位:', 2<<2) # 8, 表示2向左移动两位 2*2*2
print('左移位:', 2<<3) # 16, 相当于2* 2*2*2
print('右移位:', 8>>2) # 2, 8向右移动两位相当于 8//2,4//2
print('右移位:', -8>>2) # -2
运算符的优先级:
本章总结
可以是字母(包含中文)、数字、下划线,第一个字符不能是数字
不能是Python中的保留字
标识符严格区分大小写
以下划线开头的标识符有特殊意义,不能随便使用
允许使用中文作为标识符,但不建议使用
变量名=value
章节习题
参考答案:1-5:C(大写的True才是) BADB 6-10: AADB
实战一:
num = eval(input("请输入一个四位整数:"))
print('个位上的数字为:', num % 10)
print('十位上的数字为:', num // 10 % 10)
print('百位上的数字为:', num // 100 % 10)
print('千位上的数字为:', num // 1000)
print('-'*40)
num = input('请输入一个四位整数:') # num是一个字符串类型
print('个位上的数:', num[3])
print('十位上的数:', num[2])
print('百位上的数:', num[1])
print('千位上的数:', num[0])
实战二:
father_height = eval(input('请输入爸爸的身高:'))
mother_height = eval(input('请输入妈妈的身高:'))
son_height = (father_height + mother_height) * 0.54
print('预测儿子的身高为:', son_height)