今天用for循环实现空心菱形!
代码如下:
源代码图
效果图
解释代码如下:
102行提示用户输入一个num值。
103行是三个变量初始值,做循环次数用的。
104行是一个输入整数num以获取菱形大小的命令,num的值确定了菱形的大小。
105行 i 的取值是从 0-num(不包含num)的,i 控制菱形上半部分的行数,由效果图我们可以看出,上半部分总共有6行(最中间那一行我们放在菱形下半部分,一会详细说)
106行 107行 : j 控制空格的多少,当 i =0时,j 取值是 0-6(不包含6),循环打印空格,因此效果图中第一行有6个空格,!!输入完6个空格之后光标停留在第6个空格之后!!
108行 在6个空格之后输入一个*,!!光标在*之后!!
剩下109行-113行一起讲:
109行-103行控制菱形上半部分* 的个数,109行中,当 i =0 时,k=-1,此时循环没啥意义,也就是说110行不作任何输出,111-112也不做任何事,因为不符合条件啊。113行输入的是一个空字符,其作用是换行,执行这一步之前光标在第6补那里,当执行113行后光标换到下一行,此时 i=0时,菱形上半部分循环完毕。接下来是i= 1时的循环,i=1时,106行j=5,107行循环输入5个空格,108行输入一个*,!!光标在*之后!!109行k=1,109行控制的循环是输入一个空格(k等于几就输入几个空格!)光标在空格之后,110行满足条件所以112行输入一个* 113行换行,此时光标在下一行(进行i=2时的循环,大家自己走一遍流程)
菱形的下半部分走的流程和上半部分一样。有不懂的可以私信我!
附上源码:
print('print a num is 1-10')
i=j=k=0
num =int(input())
for i in range(0,num):
for j in range(num-i):
print(' ',end='')
print('*',end='')
for k in range(2*i-1):
print(' ',end='')
print('*',end='')
print('')
for i in range(0,num+1):
for j in range(i):
print(' ',end='')
print('*',end='')
for k in range(2*num-2*i-1):
print(' ',end='')
print('*',end='')
print('')
附上作者帅照和工作日常:
作者帅照
工作日常
零基础小白到大神之路,欢迎加裙 四七四五三四九五一,群里有免费python课程,还有大量干货哦
领取专属 10元无门槛券
私享最新 技术干货