当前位置: 首页 > news >正文

Python基础语法:字符串格式化(占位拼接,精度控制,format()函数,快速格式化,表达式格式化)

目录

字符串格式化(占位拼接)

字符串格式化-数字精度控制

字符串格式化-format()函数实现格式化

字符串格式化-字符串快速格式化

对表达式进行字符串格式化


字符串格式化(占位拼接)

通过占位的形式拼接字符串(字符串格式化)

运行:

%s表示:

  1. %表示:占位
  2. s表示:将变量变成字符串放入占位的地方
  3. 注意:多个变量占位,变量要用括号括起来即组包,并按照占位顺序填入

例子如下:

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均可省略):

  1. m 控制宽度,要求是数字(很少使用),设置宽度小于等于数字宽度自身,则不生效;注意:小数点和小数部分也算入宽度计算
  2. .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))

运行

注意:

  1. {}表示占位,即要替换的位置
  2. format()方法中的参数为实际要替换的数据
  3. {}的数量和参数的数量要一致

字符串格式化-字符串快速格式化

快速格式化,格式如下:

f”内容{变量占位}内容{变量2占位}..”

注意:f的意思是format

快速格式化的特点:

  1. 无所谓类型
  2. 不能做精度控制(即适合没有精度要求时,快速使用)

例子如下:

num = 'hyh'tel = "13847839478"address = """beijing"""print(f"我是{name}, 电话为:{tel}, 地址为:{address}")

运行

对表达式进行字符串格式化

表达式:一条具有明确执行结果的代码语句。

如:1+1,5*2,type(“你好”)等等..这种有具体结果的代码语句。

格式化表达式:

  1. f“内容{表达式}“
  2. “%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))

运行

http://www.xdnf.cn/news/148897.html

相关文章:

  • dstream
  • 《深入浅出ProtoBuf:从环境搭建到高效数据序列化》​
  • python基础-requests结合AI实现自动化数据抓取
  • 文档编辑:reStructuredText全面使用指南 — 第三部分 进阶特性
  • 第四章 安全审计
  • HMI与组态,自动化的“灵珠”和“魔丸”
  • 【FastJSON】的parse与parseObject
  • Huffman(哈夫曼)解/压缩算法实现
  • 【多目标进化算法】常见多目标进化算法一览
  • 持久登录的存储
  • 在统信桌面操作系统上修改启动器中软件名称
  • Semantic Kernel也能充当MCP Client
  • PMIC PCA9450 硬件原理全解析:为 i.MX 8M 平台供电的“大脑”
  • 【EDA】Floorplanning(布局规划)
  • 基于自然语言处理的文本生成模型设计
  • Canvas入门教程!!【Canvas篇二】
  • 基于vue框架的电信用户业务管理系统的设计与实现8ly70(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 2025年高校辅导员考试题库及答案
  • 【科研绘图系列】R语言绘制区间点图(dot plot)
  • 【Python】保持Selenium稳定爬取的方法(防检测策略)
  • C语言中操作字节的某一位
  • GoWASM、Kotlin(KT)、RustWASM 反编译难度对比
  • java网络原理3
  • 运维打铁:Mysql 分区监控以及管理
  • Lesar: 面向 Lustre/Scade 语言的形式化模型检测工具
  • @Transactional的一点理解
  • 【C语言】动态经典试题练习
  • 告别并发更新噩梦:MyBatis-Plus @Version 乐观锁实战指南
  • 深入详解人工智能数学基础——概率论中的马尔可夫链蒙特卡洛(MCMC)采样
  • CAPL编程_03