代码:
for i in range(1,10): for j in range(1,i+1): print("{0:1}*{1:1}={2:<2} ".format(j,i,j*i),end="") print()
效果:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
总结:
print里面的format:
format() 方法的语法格式如下: str.format(args) 此方法中,str 用于指定字符串的显示样式;args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割。 学习 format() 方法的难点,在于搞清楚 str 显示样式的书写格式。在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语法格式为: { [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] } 注意,格式中用 [] 括起来的参数都是可选参数,即可以使用,也可以不使用。各个参数的含义如下: index:指定:后边设置的格式要作用到 args 中第几个数据,数据的索引值从 0 开始。如果省略此选项,则会根据 args 中数据的先后顺序自动分配。 fill:指定空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)。 align:指定数据的对齐方式,具体的对齐方式如表 1 所示。 表 1 align 参数及含义 align 含义 < 数据左对齐。 > 数据右对齐。 = 数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。 ^ 数据居中,此选项需和 width 参数一起使用。 sign:指定有无符号数,此参数的值以及对应的含义如表 2 所示。 表 2 sign 参数以含义 sign参数 含义 + 正数前加正号,负数前加负号。 - 正数前不加正号,负数前加负号。 空格 正数前加空格,负数前加负号。 # 对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。 width:指定输出数据时所占的宽度。 .precision:指定保留的小数位数。 type:指定输出数据的具体类型,如表 3 所示。 表 3 type 占位符类型及含义 type类型值 含义 s 对字符串类型格式化。 d 十进制整数。 c 将十进制整数自动转换成对应的 Unicode 字符。 e 或者 E 转换成科学计数法后,再格式化输出。 g 或 G 自动在 e 和 f(或 E 和 F)中切换。 b 将十进制数自动转换成二进制表示,再格式化输出。 o 将十进制数自动转换成八进制表示,再格式化输出。 x 或者 X 将十进制数自动转换成十六进制表示,再格式化输出。 f 或者 F 转换为浮点数(默认小数点后保留 6 位),再格式化输出。 % 显示百分比(默认显示小数点后 6 位)。
- 具体:0为j,1为i,2为j*i;:1为1个width,<2为2个width,并且为左对齐;
- range(10)产生列表[0,1,2,3,4,5,6,7,8,9],range(1,10)产生列表[1,2,3,4,5,6,7,8,9]这样i就可以产生9列,并且值从1取;
- j在range(1,i+1),依次增加,从(1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)、(1,10)依次取出1,1、2,1、2、3,1、2、3、4,1、2、3、4、5,1、2、3、4、5、6,1、2、3、4、5、6、7,1、2、3、4、5、6、7、8,1、2、3、4、5、6、7、8、9;并且不换行输出;
- 当j从列表range(1,i+1)取完元素后,换行,然后i取下一个元素值。