Python学习笔记5——运算符和字符串格式化

本文详细介绍了Python中的运算符,包括算术、比较、赋值、成员和逻辑运算符,以及它们的优先级。同时,文章探讨了字符串格式化的三种方式:%、format和f-string,通过实例展示了各种格式化方法的用法。此外,还提供了一些相关面试题目的解析,帮助读者巩固理解。

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


前言

本章主要对python中的常用运算符进行简要的介绍,其实在大多数高级语言中,这一部分都是相同的,已经掌握的同学可以忽略掉。此外,尽管还没有系统地介绍字符串数据类型,但是提前介绍一下字符串的格式化这一部分内容,在输出字符串时更加得心应手。

一、运算符

1.1 常用运算符

  • 算数运算符,例如:加减乘除
    在这里插入图片描述
print( 9//2 ) #4
  • 比较运算符,例如:大于、小于
    在这里插入图片描述
    需要强调是,<>运算符在python3中已经被淘汰,所以在编程过程中应当统一使用!=来代指值不相等。
if 1 >2:
  pass
while 1>2:
  pass

data = 1 == 2 #False
  • 赋值运算,例如:变量赋值
    在这里插入图片描述
num = 1
while num < 100:
  print(num)
  # num = num + 1
  num += 1
  • 成员运算,例如:是否包含
    在这里插入图片描述
v1 = "le" in "alex"  # True
# 让用户输入一段文本,检测文本中是否包含敏感词。
text = input("请输入内容:")
if "枪支" in text:
  print("少儿不宜")
else:
  print(text)

注意in关键字的使用范围非常广泛,相对于C语言等能够减少代码量。

  • 逻辑运算,例如:与或非
    在这里插入图片描述
if username == "alex" and pwd == "123":
  pass

data = 1 > 2
if not data:
  pass

1.2 运算符的优先级

运算符的优先级非常之多,这里只强调常用的三条规则,对于不确定的优先级顺序,可以使用括号来以防万一。

  • 算数优先级优先级 大于 比较运算符
if 2 + 10 > 11: #12 > 11
	print("真")
else:
	print("假")
  • 比较运算符优先级 大于 逻辑运算符
if 1>2 and 2<10: #False and True
	print("成立")
else:
	print("不成立")
  • 逻辑运算符内部三个优先级 not > and > or
if not 1 and 1>2 or 3 == 8:
	print("真")
else:
	print("假")

上述这3个优先级从高到低总结:加减乘除 > 比较 > not > and > or

1.3 面试题目补充

v2 = "wupeiqi" and "alex"

# 第一步:将and前后的值转换为布尔值 True and True
# 第二步:判断本次操作取决于谁?由于前面的是True,所以本次逻辑判断取决于后面的值。
# 所以,后面的值等于多少最终结果就是多少。 v2 = "alex"


v3 = "" and "alex"
# 第一步:将and前后的值转换为布尔值 False and True
# 第二步:判断本次操作取决于谁?由于前面的是False,所以本次逻辑判断取决于前面的值。
# 所以,前面的值等于多少最终结果就是多少。 v2 = ""

v4 = 1 or 8 
# 第一步:将and前后的值转换为布尔值 True or True
# 第二步:判断本次操作取决于谁?由于前面的是True,所以本次逻辑判断取决于前面的值。
# v4 = 1

v5 = 0 or 8 
# 第一步:将and前后的值转换为布尔值 False or True
# 第二步:判断本次操作取决于谁?由于前面的是False,所以本次逻辑判断取决于后面的值。
# v5 = 8

如果多个and 和or的情况,先计算and再计算or。

v1 = 0 or 4 and 3 or 7 or 9 and 6
     #转换思路
     0 or 3 or 7 or 9 and 6
     0 or 3 or 7 or 6
     3 or 7 or 6
     3 or 6
     3

先计算not,在计算and,最后计算or。

v4 = not 8 or 3 and 4 or 2
		 4
1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
False or True or False and True and True or False 
False or True or False and True or False
False or True or False or False
True or False or False
True
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
not True and True or False and True and True or False
False and True or False and True and True or False
False or False or False
False 
8 or 3 and 4 or 2 and 0 or 9 and 7
8 or 4 or 0 or 7
8


0 or 2 and 3 and 4 or 6 and 0 or 3
0 or 4 or 0 or 3
4
6 or 2 > 1
6

3 or 2 > 1
3

0 or 5 < 4
False

5 < 4 or 3
3

2 > 1 or 6
True

3 and 2 > 1
True

0 and 3 > 1
0

2 > 1 and 3
3

3 > 1 and 0
0

3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
True and 2 or True and 3 and 4 or True
2 or 4 or True
2

小练习

1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:True
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:False
8 or 3 and 4 or 2 and 0 or 9 and 7  的结果为:8
0 or 2 and 3 and 4 or 6 and 0 or 3  的结果为:4
6 or 2 > 1 的结果为:6
3 or 2 > 1 的结果为:3
0 or 5 < 4 的结果为:False
5 < 4 or 3 的结果为:3
2 > 1 or 6 的结果为:True
3 and 2 > 1 的结果为:True
0 and 3 > 1 的结果为:0
2 > 1 and 3 的结果为:3
3 > 1 and 0 的结果为:0
3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 的结果为:2

二、字符串的格式化

字符串格式化,使用更加便捷的形式实现字符串的拼接,python语言中总共有三种对字符串格式化的方式。

2.1 %

name = "小香猪"
# 占位符
# text = "我叫%s,今年18岁" %"小香猪"
text = "我叫%s,今年18岁" %name
print(text) #我叫小香猪,今年18岁

注意,字符串的占位符使用%s进行占位,但是对于整型应当使用%d进行占位,类似于C语言。

还可以使用元组对多个占位符进行填充。

name = "小香猪"
age = 18

# text = "我叫%s,今年%d岁" %("小香猪",18)
text = "我叫%s,今年%d岁" %(name,age)
print(text) #我叫小香猪,今年18岁

也可以使用%(变量名)s/d来进行占位。

message = "%(name)s你什么时候过来呀?%(user)s今天不在呀。" % {"name": "小香猪", "user": "朱爷"}
print(message) #小香猪你什么时候过来啊,朱爷今天不在呀

但是如果字符串中出现%时,需要消除解释器对其的转义,使用%%代替。

text = "%s,我的作业写了90%%了,居然断网了" %"兄弟"
print(text)

# 输出:
兄弟,我的作业写了90%了,居然断网了

2.2 format(推荐)

使用{}进行占位,.format()对字符串进行填充。

text = "我叫{0},今年18岁".format("武沛齐")

text = "我叫{0},今年{1}岁".format("武沛齐",18)

text = "我叫{0},今年{1}岁,真是的姓名是{0}。".format("武沛齐",18)

如果没有数字,默认按照前后顺序进行填充。

text = "我叫{},今年18岁".format("武沛齐")

text = "我叫{},今年{}岁".format("武沛齐",18)

text = "我叫{},今年{}岁,真是的姓名是{}。".format("武沛齐",18,"武沛齐")
text = "我叫{n1},今年18岁".format(n1="武沛齐")

text = "我叫{n1},今年{age}岁".format(n1="武沛齐",age=18)

text = "我叫{n1},今年{age}岁,真是的姓名是{n1}。".format(n1="武沛齐",age=18)

未被填充的格式化字符串也可以被赋予一个变量作为模板,之后的变量再根据模板进行填充。

text = "我叫{0},今年{1}岁"
data1 = text.format("武沛齐",666)
data2 = text.format("alex",73)
text = "我叫%s,今年%d岁"
data1 = text %("武沛齐",20)
data2 = text %("alex",84)

2.3 f

python更新到3.6之后的版本时,添加了f格式化功能,使用起来更加便捷。

action = "学习"
text = f"小香猪喜欢{action},学完以后在群里炫耀"
name = "小香猪"
age = 19
text = f"人大王叫{name},今年{age}岁"
print(text)

还可以在{}里面添加运算。

text = f"人大王的名字叫小香猪,今年{19 + 2}岁"
print(text) #人大王的名字叫小香猪,今年21岁

python3.8以后的版本还可以使用=来保留之前的运算过程。

text = f"人大王的名字叫小香猪,今年{19 + 2 = }岁"
print(text) #人大王的名字叫小香猪,今年19 + 2 =21岁

还可以使用:#b、#o、#x对相应的整型进行进制转换。

age = 22
v2 = f"小香猪今年{age:#b}岁"
print(v2) #小香猪今年0b10110岁

v2 = f"小香猪今年{age:#o}岁"
print(v2) #小香猪今年0o26岁

v2 = f"小香猪今年{age:#x}岁"
print(v2) #小香猪今年0x16岁

{}还可添加字符串的方法。

name = "alex"
text = f"我是{ name.upper() },我爱大铁锤"

# 输出:我是ALEX,我爱大铁锤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值