show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解了 按数制 输出的方法
- 使用% (modulo)
- 这种方法参照于 c语言的 printf函数
- 目前已被替代
-
新方法 是 str.format
- 可以设置各种格式
- 也可以使用参数
-
可以 将九九乘法表用str.format重写吗??🤔
for i in range(1, 10):
for j in range(1, 10):
str_exprssion = "{0}*{1}={2}".format(i, j, i * j)
print(str_exprssion,end="")
print()
- 运行效果
- 看起来还是要处理
- 空格
- 数字宽度问题
- 修改代码
for i in range(1, 10):
for j in range(1, 10):
str_exprssion = "{0:d}*{1:d}={2:2d} ".format(i, j, i * j)
print(str_exprssion,end="")
print()
- 运行结果
- 结果成功了
- 2显然是宽度
- 这格式化还真有些门道
- 点击帮助手册中的
- Format String Syntax
- 格式字符串语法 观察
print("{0:0}".format(42),0,sep="|")
print("{0:1}".format(42),1,sep="|")
print("{0:2}".format(42),2,sep="|")
print("{0:3}".format(42),3,sep="|")
print("{0:4}".format(42),4,sep="|")
print("{0:5}".format(42),5,sep="|")
print("{0:6}".format(42),6,sep="|")
- 运行结果
- 确实可以控制宽度
- 宽度宽了 就有对齐的问题
- 如何对齐呢?
- 对齐是可选项
- 具体含义
符号 | 含义 |
---|---|
< | 左对齐 |
> | 右对齐 |
^ | 居中对齐 |
= | 在符号后填充 |
value = "42"
# Left-align within width of 10
print("{:<10}".format(value),end="|\n")
# Right-align within width of 10
print("{:>10}".format(value),end="|\n")
# Center-align within width of 10
print("{:^10}".format(value),end="|\n")
- 运行结果
- 这等于号如何理解?
- 怎么在符号后填充
- 我们首先要了解填充
- fill 写在所有 格式的最前面
- 是 对齐的可选项
- 我们使用下划线作为填充(fill)
value = "42"
# Right-align within width of 10
print("{:_>10}".format(value)) # Output: 42
# Center-align within width of 10
print("{:_^10}".format(value)) # Output: 42
- 填充符号为下划线(_)
- 这还是无法理解
- =对齐方式
- 在符号后填充
value = -42
# Left-align within width of 10
print("{:0>10}".format(value)) # Output: 42
# Align the number within a width of 10 by padding after the sign
print("{:=10}".format(value)) # Output: - 42
# Using '0' before the field width with the '=' alignment
print("{:=010}".format(value)) # Output: -000000042
- 运行结果
- 实际上是符号对齐的效果
- 可以显示正号+吗?
- 在填充后面
- 理解
符号 | 含义 |
---|---|
+ | 正负号都显示 |
- | 正号不显示,只显示负号 |
空格 | 正数符号为空格,负号显示 |
- 结论:负号一定会被显示!
- 废话!要不怎么知道是负的?!🥸
value = 42
print("{:0=-10}".format(value))
print("{:0=+10}".format(value))
print("{:0= 10}".format(value))
- 格式理解
- 执行结果
- 这次了解了字符串格式中的四种变量
名称 | 英文 | 作用 |
---|---|---|
填充 | fill | 空位填充符号 |
对齐 | align | 左右对齐符号 |
符号 | sign | 正负号 |
宽度 | width | 输出宽度 |
- 顺序来自
- 格式要求
- 原来的%(modulo)运算符可以按照不同进制来显示
- str.format可以吗??🤔
- 下次再说👋