python中三角形图案的间距

时间:2016-10-02 11:10:48

标签: python string-formatting

以下代码打印一个模式,但我有间距问题。我想以三角形方式打印它

def triangle(n): 
    s = ""
    for i in range(0,n):
        s +=  "{}".format((i+1)%10)
        j=s*1
        print( s,'*1=',j)


triangle(9)

这是我得到的输出

1 *1= 1
12 *1= 12
123 *1= 123
1234 *1= 1234
12345 *1= 12345
123456 *1= 123456
1234567 *1= 1234567
12345678 *1= 12345678
123456789 *1= 123456789

1 个答案:

答案 0 :(得分:3)

如果你看过这个

         1 * 1 = 1
        12 * 1 = 12
       123 * 1 = 123
      1234 * 1 = 1234
     12345 * 1 = 12345
    123456 * 1 = 123456
   1234567 * 1 = 1234567
  12345678 * 1 = 12345678
 123456789 * 1 = 123456789
那么你需要ie。 {:9s}(适用于string)添加额外空格(或{:9d} int

def triangle(n): 
    a = 0
    b = 1
    for i in range(1, n+1):
        a = 10*a + i
        print('{:9d} * {} = {}'.format(a, b, a*b))

triangle(9)

请参阅:pyformat.info

编辑:使用n代替9,您需要{:{}d}.format(a, n, ...)

    print('{:{}d} * {} = {}'.format(a, n, b, a*b))

编辑版本,带有两个参数

def triangle(n, b): 
    a = 0
    for i in range(1, n+1):
        a = 10*a + i
        print('{:{}d} * {} = {}'.format(a, n, b, a*b))

triangle(5, 3)

    1 * 3 = 3
   12 * 3 = 36
  123 * 3 = 369
 1234 * 3 = 3702
12345 * 3 = 37035

编辑:一些解释:

a = 10*a + i

您使用字符串和连接从字符串"1234" - "123"创建字符串"1234" = "123" + "4"。我使用整数和*10从整数1234 - 123创建整数1234 = 123*10 + 4。 (现在我可以使用整数1234在下一行中加密1234*b

print('{:{}d} * {} = {}'.format(a, n, b, a*b))

为了提高可读性,您可以使用

  • 数字(因为format()中的参数编号为 - 0,1,2,...)

    print('{0:{1}d} * {2} = {3}'.format(a, n, b, a*b))
    

    或甚至(d表示decimalint

    print('{0:{1:d}d} * {2:d} = {3:d}'.format(a, n, b, a*b))
    
  • 名称

    print('{x:{y}d} * {z} = {v}'.format(x=a, y=n, z=b, v=a*b))
    

    甚至

    print('{x:{y:d}d} * {z:d} = {v:d}'.format(x=a, y=n, z=b, v=a*b))
    

{:9}(或{x:9d})将获得整数值并创建9个与右对齐的字符长度文本,以便在左侧获得额外的空格。

尝试{:<9}将9个字符长度文本对齐到左边

1         * 3 = 3
12        * 3 = 36
123       * 3 = 369
1234      * 3 = 3702
12345     * 3 = 37035
123456    * 3 = 370368
1234567   * 3 = 3703701
12345678  * 3 = 37037034
123456789 * 3 = 370370367

{:^9}获取中心文字

    1     * 3 = 3
   12     * 3 = 36
   123    * 3 = 369
  1234    * 3 = 3702
  12345   * 3 = 37035
 123456   * 3 = 370368
 1234567  * 3 = 3703701
12345678  * 3 = 37037034
123456789 * 3 = 370370367

查看更多:pyformat.info