Python基础语法:字符串格式化(占位拼接,精度控制,format()函数,快速格式化,表达式格式化)
目录
字符串格式化(占位拼接)
字符串格式化-数字精度控制
字符串格式化-format()函数实现格式化
字符串格式化-字符串快速格式化
对表达式进行字符串格式化
字符串格式化(占位拼接)
通过占位的形式拼接字符串(字符串格式化)
运行:
%s表示:
- %表示:占位
- s表示:将变量变成字符串放入占位的地方
- 注意:多个变量占位,变量要用括号括起来即组包,并按照占位顺序填入
例子如下:
tel = 13738494857address = "广州"message = "hyh的电话为:%s,地址是:%s" % (tel, address)print(message)
运行
Python支持多种数据类型占位,常用有如下三种:
格式符号 | 转化 |
%s | 将内容转换成字符串,放入到占位位置 |
%d | 将内容转换成整数,放入到占位位置 |
%f | 将内容转换成浮点数,放入到占位位置 |
例子如下:
name = """hyh"""tel = 15937485903salary = 4859.49message = "%s的电话为:%d,工资为:%f" % (name, tel, salary)print(message)
运行
字符串格式化-数字精度控制
使用辅助符号“m.n”来控制数据的宽度和精度(m和.n均可省略):
- m 控制宽度,要求是数字(很少使用),设置宽度小于等于数字宽度自身,则不生效;注意:小数点和小数部分也算入宽度计算
- .n 控制小数点精度,要求是数字,会进行小数的四舍五入(即数据可能会失真)
例子如下:
num = 781num2 = 89.378print("数字781,控制宽度4,结果是:%4d" % num)print("数字781,控制宽度3,结果是:%3d" % num)print("数字89.378,控制宽度7,控制小数精度2,结果是:%7.2f" % num2)print("数字89.378,控制小数精度2,结果是:%.2f" % num2)
运行
注意:要控制小数的精度,还可以使用round(数字,保留小数的位数)函数,如下:
# 要控制小数精度,还可以使用round()函数,会进行四舍五入num3 = 3num4 = 3.15num5 = 3.14print(num3 + num4) # 直接输出:6.15print(num3 + num4 + num5) # 直接输出:9.290000000000001print(round(num3 + num4, 1)) # 使用round()函数,保留1位小数,输出结果为:6.2print(round(num3 + num4 + num5, 1)) # 使用round()函数,保留1位小数,输出结果为:9.3
注意:会使用round()会进行小数的四舍五入(其实也不全对),详细的去看官方文档
在round(2.675, 2)给出的结果是2.67,而不是期望的2.68
其实出现上述的情况,并不是程序错误,而是由于大多数的十进制小数实际上都不能以浮点数精确表示。最好不要去深究,不好研究清楚,还费时间。
字符串格式化-format()函数实现格式化
调用字符串的format函数可以实现字符串的格式化。
示例,如下:
name = "hyh"age = 30address = "beijing"print("姓名:{} 年龄:{} 地址:{}".format(name, age, address))
运行
注意:
- {}表示占位,即要替换的位置
- format()方法中的参数为实际要替换的数据
- {}的数量和参数的数量要一致
字符串格式化-字符串快速格式化
快速格式化,格式如下:
f”内容{变量占位}内容{变量2占位}..”
注意:f的意思是format
快速格式化的特点:
- 无所谓类型
- 不能做精度控制(即适合没有精度要求时,快速使用)
例子如下:
num = 'hyh'tel = "13847839478"address = """beijing"""print(f"我是{name}, 电话为:{tel}, 地址为:{address}")
运行
对表达式进行字符串格式化
表达式:一条具有明确执行结果的代码语句。
如:1+1,5*2,type(“你好”)等等..这种有具体结果的代码语句。
格式化表达式:
- f“内容{表达式}“
- “%s或%d或%f” % (表达式, 表达式, 表达式..)
使用场景:无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。
例子如下:
print("1 * 1 = %d" % (1*1))print(f"1 * 2 = {1 * 2}")print("字符串在Python中的字符名是:%s" % type("字符串"))print("你好,你的薪水为:%9.3f, 弟弟的薪水为:%d, 姐姐的薪水为:%s" % (4 * 1378.3789, 3 * 2647, 3 * 1890))
运行