【python】三角形、平行四边形、九九乘法表思路分享

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

初学的小伙伴,不要关看,上手练一下吧

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值