Python基础语法以及在PyCharm中的应用(2)

目录

格式化字符串

类似c++的写法

format()方法

f-string的写法

基础数据类型之间的转换

int 转 float、str 、bool

float 转 int 、str 、bool

str 转 int 、float 、bool

bool 转 int、float、str


格式化字符串

类似c++的写法

在日常生活中经常会输出类似"尊敬的xx用户!截止到xx月xx日,您的流量已使用xxG,剩余流量xxG"之类的字符串,而xx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

在Python中,采用的格式化方式和C语言是一致的,用%实现,例如:

strs = "尊敬的xxx,您好,您本月共消费xxx元,达到了xx%的用户,您再消费xxx元即可获得VIP资格。xxxx年xx月xx日。"

name = "a"
cost = 88.88
percent = 99
cost_next = 11.12
y = 2024
m = 7
d = 10

strs1 = "尊敬的%s,您好,您本月共消费%.2f元,达到了%d%%的用户,您再消费%.2f元即可获得VIP资格。%d年%02d月%02d日。"
print(strs1 % (name, cost, percent, cost_next, y, m, d))

#输出结果:尊敬的a,您好,您本月共消费88.88元,达到了99%的用户,您再消费11.12元即可获得VIP资格。2024年07月10日。

%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,则括号可以省略

Python中常见的占位符有:

占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

print('%2d-%02d' % (3, 1))
#输出结果: 3-01
print('%.3f' % 3.1415926)
#输出结果:3.142

print('%7.3f' % 3.1)
#输出结果:  3.100
print('%07.3f' % 3.1)
#输出结果:003.100

format()方法

字符串的format()方法也可以用于格式化字符串,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:

strs = "尊敬的xxx,您好,您本月共消费xxx元,达到了xx%的用户,您再消费xxx元即可获得VIP资格。xxxx年xx月xx日。"

name = "a"
cost = 88.88
percent = 99
cost_next = 11.12
y = 2024
m = 7
d = 10

strs2 = "尊敬的{},您好,您本月共消费{:05.2f}元,达到了{}%的用户,您再消费{:.2f}元即可获得VIP资格。{}年{:02}月{:02}日。"
print(strs3.format(name, cost, percent, cost_next, y, m, d))

#输出结果:尊敬的a,您好,您本月共消费88.88元,达到了99%的用户,您再消费11.12元即可获得VIP资格。2024年07月10日。

f-string的写法

使用以f开头的字符串,它也可用于格式化字符串,字符串如果包含{xxx},就会以对应的变量替换

strs = "尊敬的xxx,您好,您本月共消费xxx元,达到了xx%的用户,您再消费xxx元即可获得VIP资格。xxxx年xx月xx日。"

name = "a"
cost = 88.88
percent = 99
cost_next = 11.12
y = 2024
m = 7
d = 10

# 02表示总共是两个位置,多的位置用0去补
strs3 = f"尊敬的{name},您好,您本月共消费{cost:05.2f}元,达到了{percent}%的用户,您再消费{cost_next:.2f}元即可获得VIP资格。{y}年{m:02}月{d:02}日。"
print(strs3)

#输出结果:尊敬的a,您好,您本月共消费88.88元,达到了99%的用户,您再消费11.12元即可获得VIP资格。2024年07月10日。

基础数据类型之间的转换

给定如下数据:

# int
a = 1
b = 0
c = -1
d = -0

# float
e = 1.1
f = 1.0
g = 0.0
h = -0.0
i = -2.1

# str
j = "1"
k = '1.0'
l = '1.2'
m = "True"
n = "False"
o = "0"

# bool
p = True
q = False

int 转 float、str 、bool

# int 转 float
print(float(a), float(b), float(c), float(d))
'''1.0 0.0 -1.0 0.0'''
# int 转 str
print(str(a), str(b), str(c), str(d))
'''1 0 -1 0'''
# int 转 bool   非0即True
print(bool(a), bool(b), bool(c), bool(d), bool(2), bool(-2))
'''True False True False True True'''

float 转 int 、str 、bool

# float 转 int  只取小数点之前的数字
print(int(e), int(f), int(g), int(h), int(i), int(3.9))
'''1 1 0 0 -2 3'''
# float 转 str
print(str(e), str(f), str(g), str(h), str(i))
'''1.1 1.0 0.0 -0.0 -2.1'''
# float 转 bool
print(bool(e), bool(f), bool(g), bool(h), bool(i))
'''True True False False True'''

str 转 int 、float 、bool

# str 转 int
# float样式的str值 不能转换为int  例:print(int(k))
# 只有数值型(整数)的字符串才能转换为int
print(int(j))
'''1'''
print(int(o))
'''0'''

# str 转 float
# 只有数值型的字符串才能转换为float
print(float(j), float(k), float(l), float(0))
'''1.0 1.0 1.2 0.0'''

# str 转 bool
# str 转 bool 只要字符串不是空 结果就是True
print(bool(j), bool(k), bool(l), bool(m), bool(n), bool(o))
'''True True True True True True'''
print(bool(" "))
'''True'''
print(bool(""))  #空字符
'''False'''
print(bool(None))  # 空
'''False'''

bool 转 int、float、str

# bool 转 int
print(int(p))
'''1'''
print(int(q))
'''0'''
# bool 转 float
print(float(p))
'''1.0'''
print(float(q))
'''0.0'''
# bool 转 str
print(str(p))
'''True'''
print(str(q))
'''False'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值