3.10-3.13 PAT1027 乙级 python

打印沙漏

a,b = input().split()
n = int(a)
result = [b]
i = 3
n = n-1
while n>0:
	n = n-i*2
	if n<0:
		break
	result.insert(0,i*b)
	result.append(i*b)
	i += 2
l = len(result)
for i in result:
	print('%s%s'%(' '*((l-len(i))//2),i))
left = int(a)-(l+1)*(l+1)/2+1
print(int(left))

这个代码之前一直出错的原因是 我总是用center()函数,想要符号居中,用空格补齐。但是其实看题目的输出就会发现,其实题目的输出每行只有前面是用空格填充,后面是没有用空格填充的。

你可能感兴趣的:(PAT,乙级,python)