如何实现嵌套循环的逻辑

来源:3-24 编程练习

猩哥

2019-09-30 16:53:22

始终不明白这个嵌套循环的逻辑,只能只用单循环解决。

http://img.mukewang.com/climg/5d91c28109708e8103050201.jpg

写回答

2回答

leo_logic

2019-10-01

(1)我是这样想的:

n=1
#使用while循环条件,控制输出的行数
while n < 5:
    x = 1
    #使用while循环条件,输出空格
    while x < 5 - n :
        #条件成立时执行的语句
        print(' ',end='')
        x+=1
    y = 1
    #使用while循环条件,输出*:
    while y <= n+(n-1) :
        #条件成立时执行的语句
        print('*',end='')
        y+=1
    # 换行输出
    print('\n')
    n=n+1

(2)思考:外层控制行,内层次控制列。以下是思考过程:

①确定外层控制条件:图中有4行,n从1开始,那么n得小于5,保证有四行。外层关键代码:

while n < 5:
        # 换行输出
    print('\n')
    n=n+1

②确定内层控制条件:

找关系
   - 1.1)观察每行星星的开始位置:
         第一行:人眼,第4 
         第二行:人眼,第3  
         ...
    - 1.2)观察每行星星前空格的个数:
                第一行:人眼,有 4-1 个
                第二行:人眼,有 3-1 个
                ...
    - 2.1)寻找星星每层数与外层数的关系,设控制星星的循环为y
               外层n的值:1、2、3、4
               每层星星数:1、3、5、7
               差值:0,1,2,3 
               控制条件:y < n - 差值,即: y <= n+(n-1) 
                             第一次外循环   1 <= 1+1-1
                             第二次循环环   1 <= 2+2-1  
                                          ...
               控制条件:y < n - 差值(n-1)
      - 2.2)寻找空格每层数与外层数的关系,设控制空格的循环为x
               外层n的值:1、2、3、4
               每层空格数:3、2、1、0
               求和为:4 ,由于我用的<没使用<=的判断符号,所以采用5
               控制条件:x < 5 - n
               第一次外循环   1 <= 5-1
               第二次循环环   1 <= 5-2  
                           ...


1

好帮手乔木

2019-10-05

同学你好:

同学可以根据leo_logic同学的思路去完成这个练习。

为了实现练习的效果,建议同学直接print()作为一个换行的效果即可。

http://img.mukewang.com/climg/5d98079b096d565903840516.jpg

http://img.mukewang.com/climg/5d98082909c9a5e401190132.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

1

0 学习 · 8160 问题

查看课程