环境:python3.*
心得:个人认为脚本非我强项,以下效果可以有更简单解决方案,纯属练习逻辑。
方案一:
s=1
while s<=10:
#这是决定多少列,起始为1,大循环一圈即加一,就是大循环10圈。
i=1j=1
p=1
while i<=10 - s:
print(' ',end='')
i+=1#这层循环是保留空格部分,如最后一次循环,s=10,i的值一直在涨不可能小于0,所以最下面输出时没有空格。再如第一次循环,s=1,10-1=9,i自加1的增长,即到9时,输出最后一个空格,10的时候>9,所以循环就不成立了。
while j<=s:
print('*',end='')
j+=1#这是输出左半部分*符号的代码
while p<s:
print('*',end='')
p+=1#这是输出右半部分*符号的代码,跟上面不同的是<没有等号,加了等号就会出现两个部分有重复。end=‘’是本循环不自动换行。
print()
#这部分代码是 单纯的换行
s+=1#决定大循环的圈数,一圈加一,最大到10.
方案二:
for i in range(1,10):
print(('*'*(i*2-1)).center(30,'!'))
#这部分代码重点就是函数的运用了,定义一个数字集合数字1到10,打印(i乘以2-1)个的*符号,不加函数为没有格式化的形状。
center(30,'!')函数意思为将原字符返回为居中显示,30代表宽度(可自己定义),!就代表用什么来填充,什么都不加默认为空