概述
文章目录
- 一、运算符优先级
- 二、位运算符
- 1.按位与运算符( & )
- 2.按位或运算符( | )
- 3.按位异或运算符( ^ )
- 4.按位取反运算符( ~ )
- 三、左移运算符和右移运算符
- 1.左移运算符(<<)
- 2.右移运算符(>>)
- 四、关系运算符和关系运算表达式
- 1.关系运算符
- 2.关系运算表达式
- 五、小练习
- 六、逻辑运算符
- 1.逻辑与(and)
- 2.逻辑或(or)
- 3.逻辑非(not)
- 七、成员运算符(in 和 not in)
- 八、身份运算符(is 和 is not)
运算符与表达式(上)【在《python学习笔记:2、print&input与变量和运算符》的第八结】友情链接:
python学习笔记:2、print&input与变量和运算符
一、运算符优先级
第一级 | ** |
---|---|
第二级 | ~ + -(正负号) |
第三级 | * / % // |
第四级 | + -(加减) |
第五级 | >> << |
第六级 | & |
第七级 | ^ |
第八级 | <= < > >= |
第九级 | == != |
第十级 | = %= += -= //= |
第十一级 | is is not |
第十二级 | in not in |
第十三级 | not or and |
二、位运算符
问:什么是位运算符?
答:按位运算符是把数字看作二进制数来进行计算。
1.按位与运算符( & )
运算方法:相应的位数都为1,则该位的结果是1.否则为0。
举例:
print(11 & 7)
'''
11的二进制数:1011
7的二进制数:0111
运算过程(相与):
1011
0111
----
0011
0011化为十进制数为3
所以运算结果为3
'''
2.按位或运算符( | )
运算方法:两个二进制有一个为1,结果就为1。
举例:
print(11 | 7)
'''
11的二进制数:1011
7的二进制数:0111
运算过程(相或):
1011
0111
----
1111
1111化为十进制数为15
所以运算结果为15
'''
3.按位异或运算符( ^ )
运算方法:二进制的两位相异时结果为1,相同结果为0。
举例:
print(11 ^ 7)
'''
11的二进制数:1011
7的二进制数:0111
运算过程(异或):
1011
0111
----
1100
1100化为十进制数为:12
所以运算结果为12
'''
4.按位取反运算符( ~ )
运算方法:每个二进制数据位取反,1变0,0变1。
举例:
print(~10)
'''
10的二进制数:1010
运算结果:-11
'''
内存中(即计算机中)存储的形式 | 显示为10进制时 | |
---|---|---|
10 | 0000 1010 | 10 |
~10 | 1111 0101 | 最高位为1,故(~10)为负数。因反码=补码-1,得(1111 0101) - 1=1111 0100,取反得1000 1011,即-11。 |
三、左移运算符和右移运算符
1.左移运算符(<<)
各二进制位全部左移动若干位,由<<右侧的数字决定,高位丢弃,低位补零。
print(2 << 2)
'''
2的二进制数:0000 0001
向左移动两位:0000 0100
故运算结果为:8
'''
2.右移运算符(>>)
各二进制位全部右移动若干位,由“>>”右侧的数字决定。
print(13 >> 2)
'''
13的二进制数:0000 1101
向右移动两位:0000 0011
故运算结果为:3
'''
四、关系运算符和关系运算表达式
1.关系运算符
== | != | > | < | >= | <= |
---|
2.关系运算表达式
关系运算表达式举例:1 + 2 > 3 + 4
格式: 表达式1 关系运算符 表达式2
功能:计算“表达式1”和“表达式2”的值。
值:如果关系成立,整个关系运算符表达式的值位真,否则为假。
五、小练习
输入一个年份判断是否是闰年。
note:能被4整除但是不能被100整除 或者 能被400整除。
year = int(input())
if (year % 4 == 0 and year % 100 != 0 )or year % 400 == 0:
print("是闰年")
else:
print("不是闰年")
六、逻辑运算符
逻辑与 | and |
---|---|
逻辑或 | or |
逻辑非 | not |
1.逻辑与(and)
逻辑与运算表达式:表达式1 and 表达式2
值:
如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真。
如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为假。
如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为假。
如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假。
即【有一个为假就为假】。
举例:
num1 = 10
num2 = 20
if num1 and num2:
print("**********")
print(num1, num2)
#编译结果:**********
10
20
note:
短路原则
表达式1 and 表达式2 and 表达式3 and … and 表达式n
从左往右如果有一个值为假,则该表达式都为假,后面的都不执行了。
2.逻辑或(or)
逻辑或运算表达式: 表达式1 or 表达式2
值:
表达式1的值为真,表达式2的值为真,逻辑或运算表达式为真。
表达式1的值为真,表达式2的值为假,逻辑或运算表达式为真。
表达式1的值为假,表达式2的值为真,逻辑或运算表达式为真。
表达式1的值为假,表达式2的值为假,逻辑或运算表达式为假。
即【有一个为真就为真】
举例:
num3 = 0
num4 = 1
if num3 or num4:
print("|||||||||||")
#编译结果:|||||||||||
note:
表达式1 or 表达式2 or 表达式3 or … or 表达式n
有一个为真,表达式为真,后面的都不执行了。
3.逻辑非(not)
逻辑非运算表达式: not 表达式
值:
如果表达式的值为真,整体逻辑非运算表达式为假。
如果表达式的值为假,整体逻辑非运算表达式为真。
即【颠倒黑白】
if not 0:
print("^^^^^^^^^^^^^^^^")
#编译结果:^^^^^^^^^^^^^^^^
七、成员运算符(in 和 not in)
in: 如果在指定的序列中找到值 返回True,否则返回False。
not in: 如果在指定的序列中没有找到值 返回True,否则返回False。
举例:
假如有一个字符串str1 = "Nice to meet you"要判断“you”是否在这个字符串中的时候我们可以用成员运算符。
str1 = "Nice to meet you"
print("good" in str1)
#输出:True
print("good" not in str1) #输出:False
八、身份运算符(is 和 is not)
is: 判断两个标识符是不是引用同一个对象
is not: 判断两个标识符是不是引用不同的对象
最后
以上就是细腻蜗牛为你收集整理的python学习笔记2补充:运算符与表达式(下)一、运算符优先级二、位运算符三、左移运算符和右移运算符四、关系运算符和关系运算表达式五、小练习六、逻辑运算符七、成员运算符(in 和 not in)八、身份运算符(is 和 is not)的全部内容,希望文章能够帮你解决python学习笔记2补充:运算符与表达式(下)一、运算符优先级二、位运算符三、左移运算符和右移运算符四、关系运算符和关系运算表达式五、小练习六、逻辑运算符七、成员运算符(in 和 not in)八、身份运算符(is 和 is not)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复