今天在写代码时才意识到了format到底有多么重要,先附上我最初写的代码。
#!/usr/bin/python3
def fun(n):
for i in range(n,0,-1):
if i > 9:
print('{}'.format(' '*(n-i)*2+' '*(n-i)),end='')
else:
print('{}'.format(' '*(n-9)*2+' '*(9-i)+' '*(n-i)),end='')
for j in range(i,0,-1):
print(j,end=' ')
print()
a=int(input('input your number:'))
fun(a)
def fun1(n):
for i in range(1,n+1):
if i > 9:
print('{}'.format(' '*(n-i)*2+' '*(n-i)),end='')
else:
print('{}'.format(' '*(n-9)*2+' '*(9-i)+' '*(n-i)),end='')
for j in range(i,0,-1):
print(j,end=' ')
print()
fun1(a)
下面是利用format写的代码
#!/usr/bin/python3
def fun(n):
tail=' '.join(str(i) for i in range(n,0,-1))
length=len(tail)
for i in range(n,0,-1):
row=' '.join(str(i) for i in range(i,0,-1))
print('{:>{}}'.format(row,length))
n=int(input('input your number:'))
fun(n)
def fun1(n):
tail=' '.join(str(i) for i in range(n,0,-1))
length=len(tail)
for i in range(1,n+1):
row=' '.join(str(i) for i in range(i,0,-1))
print('{:>{}}'.format(row,length))
fun1(n)
关于format的用法,一般就是在输出的时候,在引号里写上{},然后引号外面接.format(),括号里写要传入的参数,而且是位置参数,具有多个{}和参数时,可以根据从0开始的索引进行不同的输出。
接着就是字符串的格式化输出,我也是查了资料后才了解的,下面直接写吧。
首先在{}里先写冒号,像这样{:}
居中是^,左对齐<,右对齐>,
要填充的字符在^<>的左边写,占位宽度在右边写,比如要输出数字都是0001这种格式的,就可以这样写 {:0>4}
如果不写填充字符是什么的话,就会默认是空格。有了这个玩意儿,在python里写东西很是方便了。