首页 > 编程语言 >19:Python字符串格式化

19:Python字符串格式化

时间:2024-08-08 17:16:51浏览次数:10  
标签:格式化 name format 19 age am Python item

#字符串格式化,用两种方法:百分号和format方式,百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。
#百分号(%)是一个运算符,用于进行字符串格式化、取模运算和格式化输出
# 百分号方式
#
# %[(name)][flags][width].[precision]typecode
#
# (name) 可选,用于选择指定的key
# flags 可选,可供选择的值有:
# + 右对齐;正数前加正好,负数前加负号;
# - 左对齐;正数前无符号,负数前加负号;
# 空格 右对齐;正数前加空格,负数前加负号;
# 0 右对齐;正数前无符号,负数前加负号;用0填充空白处
# width 可选,占有宽度
# .precision 可选,小数点后保留的位数
# typecode 必选
# s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
# r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
# c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
# o,将整数转换成 八 进制表示,并将其格式化到指定位置
# x,将整数转换成十六进制表示,并将其格式化到指定位置
# d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
# e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
# E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
# f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
# F,同上
# g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
# G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
# %,当字符串中存在格式化标志时,需要用 %%表示一个百分号
# 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式
print('i am %s my wo shi zhongguoren' % 'chengxuyuan')  # 百分号代表一个标识,%s代表这个位置放一个数据类型为字符串或者任意类型
print('i am %s my wo shi %s' % ('zhongguoren', 'xuexizhe'))  # 百分号代表一个标识,%s代表这两个位置放两个数据类型为字符串
print('i am %s my wo shi %s' % ('zhongguoren', 188))  # %s可以放数字
print('i am %s my wo shi %s' % ('zhongguoren', [5,8]))  # %s可以放列表
print('i am %s my wo shi %d' % ('zhongguoren', 99))  # %d是整型数字,只能放数字,不能放列表
print('percent %.4s' % 99.845624458452)     #%.4s包括小数点,并且做四舍五入总共有多少个
name='haohaoxuexi'
age=39
print('i am %s my wo shi %d' % (name, age))  # %d是整型数字,只能放数字,不能放列表
print('percent %f' % 99.845624458452)        #打印浮点数,%f默认保存6位小数
print('percent %.3f' % 99.845624458452)     #%.3f小数位数为3,并且做四舍五入
print('percent %.2f%%' % 99.845624458452)     #%.2f%%小数位数为2,
print('i am %(name)s age %(age)d' % {'name':'alex','age':38})     #(name)字典的k值键,(age)取值
msg='i am %(name)+60s my aspnet is xuexizhe' %{'name':'haohaoxuexi'}  #左对齐空60个位置
print(msg)
msg='i am \033[41:1m%(name)+60s\033[0m my aspnet is xuexizhe' %{'name':'haohaoxuexi'}  #开头:\033[45:1m ,结尾:\033[0m ,45控制颜色41
print(msg)
print('good','m','0','6',sep=':')

  



# Format方式
#
# [[fill]align][sign][#][0][width][,][.precision][type]
#
# fill 【可选】空白处填充的字符
# align 【可选】对齐方式(需配合width使用)
# <,内容左对齐
# >,内容右对齐(默认)
# =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
# ^,内容居中
# sign 【可选】有无符号数字
# +,正号加正,负号加负;
# -,正号不变,负号加负;
# 空格 ,正号空格,负号加负;
# # 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
# , 【可选】为数字添加分隔符,如:1,000,000
# width 【可选】格式化位所占宽度
# .precision 【可选】小数位保留精度
# type 【可选】格式化类型
# 传入” 字符串类型 “的参数
# s,格式化字符串类型数据
# 空白,未指定类型,则默认是None,同s
# 传入“ 整数类型 ”的参数
# b,将10进制整数自动转换成2进制表示然后格式化
# c,将10进制整数自动转换为其对应的unicode字符
# d,十进制整数
# o,将10进制整数自动转换成8进制表示然后格式化;
# x,将10进制整数自动转换成16进制表示然后格式化(小写x)
# X,将10进制整数自动转换成16进制表示然后格式化(大写X)
# 传入“ 浮点型或小数类型 ”的参数
# e, 转换为科学计数法(小写e)表示,然后格式化;
# E, 转换为科学计数法(大写E)表示,然后格式化;
# f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
# F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
# g, 自动在e和f中切换
# G, 自动在E和F中切换
# %,显示百分比(默认显示小数点后6位)

item = "i am {}, age {}, {}".format("seven", 18, 'alex')

item = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])

item = "i am {2}, age {0}, {1}".format("seven", 18, 'alex')

item = "i am {0}, age {1}, really {0}".format("seven", 18)

item = "i am {0}, age {1}, really {0}".format(*["seven", 18])

item = "i am {name}, age {age}, really {name}".format(name="seven", age=18)

item = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})

item = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])

item = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)

item = "i am {:s}, age {:d}".format(*["seven", 18])

item = "i am {name:s}, age {age:d}".format(name="seven", age=18)

item = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})

item = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

item = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

item = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)

item = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

  

标签:格式化,name,format,19,age,am,Python,item
From: https://www.cnblogs.com/liu-zhijun/p/18349352

相关文章

  • "阳光高考爬虫项目揭秘:增量爬虫与断点续抓的Python实战"
    阳光高考项目项目要求爬取各大高校基本信息和招生简章(招生简章要求存储为pdf格式并且入库)数据库表设计idtask_urlstatus:0(未抓取),1(抓取中),2(抓取完毕),3(错误),4(更新中),5(数据更新成功),6(数据未更新,保持原样),9(暂无),8(暂无)3:错误,是因为此div下根本没p标签,所以根本等不到......
  • 【Python】excel常用函数操作Python实现,办公入门首选
    常见的Excel函数,在Python中的如何实现:VLOOKUP:可以使用merge或map函数来实现类似的功能。IF:可以使用numpy库的where函数来实现类似的功能。SUMIF:可以使用pandas的query函数来筛选数据,然后使用sum函数来计算总和。COUNTIF:类似于SUMIF,可以使用query函数来筛选数据,然......
  • 通过embeddable版python部署环境
    通过embeddable版python部署环境下载embeddable版本python首先在https://www.python.org/downloads/windows/找到embeddable版本的python压缩包进行下载。解压到指定目录。安装pip安装pip,首先下载get-pip.py文件。放置到解压的目录中。执行pythonget-pip.py安装pip。配......
  • 22.python自定义函数(format,zip)
    python自定义函数一、常见的自定义函数已经学过的函数:list、print、set、str、type、tuple、dict、range、input等今天学的函数:format二、实战讲解(一)format函数1、默认显示案例:hz="{}{}".format("dcs","43")print(hz)#dcs43hz="{}".format("dcs","43"......
  • Depth Anything强大的单目深度估计Python与C++模型部署
    引言最近看到一个叫DepthAnything单目深度估计模型火了,于是抽空把代码和模型下载下来体验了一下,发现确实是很强大。论文链接:https://arxiv.org/pdf/2401.10891.pdf代码链接:https://github.com/LiheYoung/Depth-Anything项目主页:https://depth-anything.github.io/本......
  • 计算机毕业设计-基于python失物招领系统【源码+文档+PPT】
    精彩专栏推荐订阅:在下方专栏......
  • 【Python机器学习】利用AdaBoost元算法提高分类性能——基于单层决策树构建弱分类器
    单层决策树(也称决策树桩)是一种简单的决策树。它基于单个特征来做决策,由于这棵树只有一次分裂过程,因此它实际上就是一个树桩。在构造AdaBoost代码时,首先通过一个简单数据集来确保在算法上一切就绪:fromnumpyimport*defloadSimpData():datMat=matrix([[1.0,2.1],......
  • python代码混淆与编译
    python代码混淆、编译与打包考虑到生产环境部署,而python作为解释性语言,对源码没有任何保护。此文记录探索如何保护源码的过程。代码混淆代码混淆基本上就是把代码编译为字节码。工具有两种:py_compilepyarmorpy_compile示例:py_compile.compile(src_pyfile,dst_pyfile......
  • 在python中将二维数组转换为彩色图像
    我有像这样的2d整数列表:list1=[[1,30,50],[21,45,9],[97,321,100]]下一步我要将其转换为numpy数组:myarr=np.asarray(list1)下一步我将使用PIL将其转换为图像,如下所示:img=Image.fromarray(myarr,"I")img.save("my.png")问题是我不想要灰......
  • Python 汉字区位码、字符串 相互转换
    Python汉字区位码、字符串相互转换区位码简介GB2312所有字符放在一张94x94的矩阵中,矩阵中的每个位置对应一个字符(有的位置是空的,没有字符)。区位码为十进制四位数,前后两位分别代表该字符在矩阵中的行、列坐标(均从1算起),如4528“图”字,为45行、28列上的字符。能通过对区位码进......