python格式化输出,以及列表创建的注意事项

简介: python格式化输出,以及列表创建的注意事项

for循环创建列表

lists=[[0] for i in range(4)]
lists[0].append('1')
lists
[[0, '1'], [0], [0], [0]]

[ 含 i 表达式 for i in range(n) ]

表示重复创建 n 个 含i 表达式元素 ,也可以不含i 的常数表达式

lists=[[0]] *4
lists[0].append('1')
lists
[[0, '1'], [0, '1'], [0, '1'], [0, '1']]

列表做乘法表示 对象的引用,当改变其中的一个的时候

其他的相同引用也会发生变化

格式化字符串

format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]
fill            ::=  <any character>
align           ::=  "<" | ">" | "=" | "^"
sign            ::=  "+" | "-" | " "
width           ::=  digit+
grouping_option ::=  "_" | ","
precision       ::=  digit+
type            ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type]

{ 变量位置[数组下标,或者 字典关键字 ] : 可选参数必须按照固定顺序填入 1 填充字符 2 对齐方式 3正负号 4 长度 5 精度 6 类型 }


左右对齐

str1=[‘左对齐’,‘居中’ ,‘右对齐’]

print(’{0[0]:><10}’.format(str1))

print(’{0[1]:<^10}’.format(str1))

print(’{0[2]:<>10}’.format(str1))

左对齐>>>>>>>

<<<<居中<<<<

<<<<<<<右对齐

20200208165420261.png

a=10.2123
print(‘科学计数法小写e{:>+15.3e}’.format(a))
print(‘科学计数法大写E{:>+15.3E}’.format(a))
科学计数法小写e +1.021e+01
科学计数法大写E +1.021E+01
b=123
print(’{:>+15b}’.format(b)) # b 代表二进制
print(’{:>+15d}’.format(b)) # d 代表十进制
print(’{:>+15f}’.format(b)) # f 代表浮点数
+1111011
+123
+123.000000
a='nihao'
for i in range(len(a)):
    print(a[i].__hash__())
4083222512905356788
3155938417007823428
-6530341932251293458
-3126526882218892406
6140503684127694359
format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type]
fill ::=
align ::= “<” | “>” | “=” | “^”
sign ::= “+” | “-” | " "
width ::= digit+
grouping_option ::= “_” | “,”
precision ::= digit+
type ::= “b” | “c” | “d” | “e” | “E” | “f” | “F” | “g” | “G” | “n” | “o” | “s” | “x” | “X” | “%”

如果指定了一个有效的 align 值,则可以在该值前面加一个 fill 字符,它可以为任意字符,如果省略则默认为空格符。 在 格式化字符串字面值 或在使用 str.format() 方法时是无法使用花括号字面值 ("{" or “}”) 作为 fill 字符的。 但是,通过嵌套替换字段插入花括号则是可以的。 这个限制不会影响 format() 函数。


各种对齐选项的含义如下:


选项


意义


‘<’


强制字段在可用空间内左对齐(这是大多数对象的默认值)。


‘>’


强制字段在可用空间内右对齐(这是数字的默认值)。


‘=’


强制将填充放置在符号(如果有)之后但在数字之前。这用于以“+000000120”形式打印字段。此对齐选项仅对数字类型有效。当’0’紧接在字段宽度之前时,它成为默认值。


‘^’


强制字段在可用空间内居中。


请注意,除非定义了最小字段宽度,否则字段宽度将始终与填充它的数据大小相同,因此在这种情况下,对齐选项没有意义。


sign 选项仅对数字类型有效,可以是以下之一:


选项


意义


‘+’


表示标志应该用于正数和负数。


‘-’


表示标志应仅用于负数(这是默认行为)。


space


表示应在正数上使用前导空格,在负数上使用减号。


‘#’ 选项可以让“替代形式”被用于转换。 替代形式可针对不同类型分别定义。 此选项仅对整数、浮点、复数和 Decimal 类型有效。 对于整数类型,当使用二进制、八进制或十六进制输出时,此选项会为输出值添加相应的 ‘0b’, ‘0o’ 或 ‘0x’ 前缀。 对于浮点数、复数和 Decimal 类型,替代形式会使得转换结果总是包含小数点符号,即使其不带小数。 通常只有在带有小数的情况下,此类转换的结果中才会出现小数点符号。 此外,对于 ‘g’ 和 ‘G’ 转换,末尾的零不会从结果中被移除。


‘,’ 选项表示使用逗号作为千位分隔符。 对于感应区域设置的分隔符,请改用 ‘n’ 整数表示类型。


在 3.1 版更改: 添加了 ‘,’ 选项 (另请参阅 PEP 378)。


‘_’ 选项表示对浮点表示类型和整数表示类型 ‘d’ 使用下划线作为千位分隔符。 对于整数表示类型 ‘b’, ‘o’, ‘x’ 和 ‘X’,将为每 4 个数位插入一个下划线。 对于其他表示类型指定此选项则将导致错误。


在 3.6 版更改: 添加了 ‘_’ 选项 (另请参阅 PEP 515)。


width 是一个定义最小字段宽度的十进制整数。 如果未指定,则字段宽度将由内容确定。


当未显式给出对齐方式时,在 width 字段前加一个零 (‘0’) 字段将为数字类型启用感知正负号的零填充。 这相当于设置 fill 字符为 ‘0’ 且 alignment 类型为 ‘=’。


precision 是一个十进制数字,表示对于以 ‘f’ and ‘F’ 格式化的浮点数值要在小数点后显示多少个数位,或者对于以 ‘g’ 或 ‘G’ 格式化的浮点数值要在小数点前后共显示多少个数位。 对于非数字类型,该字段表示最大字段大小 —— 换句话说就是要使用多少个来自字段内容的字符。 对于整数值则不允许使用 precision。


最后,type 确定了数据应如何呈现。


可用的字符串表示类型是:


类型


意义


‘s’


字符串格式。这是字符串的默认类型,可以省略。


None


和 ‘s’ 一样。


可用的整数表示类型是:


类型


意义


‘b’


二进制格式。 输出以 2 为基数的数字。


‘c’


字符。在打印之前将整数转换为相应的unicode字符。


‘d’


十进制整数。 输出以 10 为基数的数字。


‘o’


八进制格式。 输出以 8 为基数的数字。


‘x’


十六进制格式。 输出以 16 为基数的数字,使用小写字母表示 9 以上的数码。


‘X’


十六进制格式。 输出以 16 为基数的数字,使用大写字母表示 9 以上的数码。


‘n’


数字。 这与 ‘d’ 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符。


None


和 ‘d’ 相同。


在上述的表示类型之外,整数还可以通过下列的浮点表示类型来格式化 (除了 ‘n’ 和 None)。 当这样做时,会在格式化之前使用 float() 将整数转换为浮点数。


浮点数和小数值可用的表示类型有:


类型


意义


‘e’


指数表示。 以使用字母 ‘e’ 来标示指数的科学计数法打印数字。 默认的精度为 6。


‘E’


指数表示。 与 ‘e’ 相似,不同之处在于它使用大写字母 ‘E’ 作为分隔字符。


‘f’


定点表示。 将数字显示为一个定点数。 默认的精确度为 6。


‘F’


定点表示。 与 ‘f’ 相似,但会将 nan 转为 NAN 并将 inf 转为 INF。


‘g’


常规格式。 对于给定的精度 p >= 1,这会将数值舍入到 p 位有效数字,再将结果以定点格式或科学计数法进行格式化,具体取决于其值的大小。


准确的规则如下:假设使用表示类型 ‘e’ 和精度 p-1 进行格式化的结果具有指数值 exp。 那么如果 m <= exp < p,其中 m 以 -4 表示浮点值而以 -6 表示 Decimal 值,该数字将使用类型 ‘f’ 和精度 p-1-exp 进行格式化。 否则的话,该数字将使用表示类型 ‘e’ 和精度 p-1 进行格式化。 在两种情况下,都会从有效数字中移除无意义的末尾零,如果小数点之后没有余下数字则小数点也会被移除,除非使用了 ‘#’ 选项。


正负无穷,正负零和 nan 会分别被格式化为 inf, -inf, 0, -0 和 nan,无论精度如何设定。


精度 0 会被视为等同于精度 1。 默认精度为 6。


‘G’


常规格式。 类似于 ‘g’,不同之处在于当数值非常大时会切换为 ‘E’。 无穷与 NaN 也会表示为大写形式。


‘n’


数字。 这与 ‘g’ 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符。


‘%’


百分比。 将数字乘以 100 并显示为定点 (‘f’) 格式,后面带一个百分号。


None


类似于 ‘g’,不同之处在于当使用定点表示法时,小数点后将至少显示一位。 默认精度与表示给定值所需的精度一样。 整体效果为与其他格式修饰符所调整的 str() 输出保持一致。


相关文章
|
17天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
WK
|
2月前
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
44 9
|
2月前
|
Python
探索Python中的列表推导式
【10月更文挑战第20天】在编程世界里,时间就是一切。Python的列表推导式是节约时间、简化代码的一大利器。本文将带你深入理解并有效利用这一强大工具,从基础到高级用法,让你的代码更加简洁高效。
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 6
SciPy教程之常量模块介绍:涵盖公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率及力学单位。示例展示了角度单位转换为弧度的几个常用常量。
20 7
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
19 6
|
1月前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
1月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
2月前
|
数据处理 Apache 数据库
将 Python UDF 部署到 Apache IoTDB 的详细步骤与注意事项
【10月更文挑战第21天】将 Python UDF 部署到 Apache IoTDB 中需要一系列的步骤和注意事项。通过仔细的准备、正确的部署和测试,你可以成功地将自定义的 Python UDF 应用到 Apache IoTDB 中,为数据处理和分析提供更灵活和强大的支持。在实际操作过程中,要根据具体情况进行调整和优化,以确保实现最佳的效果。还可以结合具体的代码示例和实际部署经验,进一步深入了解和掌握这一过程。
26 2
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
16 1
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
17 1