以下代码打印一个模式,但我有间距问题。我想以三角形方式打印它
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
答案 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
表示decimal
或int
)
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