""" 模块:python3 formatString.py 功能:python3 字符串格式化。 参考:https://www.runoob.com/python3/python3-string.html 知识点: 1.Python 支持格式化字符串的输出。 尽管这样可能会用到非常复杂的表达式, 但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 2.python字符串格式化符号: %s 格式化字符串 %d 格式化(dec 十进制)整数 %f 格式化浮点数字,可指定小数点后的精度 %o 格式化无符号八进制数(oct 八进制) %x 格式化无符号十六进制数(小写) %X 格式化无符号十六进制数(大写) %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g %f和%e的简写 %G %f 和 %E 的简写 %p 用十六进制数格式化变量的地址 % '%%'输出一个单一的'%' %u 格式化无符号整型 %c 格式化字符及其ASCII码 3.格式化操作符辅助指令: - 用做左对齐 + 在正数前面显示加号( + ) m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) 0 显示的数字前面填充'0'而不是默认的空格 # 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') * 宽度或者小数点精度占位符,从后面参数读取。 """ # 一、格式化占位符(最早出现) # 1.格式化输出 print("我叫 %s 今年 %d 岁!" % ('小明', 10)) # 我叫 小明 今年 10 岁! r = "the length of %s is %d" % ('runoob', len('runoob')) print(r) # the length of runoob is 6 print("%d" % -50) # -50 print("%5d" % -50) # -50 # 显示正负号,%f,默认精度:6(位小数)。 print('%+f' % -5.69) # -5.690000 print('%f' % -5.69) # -5.690000 print("%f" % 3.141592653589793) # 3.141593 # 格式化输出浮点数(float) pi = 3.141592653 # 字段宽10,精度3,数字前面补0。 print('%010.3f' % pi) # 000003.142 # 用 * 从后面的元组中读取字段宽度或精度 print("pi = %.*f" % (2, pi)) # pi = 3.14 print("pi = %.*f" % (3, pi)) # pi = 3.142 # 宽度 7,精度 3,显示 "+/-"号,剩余宽度补 0,默认右对齐。 print("pi = %+0*.*f" % (7, 3, pi)) # pi = +03.142 # 左对齐 print('%-10.3f' % pi) # 3.142 # 字符总长度 5(包括"."),显示的数字前面填充'0'。 print("%05.2f" % 3.141592653589793) # 03.14 print("%+06.2f" % 3.141592653589793) # +03.14 print("%-+6.2f" % 3.141592653589793) # +3.14 , 注意:此处右边有一个空格! # 指数计数。 print("%e, %E" % (1000, 1000)) # 1.000000e+03, 1.000000E+03 print("%.2e, %.1E" % (1000, 1000)) # 1.00e+03, 1.0E+03 print("%.g, %.G" % (1000, 1000)) # 1e+03, 1E+03 print("%u" % 1000) # 1000 print("%c" % "h") # h # # 1.2.进制 # print("\n1.2.") # print("%o" % 10) # # 12 # print("%#o" % 10) # # 0o12 # print("%x, %X" % (10, 10)) # # a, A # print("%#x, %#X" % (10, 10)) # # 0xa, 0XA # # 格式化输出16进制,十进制,八进制整数 # # %x --- hex 十六进制 # # %d --- dec 十进制 # # %o --- oct 八进制 # nHex = 0xFF # print("nHex = %#x,nDec = %d,nOct = %#o" % (nHex, nHex, nHex)) # # nHex = 0xff,nDec = 255,nOct = 0o377 # # 二、str.format()(python2.6) # # 参考:https://www.runoob.com/python/att-string-format.html # # 基本语法:通过 {} 和 : 来代替以前的 % 。 # # format 函数可以接受不限个参数,位置可以不按顺序。 # # 2.1. # print("\n2.1.") # # 不设置指定位置,按默认顺序 # print("{} {}".format("hello", "world")) # # hello world # # 设置指定位置 # print("{0}-{1}".format("hello", "world")) # # hello-world # print("{1} {0} {1}".format("hello", "world")) # # world hello world # # # 2.2.设置参数 # print("\n2.2.") # # 关键字传参 # print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")) # # 网站名:菜鸟教程, 地址 www.runoob.com # # 通过字典设置参数("**"字典传参) # site = {"name": "菜鸟教程", "url": "www.runoob.com"} # print("网站名:{name}, 地址 {url}".format(**site)) # # 网站名:菜鸟教程, 地址 www.runoob.com # # 通过列表索引设置参数 # my_list = ['菜鸟教程', 'www.runoob.com'] # # "0" 是必须的 # print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # # 网站名:菜鸟教程, 地址 www.runoob.com # # "*"序列传参。 # print("网站名:{0}, 地址 {1}".format(*my_list)) # # # # 网站名:菜鸟教程, 地址 www.runoob.com # # # 2.3.向 str.format() 传入对象 # class AssignValue(object): # def __init__(self, value): # self.value = value # # # my_value = AssignValue(6) # print("\n2.3.") # # "0" 是可选的 # print('value 为: {0.value}'.format(my_value)) # # value 为: 6 # print('value 为: {.value}'.format(my_value)) # # value 为: 6 # # # 2.4.数字格式化 # print("\n2.4.") # print("{:.2f}".format(3.1415926)) # # 3.14 # # 数字 格式 输出 描述 # # 3.1415926 {:.2f} 3.14 保留小数点后两位 # # 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位 # # -1 {:+.2f} -1.00 带符号保留小数点后两位 # # 2.71828 {:.0f} 3 不带小数 # # 5 {:0>2d} 05 数字补零 (填充左边, 宽度为2) # # 5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4) # # 10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4) # # 1000000 {:,} 1,000,000 以逗号分隔的数字格式 # # 0.25 {:.2%} 25.00% 百分比格式 # # 1000000000 {:.2e} 1.00e+09 指数记法 # # 13 {:>10d} 13 右对齐 (默认, 宽度为10) # # 13 {:<10d} 13 左对齐 (宽度为10) # # 13 {:^10d} 13 中间对齐 (宽度为10) # # 11 进制 # # '{:b}'.format(11) # 1011 # # '{:d}'.format(11) # 11 # # '{:o}'.format(11) # 13 # # '{:x}'.format(11) # b # # '{:#x}'.format(11) # 0xb # # '{:#X}'.format(11) # 0XB # # # ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, # # : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。 # # + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格 # # b、d、o、x 分别是二进制、十进制、八进制、十六进制。 # # # 2.5.使用大括号 {} 来转义大括号 # print("\n2.5.") # print("{} 对应的位置是 {{0}}".format("runoob")) # # runoob 对应的位置是 {0} # 三、f-string(最新) # f-string 是 python3.6 之后版本添加的, # 称之为字面量格式化字符串,是新的格式化字符串的语法。 # 之前我们习惯用百分号 (%)。 # f-string 格式话字符串以 f 开头,后面跟着字符串, # 字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。 # 用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。 name = 'Runoob' print('Hello %s' % name) # Hello Runoob name = 'Runoob' print(f'Hello {name}') # 替换变量 # Hello Runoob print(f'{1 + 2}') # 使用表达式 # 3 w = {'name': 'Runoob', 'url': 'www.runoob.com'} print(f'{w["name"]}: {w["url"]}') # Runoob: www.runoob.com # 在 Python 3.8 的版本中可以使用 = 符号,来拼接 运算表达式 与 结果。 x = 1 print(f'{x + 1}') # 2 # print(f'{x + 1=}') # x+1=2
python3 formatString.py
猜你喜欢
转载自blog.csdn.net/weixin_42193179/article/details/105540561
今日推荐
周排行