使用循环的嵌套结构编程输出以下图形 python

如题所述

【请问是什么书里有这道题目?麻烦提供书名和作者,感谢】

Python3.6之for循环嵌套撰写代码

第1个代码 :

for i in range(0,4):
    for j in range(0,7):
        print("*",end="")
    print()

说明:

外循环用变量 i,一共打印4行:

即:当i=0时,打印第1行,i=1时,打印第2行,......, i=3时,打印第4行。

内循环用变量 j,每行打印7个*:

即:当j=0时,打印第1个 *,j=1时,打印第2个 *,......, j=6时,打印第7个*。

输出结果:

*******
*******
*******
*******


第2个代码:

for i in range(1,8,2):
    for j in range(i):
        print("*",end="")
    print()

说明:

i=1时,j循环range(1),打印1个*;

i=3时,j循环range(3),打印3个*;

i=5时,j循环range(5),打印5个*.......

输出结果:

*
***
*****
*******

我是初学,今天刚刚想出第3个代码怎么写:

第3个代码:

for i in range(1,8,2):
    print(int((7-i)/2)*" ",end="")
    for j in range(i):
        print("*",end="")
    print()

说明:

要在每一行的*前面打印空格,空格的循环并不是在内循环中,因为如果在*号打印中混合空格,会出现一个*号一个空格的输出错误。

所以空格循环应在外循环中,根据行数的打印而进行循环增加。

输出结果:

   *
  ***
 *****
*******

第4个代码直接写在第6个代码中。

第6个代码:

for i in range(1,8,2):
    print(int((7-i)/2)*" ",end="")
    for j in range(i):
        print("*",end="")
    print()

for i in range(5,0,-2):
    print(int((7-i)/2)*" ",end="")
    for j in range(i):
        print("*",end="")
    print()

说明:

在第3个代码中,增加依次递减。

输出结果:

   *
  ***
 *****
*******
 *****
  ***
   *

第5个代码:

for i in range(1,8,2):
    for j in range(i):
        print("*",end="")
    print()
for i in range(5,0,-2): 
    for j in range(i):
        print("*",end="")
    print()

说明:

同代码2,只是增加下方的递减循环打印。

输出结果:

*
***
*****
*******
*****
***
*

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-10
第一个第二个和第五个前面没有空格
只需要按着行和列的数学关系进行循环打印即可
其它的只需要在打印星号之前打印空格再打印即可
其中最后一个可以偷点懒把第三个和第四个组合起来。。。。

如果代码不想自己写的话
我可以有偿代劳追问

大神,第二幅图这样是嵌套结构吗?感觉不是啊,但不知道怎么改,能指点一下吗,谢谢啦

追答

你这里是利用了python字符串乘做到了多个星号输出
将它改成循环输出,每次只输出一个星号就变成嵌套循环了

追问

循环输出,是for循环吗?那个应该怎么写呢,我试过,但是总是不对

追答

while或者for都可以
循环k次即可

追问

好的,我等下试试看,谢谢大神了

本回答被网友采纳
相似回答