Python入门之(2.2)运算符与表达式

目录

运算符与表达式

1.1算术运算符与算术表达式

1.2关系运算符和逻辑运算符

1.3赋值运算符

1.4位运算符

1.5成员运算符


 

运算符与表达式

Python运算符包括赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符和成员运算符。表达式是将不同类型的数据(常量、变量、函数)用运算符按照一定的规则连接起来的式子。

1.1算术运算符与算术表达式

Python支持的算术运算符如下表所示:

Python支持的算术运算符
运算符操作实例
+加法5+2 结果是 7
-减法5-2 结果是 3
*乘法5*2 结果是 10
/除法5/2 结果是 2.5
%取余5%2 结果是 1
**幂(指数)5**2 结果是 25
//整除5//2 结果是 2

上述算术运算符的优先级如下表所示,表中优先级由低到高排列。

算术运算符的优先级
运算符操作
+、-加法和减法
*、/、//、%乘法、除法、整除和取余
+x、-x正号和负号

**

()括号

算术表达式是常量、变量、函数和算术运算符的任意组合,并且表达式的运算结果是一个数值。

注意:

  1. 一个单独的常量或变量是表达式的一种特殊形式;
  2. 表达式中使用的常量不能出现逗号、美元符号和百分号;
  3. 表达式中不能出现未使用运算符连接的独立常量或变量;
  4. 不同类型的数值参与运算时,会发生强制类型转换。一个整数和一个浮点数相加时,首先把整数转换成浮点数,运算结果也是浮点数。

计算圆锥体的体积和表面积的程序如下:

import math
r=float(input("input r:"))
h=float(input("input h:"))
s=math.pi*r*math.sqrt(r**2+h**2)+math.pi*r**2
v=(1/3)*math.pi*r**2*h
print("该圆锥的体积为:={0:.2f}".format(v),\
      "该圆锥的表面积为:={0:.2f}".format(s))

运行结果为:

E:\PycharmProjects\PythonTest\venv\Scripts\python.exe E:/PycharmProjects/PythonTest/ssss.py
input r:12
input h:25
该圆锥的体积为:=3769.91 该圆锥的表面积为:=1497.82

Process finished with exit code 0

在做这个题的时候,刚开始把输入格式写错了,因为不知道怎样写,就凭感觉写的;(详见下一节:输入和输出)

然后就是math这个模块中的函数不太熟悉;

然后就是print的输出格式不太熟悉,之前都是直接输出一个变量,直接写在括号里就行了,像这种不仅输出变量的格式不太清楚。

 

1.2关系运算符和逻辑运算符

关系运算符用来比较两个数字或对象,比较运算的结果是False或者True。字符串比较也可以使用关系运算符,比较时按字母在编码表中的位置来决定其大小,位置靠前的字符比位置靠后的字符小。Python的关系运算符如下表所示:

Python中的关系运算符
运算符操作实例
==等于5==2  结果为 False
!=不等于5!=2 结果为 True
<小于5<2 结果为 False
<=小于或等于5<=2 结果为 False
>大于5>2 结果为 True
>=大于或等于5>=2 结果为 True
is判断两个标识符是否引用同一个对象引用(地址)比较
is not判断两个标识符是否引用不同的对象引用(地址)比较

注意:

  1. 8个比较运算符的优先级相同;
  2. Python允许x<y<=z这样的链式比较,它相当于(x<y)and(y<=z);
  3. 复数不能比较大小,只能比较是否相等;
  4. 除整数、浮点数、字符串可以比较外,所有其他类型的值之间不能直接比较;
  5. 用关系运算符连接的表达式成为关系表达式。表达式中可以包含变量、算术运算符和函数。在没有括号的情况下,先进行算术运算或函数运算,再进行比较。

逻辑运算符用来连接若干个关系表达式,以便构造复杂的判断。使用这些运算的判断称为复合运算。Python中的逻辑运算符如下表所示:

Python中的逻辑运算符
运算符操作说明
and逻辑与a and b,当a为真时才计算b,a与b都为真时,结果为真;否则为假
or逻辑或a or b,当a为假时才计算,a与b都为假时,结果为假;否则为真
not逻辑非not a,取反,a为真时,结果为假;否则为真

注意:

  1. 逻辑运算符的优先级低于关系运算符和算术运算符;
  2. 在无括号的情况下,三个运算符的优先级为:not>and>or;
  3. Python中的and和or具有短路求值的特点。运算规则如上表所示;
  4. 使用in或not in成员运算符可以简化条件。

判断某年是否是闰年的程序如下:

year=int(input('请输入年份:'))
if(year%100!=0) and (year%4==0) or (year%400==0):
    print("是闰年")
else:
    print("是平年")

执行结果:

E:\PycharmProjects\PythonTest\venv\Scripts\python.exe E:/PycharmProjects/PythonTest/ssss.py
请输入年份:400
是闰年

Process finished with exit code 0

在写代码时,有两点要注意:

  1. 好像是输入数的时候都要进行强制赋类型,这个是用int(),前面有个用的是float();(详见下一节:输入和输出)
  2. 在写if语句的时候,不用括号把判断条件括起来;但是括起来也是对的

1.3赋值运算符

Python除了普通赋值运算符之外,还支持复合赋值运算符,赋值运算的规则是从右往左运算。Python中的赋值运算符如下表所示:

Python中的赋值运算符
运算符操作实例
=简单赋值运算符c=5+2 c为7
+=加法赋值运算符c+=2 等价于 c=c+2
-=减法赋值运算符c-=2 等价于 c=c-2
*=乘法赋值运算符c*=2 等价于 c=c*2
/=除法赋值运算符c/=2 等价于 c=c/2
%=取余赋值运算符c%=2 等价于 c=c%2
**=幂赋值运算符c**=2 等价于 c=c**2
//=整除赋值运算符c//=2 等价于 c=c//2

1.4位运算符

位运算的规则是把数字转换为二进制数后进行运算,运算结果再转换回原来的进制。位运算符如下表所示:

Python的位运算符
运算符操作实例
&按位与运算符:对参与运算的两个值,如果两个对应的位都为1,则该位的结果为1;否则为012&5 结果为 4
|按位或运算符:只要对应的两个二进制位有一个为1,结果位就为112|5 结果为 13
^按位异或运算符:当两个对应的二进制位相异时,结果为112^5 结果为 9
~按位取反运算符:对数据的每个二进制位取反~12 结果为 -13
<<左移运算符:运算数的各二进位全部左移若干位,由该符号右边的数指定移动的位数,高位丢弃,低位补012<<5 结果为 384
>>右移运算符:运算数的各二进位全部右移若干位,由该符号右边的数指定移动的位数,低位丢弃,高位补012>>5 结果为 0

注意:

  1. ~12的求法。原码、反码和补码的知识还没掌握好;
  2. 12<<5的求法

1.5成员运算符

成员运算符用来判断一个元素在某一个序列中。比如,判断一个字符是否属于某个字符串,判断某个对象是否是列表中的一个元素等。成员运算符如下表所示:

Python的成员运算符
运算符操作实例
in在指定的序列中找到,返回真;否则返回假a in b
not in在指定的序列中没有找到,返回真;否则返回假a not in b

总结:整体来说,本小节的内容比较少也比较简单,但是还是存在一些掌握不太好的地方,有时候会了,但是过一段时间就又忘了。还是要多看。

下一节:

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值