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

Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法

Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法

目录

  • Python 程序设计讲义(28):字符串的用法——格式化字符串:format()方法
    • 一、格式化字符串的语法格式
    • 二、参数传递——按参数的顺序传递参数
    • 三、参数传递——使用参数序号传递参数
    • 四、在花括号内使用格式控制符
        • 1、设置显示宽度
        • 2、设置显示类型
        • 3、设置对齐方式
        • 4、设置填充符号
        • 5、设置千位分隔符
        • 6、设置显示精度

字符串是一个常量,当完成字符串的定义后,字符串的内容就固定了。

一、格式化字符串的语法格式

有时为了更灵活地使用字符串,需要将部分字符进行替换。被替换的字符使用【槽】(相当于C语言中以%开头的占位符)来表示。此时的字符串由固定字符和【槽】组成。【槽】使用花括号({})表示。可以使用Format()方法对字符串格式化。

Format()方法的语法格式如下:

'固定字符{}固定字符{}...'.format(参数1,参数2,...)

其中的花括号表示【槽】,一个字符串可以包含一个或多个【槽】。格式化时,将参数传递到【槽】中。

例如:

str1="祝{}生日快乐!".format("李菲")
str2='''Name={}
age={}
city={}
'''.format("张静",19,"新乡市")
print(str1)
print(str2)程序运行结果为:
祝李菲生日快乐!
Name=张静
age=19
city=新乡市

二、参数传递——按参数的顺序传递参数

在字符串中不仅可以包含一个槽,也可以包含多个槽。如果包含多个槽,可以为每个槽都传递一个参数。

可以按照默认的顺序传递,即:把第一个参数传递给第一个槽,第二个参数传递给第二个槽,以此类推。

r=eval(input("请输入圆的半径:"))
c=2*r*3.1416
s=r*r*3.1416
print("圆的周长为:{},圆的面积为:{}".format(c,s))程序运行结果为:
请输入圆的半径:7
圆的周长为:43.9824,圆的面积为:153.9384

三、参数传递——使用参数序号传递参数

可以在花括号中指定参数序号来为槽指定要使用的参数值。Format()方法的参数序号从0开始,依次递增。

在为槽传递参数时,在槽中输入对应的参数序号。可以为多个槽指定同一个参数序号。

例如:

p="河南"
c="新乡"
str="{0}省{1}市{0}科技学院"
print(str.format(p,c))程序运行结果为:
河南省新乡市河南科技学院

四、在花括号内使用格式控制符

字符串的槽不但可以使用参数序号,还可以使用格式控制符。格式控制符可以控制参数在字符串中的显示格式。

为了和序号进行分隔,格式控制符必须以冒号(:)开始。

语法格式如下:

{参数序号:格式控制符}

格式控制符分为六类:

1、设置显示宽度

宽度是指当前槽对应参数的实际宽度。

语法格式如下:

{:n}

如果设定的字符串的宽度大于槽对应的字符串的实际长度,则以设定的宽度进行显示,多余的部分使用空格填充。

例如:

print("    2*2={:5}".format(2*2))
print("  20*15={:5}".format(20*15))
print("202*120={:5}".format(202*120))
print("  10*15={:5}".format(10*15))程序运行结果为:2*2=    420*15=  300
202*120=2424010*15=  150

如果设定的宽度小于对应参数的实际长度,则以参数的实际长度显示。

例如:

print("202*12={:5}".format(202*12))
print("1002*1500={:5}".format(1002*1500))程序运行结果为:
202*12= 2424
1002*1500=1503000
2、设置显示类型

当参数为数值类型时,可以指定值的显示类型。

语法格式如下:

{:str}

如果参数为整数类型,其所支持的形式及含义如下表所示:

支持的形式含义
b输出整数的二进制形式
c输出整数对应的 Unicode 字符
d输出整数的十进制形式
o输出整数的八进制形式
x输出整数的小写十六进制形式
X输出整数的大写十六进制形式

例如:

x,y=97,255
print("{0}转化为二进制数为:{0:b}".format(x))
print("{0}转化为八进制数为:{0:o}".format(x))
print("{0}对应的Unicode字符为:{0:c}".format(x))
print("{0}转化为十六进制数为:{0:x}".format(y))
print("{0}转化为十六进制数为:{0:X}".format(y))程序运行结果为:
97转化为二进制数为:1100001
97转化为八进制数为:141
97对应的Unicode字符为:a
255转化为十六进制数为:ff
255转化为十六进制数为:FF

当参数为浮点数时,其支持的形式及含义如下表所示:

支持的形式含义
e输出浮点数对应的指数形式,e为小写
E输出浮点数对应的指数形式,e为大写
f输出标准的浮点数形式
%输出浮点数的百分比格式

例如:

x,y=907.125,-2.55e-5
print("{0}转化为指数形式(e小写)为:{0:e}".format(x))
print("{0}转化为指数形式(e大写)为:{0:E}".format(x))
print("{0}转化为标准浮点数形式为:{0:f}".format(y))
print("{0}转化为百分比形式为:{0:%}".format(y))程序运行结果为:
907.125转化为指数形式(e小写)为:9.071250e+02
907.125转化为指数形式(e大写)为:9.071250E+02
-2.55e-05转化为标准浮点数形式为:-0.000025
-2.55e-05转化为百分比形式为:-0.002550%
3、设置对齐方式

对齐方式指参数在字符串中的水平对齐方式。

其语法格式如下:

{:>|<|^n}
说明:
(1>|<|^表示三种对齐方式
(2)表示宽度

对齐方式一共有三种:

(1)左对齐(使用<

(2)右对齐(使用>

(3)居中对齐(使用^

例如:

name,age="刘平",20
print("我叫{0:<10},今年{1:<5}岁了。".format(name,age))#左对齐
print("我叫{0:>10},今年{1:>5}岁了。".format(name,age))#右对齐
print("我叫{0:^10},今年{1:^5}岁了。".format(name,age))#居中对齐程序运行结果为:
我叫刘平        ,今年20   岁了。
我叫        刘平,今年   20岁了。
我叫    刘平    ,今年 20  岁了。
4、设置填充符号

当设置的字符串宽度大于字符串的实际宽度时,多余的部分默认使用空格填充。在设置对齐方式后,可以指定填充的字符,填充的字符只能是一个。

语法格式如下:

{:char<|>|^n}
说明:
(1)char表示填充使用的字符
(2<|>|^表示对齐方式
(3)n表示宽度

例如:

name,age="刘平",20
print("我叫{0:*<10},今年{1:*<5}岁了。".format(name,age))#左对齐
print("我叫{0:=>10},今年{1:=>5}岁了。".format(name,age))#右对齐
print("我叫{0:-^10},今年{1:-^5}岁了。".format(name,age))#居中对齐程序运行结果为:
我叫刘平********,今年20***岁了。
我叫========刘平,今年===20岁了。
我叫----刘平----,今年-20--岁了。
5、设置千位分隔符

输出数值类型时,可以指定千位分隔符。

语法格式如下:

{:,}

例如:

x=1257.1254
print("x={:,}".format(x))
print("x={:>15,f}".format(x))
print("x={:<15,f}".format(x))
print("x={:^15,f}".format(x))程序运行结果为:
x=   1,257.125400
x=1,257.125400   
x= 1,257.125400  
6、设置显示精度

对于浮点数,可以指定输出小数的位数。对于字符串,可以指定输出字符串的最大长度。

格式如下:

{:+.nf}
说明:
(1+用来输出正负号。
(2)小数点(.)表示精度,n表示要显示的小数位数
(3)f表示采用标准输出格式输出浮点数

例如:

x=1257.1254
str1="河南省新乡市河南科技学院"
print("{:.6}".format(str1))
print("x={:.3f}".format(x))
print("x={:+,.3f}".format(x))程序运行结果为:
河南省新乡市
x=1257.125
x=+1,257.125
http://www.xdnf.cn/news/16571.html

相关文章:

  • Spring Boot with RabbitMQ:四大核心模式指南
  • python-网络编程
  • PCIE4.0/5.0/DDR4/DDR5使用以及布局布线规则-集萃
  • RHCE综合项目:分布式LNMP私有博客服务部署
  • 【Lua】题目小练4
  • 【保姆级 - 大模型应用开发】DeepSeek R1 本地部署全攻略:Ollama + vLLM + PyTorch 多选方案
  • 【图像处理基石】如何对遥感图像进行实例分割?
  • 【LeetCode 热题 100】34. 在排序数组中查找元素的第一个和最后一个位置——二分查找
  • 宇树 G1 部署(九)——遥操作控制脚本 teleop_hand_and_arm.py 分析与测试部署
  • Go 客户端玩转 ES|QL API 直连与 Mapping Helpers 实战详解
  • 11、read_object_model_3d 读取点云
  • 预装Windows 11系统的新电脑怎么跳过联网验机
  • 预过滤环境光贴图制作教程:第四阶段 - Lambert 无权重预过滤(Stage 3)
  • 三、Linux用户与权限管理详解
  • Redis内存使用耗尽情况分析
  • 编辑距离:理论基础、算法演进与跨领域应用
  • Windows使用Powershell自动安装SqlServer2025服务器与SSMS管理工具
  • css3之三维变换详说
  • Qt 多线程界面更新策略
  • 如何在Windows操作系统上通过conda 安装 MDAnalysis
  • 激光雷达/相机一体机 时间同步和空间标定(1)
  • 自然语言处理NLP(3)
  • leetcode 74. 搜索二维矩阵
  • 柔性生产前端动态适配:小批量换型场景下的参数配置智能切换技术
  • 汇总10个高质量免费AI生成论文网站,支持GPT4.0和DeepSeek-R1
  • cpolar 内网穿透 ubuntu 使用石
  • 2025年06月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • go install报错: should be v0 or v1, not v2问题解决
  • 【自制组件库】从零到一实现属于自己的 Vue3 组件库!!!
  • P2910 [USACO08OPEN] Clear And Present Danger S