hello,我是apan啊,一位努力学习十八般武艺的点点点工程师。相信很多同学开始学习python循环语句都是从三角形、九九乘法表练习起来的吧。好巧,我也是,思路其实有很多,这里分享我的一些思路~希望对小伙伴们有帮助
练习一:
首先,练习输出最简单靠左对齐的直角三角形:
*
**
***
****
思路:
观察行数和每行的星星数,可以发现第一行1颗星,第二行2颗星,第三行3颗星,第四行4颗星,每行行数和星星数一致。
那么可以写一个嵌套的while/for循环,行和星数从1到4,依次输出。
for循环:
for i in range(1,5):#i为行数,从1-4范围内取值循环,注意range(1,5)指从1到4,不包含5
for j in range(i):#j为星数,取值范围range(0,i)
print('*',end='') #j循环在范围内每次输出一个*,循环输出不换行
print()#j循环结束后,利用空的print换行,执行下一轮i循环,第二轮i=2,j取值0、1,输出第二行:**
while循环:
row = 1 #row指行数,初始赋值为1
while row <= 4: #行数循环:1~4
star = 1 #star指星星数,初始赋值1
while star <= row: #循环星星数,从1开始,不超过行数的值,第一次循环行数=1,星星数=1
print('*',end='')#每次循环输出一颗星星‘*’,end=‘’的意思是在star循环内下次循环print输出时不换行直接累加‘*’
star += 1 #一次循环输出后,star自增+1,第一次循环完star自增后为2,大于row值1,跳出star循环执行下面代码
print() #这里print的作用是换行
row+=1 #row自增+1后为2,循环执行row=2,第二行输出星星
练习二:
等边三角形:
*
***
*****
*******
思路:
把每行星星之前的空格计算进来,观察行数、空格、星星的关系,按关系写循环
代码:
将行数、空格数、星星数关系写成for循环,空格和星同级(很容易看懂就不写注释啦)
for i in range(1,5):
for j in range(1,5-i):
print(' ',end='')
for k in range(2*i-1):
print('*',end='')
print()
同样的道理,将空格也写成循环每行输出,展示靠右对齐的三角形:
for i in range(1,4):
for j in range(1,4-i):
print(' ',end='')
for k in range(i):
print('*',end='')
print()
#展示
*
**
***
同道理,输出平行四边形:
for i in range(1,4):
for j in range(1,4-i):
print(' ',end='')
for k in range(3):
print('*',end='')
print()
#展示
***
***
***
练习三:
九九乘法表
思路:
每行的行数,对应行数依次和[1,行数]范围内的值相乘,所以用两个循环就可以写出来,循环1:行数(乘数)=i,取值范围[1,9],循环2:被乘数=j,取值范围[1,i]
代码:
方法一:for循环
for i in range(1,10): #乘数/行数,值从1开始到9循环遍历
for j in range(1,i+1): #被乘数,从1开始到i循环遍历
print(f'{i}*{j}={i*j}',end='\t') #输出i*j=结果,end='\t'空格隔开
print() #j循环结束,换行
方法二:while循环
row = 1
while row <= 9:
col = 1
while col <= row:
print(f'{row}x{col}={row*col}',end='\t')
col += 1
print()
row+=1
初学的小伙伴,不要关看,上手练一下吧