字符串扩展
- 字符串的三种定义方式
- 字符串拼接
- 字符串格式化
- 格式化的精度控制
- 字符串格式化方式2
- 对表达式进行格式化
学习目标
- 掌握通过占位形式拼接字符串(字符串格式化)
字符串格式化
我们会发现,这个拼接字符串也不好用啊
1. 变量过多,拼接起来实在是太麻烦了
print("我是" + name + ",我的性别是:" + sex + ",我住在:" + address + ",我的爱好是:" + hobby)
2. 字符串无法和数字或其它类型完成拼接。
所以,有没有其它方式,即方便又支持拼接其它类型呢?
这个方式,就是字符串的格式化
字符串格式化
我们可以通过如下语法,完成字符串和变量的快速拼接。
name = "小明"
message = "我的名字是 %s" % name
print(message)
输出结果:
我的名字是 小明
其中,%s
- % 表示:我要占位
- s 表示:将变量变成字符串放入占位的地方
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置。
字符串格式化
那,数字类型呢?可以不可以占位?
那必须可以,我们来尝试如下代码:
class_num = 57
avg_salary = 16781
message = "Python大数据学科,北京%s期,毕业平均工资:%s" % (class_num, avg_salary)
print(message)
输出结果:
Python大数据学科,北京57期,毕业平均工资:16781
注意:
多个变量占位
变量要用括号括起来
并按照占位的顺序填入
数字也能用 %s 占位吗?
可以的哦,这里是将数字 转换成了 字符串哦
也就是数字 57,变成了字符串 “57” 被放入占位的地方。
其中的,%s
- % 表示:我要占位
- s 表示:将变量变成字符串放入占位的地方
# 通过占位的形式,完成拼接
name = "小明"
message = "我的名字是:%s" % name
print(message)
# 通过占位的形式,完成数字和字符串的拼接
class_num = 57
avg_salary = 16781
message = "Python大数据学科,北京%s期,毕业平均工资:%s" % (class_num, avg_salary)
print(message)
输出结果:
我的名字是:小明
Python大数据学科,北京57期,毕业平均工资:16781
字符串格式化
数字类型,也太没有地位了吧,竟然要被转成字符串拼接。
有没有体面一点的方式,让数字以其原本的面貌拼接进去呢?
安排
Python 中,其实支持非常多的数据类型占位
最常用的是如下三类:
格式符号 | 转化 |
---|---|
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点数,放入占位位置 |
字符串格式化
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位
name = "小明"
set_up_year = 2006
stock_price = 19.99
message = "我是:%s,我公司成立于:%d,我公司今天的股价是:%f" % (name, set_up_year, stock_price)
print(message)
输出结果:
我是:小明,我公司成立于:2006,我公司今天的股价是:19.990000
总结
- 字符串格式化的语法:
"%占位符" % 变量
- 常用占位符有哪 3 个?
- 字符串:%s
- 整数: %d
- 浮点数: %f