Python学习-运算符的介绍和运用

本文介绍了Python中的运算符,包括运算符的概念和分类,详细讲解了算术、比较、赋值、位、逻辑、成员、身份和三元运算符,并讨论了运算符的优先级。还探讨了格式化字符串的不同方法,如+号拼串、参数传递、占位符、f-string和str.format()。最后给出了课程作业和解答示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 运算符的概念和分类

1.1 运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。

1.2 运算符的分类

Python支持的运算符有:
(1)算术运算符
(2)比较(关系)运算符
(3)赋值运算符
(4)逻辑运算符
(5)位运算符
(6)成员运算符
(7)身份运算符
(8)三元运算符

2 Python运算符

2.1 算术运算符

运算符描述
+加,两个对象相加或者两个对象拼接(如字符串、列表)
-减,得到一个负数或者一个数减去另一个数
*乘, 两个数相乘或者返回一个被重复若干次的对象(如字符串、列表)
/除,如x除以y:x/y
%取模,返回除法的余数
**幂,如x的y次幂:x**y
//取整除,向下取接近商的整数

实例如下:

>>> a=6
>>> b=16
>>> c=2
>>> a+b+c
24
>>> print("Hello"+","+"Python")
Hello,Python
>>> print([1,"haha"]+[6.6,"hei"])
[1, 'haha', 6.6, 'hei']
>>> -a
-6
>>> b-a
10
>>> a*c
12
>>> print("learning"*2)		# *后面的数字代表重复的次数
learninglearning
>>> print([1,"haha"]*2)
[1, 'haha', 1, 'haha']
>>> a/c			# 两个整型的商是浮点型
3.0
>>> b%a
4
>>> a**2
36
>>> -7//2
-4

2.2 比较(关系)运算符

运算符描述
==等于,比较对象是否相等
!=不等于,比较两个对象是否不相等
>大于,比较x是否大于y
<小于,比较x是否小于y
>=大于等于, 比较x是否大于等于y
<=小于等于, 比较x是否小于等于y
>>> x=4
>>> y=6
>>> x==y
False
>>> x!=y
True
>>> x>y
False
>>> x<y
True
>>> x>=y
False
>>> x<=y
True

2.3 赋值运算符

运算符描述
=简单的赋值运算符
+=加法运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算法
:=海象运算符,可在表达式内部为变量赋值。Python3.8版本新增的运算符
>>> a=2
>>> b=3
>>> c=0
>>> c=a+b
>>> print(c)
5
>>> a+=1		# 等价于a=a+1,运行之后a的值为3
>>> print(a)	
3
>>> b-=1		# 等价于b=b-1,运行之后b的值为2
>>> print(b)	 
2
>>> a*=b		# 等价于a=a*b,运行之后a的值为6
>>> print(a)	
6
>>> a/=b		# 等价于a=a/b,运行之后a的值为3
>>> print(a)	
3.0
>>> a%=b		# 等价于a=a%b,运行之后a的值为1
>>> print(a)
1.0
>>> b**=2		# 等价于b=b**2,运行之后b的值为4
>>> print(b)
4
>>> b//=2		# 等价于b=b//2,运行之后b的值为2
>>> print(b)
2

2.4 位运算符

位运算符是把数字看作二进制来进行计算的。Python中的位运算法则如下:
a=0011 1100
b=0000 1101
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011

运算符描述
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
竖杠按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^按位异或运算符:当两对应的二进位相异时,结果为1
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数

注意:其他进制数字的位运算需要先转换为二进制,然后再进行 位运算。

2.5 逻辑运算符

运算符逻辑表达式描述
andx and y布尔"与" , 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
orx or y布尔"或" , 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
>>> a=1
>>> b=2
>>> a and b
2
>>> a or b
1
>>> not a
False
>>> a=0		# 改变a的值
>>> a and b
0
>>> a or b
2

注意:在逻辑运算中,数字0代表False,其他数字代表True

2.6 成员运算符

成员运算符一般用于判断某元素是否在某一实例中,如字符串,列表或元组。

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。
>>> a=1
>>> b=2
>>> list_one=[2,3,4]
>>> a in list_one
False
>>> b in list_one
True
>>> a not in list_one
True

2.7 身份运算符

身份运算符一般用于比较两个比较的存储单元。id() 函数用于获取对象内存地址。

运算符描述
is判断两个标识符是不是引用自一个对象
is not判断两个标识符是不是引用自不同对象
>>> a=11
>>> b=11
>>> c=22
>>> a is b
True
>>> a is c
False
>>> a is not c
True
>>> id(a)
1672965184
>>> id(b)	
1672965184
>>> id(a)==id(b)	# id(a)的值与id(b)的值相同,说明有相同的标识
True
>>> id(c)
1672965536
>>> id(a)!=id(c)	# id(a)的值与id(c)的值不相同,说明没有相同的标识
True

注意 is 与 == 是有区别的:

  • is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

2.8 三元运算符

在这里插入图片描述

  • 条件运算符在执行时,会先对条件表达式进行求值判断,如果判断结果为True,则执行语句1,并返回执行结果;如果判断结果为False,则执行语句2,并返回执行结果。
  • 语法: 语句1 if 条件表达式 else 语句2

3 运算符优先级

下面的运算符列出了从最高到最低优先级(顺序从上往下)的所有运算符,在同一单元表示同级:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,求余数和取整除
+ -加法、减法
>> <<右移,左移运算符
&and,与
^ 竖杠位运算符
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

4 格式化字符串

最后为了更好地完成课程作业,补充格式化字符串这一个知识点
(1)第一种格式化字符串:用+号拼串
(2)第二种格式化字符串:参数传递
(3)第三种格式化字符串:占位符
%s字符串占位符、%f浮点数占位符、%d整数占位符
(4)第四种格式化字符串:f’{变量}’
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,这样就不用再去判断使用 %s,还是 %d。
(5)第五种格式化字符串:str.format()
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。

>>> "{}{}".format("hello ","world")		# 不设置指定位置,按默认顺序
'hello world'
>>> "{0}{1}".format("hello ","world")	# 设置指定位置
'hello world'
>>> "{1}{0}{1}".format("hello ","world")	# 设置指定位置
'worldhello world'

课程作业:
1、以4种格式化字符串的方式来实现”521 xxx 嫁给我好吗?“
2、现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值。
解答如下:
1、不止四种方式:

#	方式一
print("521"+"***"+"嫁给我好吗?")
#	方式二
 str="521***嫁给我好吗?"
 print("字符串str:"+str)
 #	方式三
 print( "521 *** %s"%"嫁给我好吗")
 #	方式四
str1="521 *** "
str2="嫁给我好吗"
print(f"{str1}{str2}")
#	方式五
"{0}{1}{2}".format("521 ","*** ","嫁给我好吗")

2、第二道题由于有三个变量,所以用三元运算符处理相对麻烦,而且可读性会比较差,因此用if…elif…else语句会更好处理:

>>> a=1
>>> b=2
>>> c=3
>>> if a>b and a>c:
	print("最大的值为:a")
elif b>a and b>c:
	print("最大的值为:b")
else:
	print("最大的值为:c")

最大的值为:c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值