yang141210 发表于 2020-7-22 13:48:18

004讲课后作业求助~

动手题第2题,代码完全没看明白,循环时打印空格和*是按什么规律排列的?求各位大神帮忙讲讲

Twilight6 发表于 2020-7-22 13:55:42



提问时,把问题、题目、代码都附带上

循环打印空格和 * 号 是从图中可以发现,空格数量 和 * 号数量是一致的,所以通过在 while 循环来打印相同个数的 空格 和 * 号

打印时候的 end 参数把原先默认的 end = '\n' 换行符给覆盖, 所以 print 过程没有换行

然后最后的 print() 是起到换行的效果

yang141210 发表于 2020-7-23 15:46:20

Twilight6 发表于 2020-7-22 13:55
提问时,把问题、题目、代码都附带上

循环打印空格和 * 号 是从图中可以发现,空格数量 和 * 号数量 ...

temp = input('请输入一个整数:')
number = int(temp)
while number:#此处number的意思是当number有值时开始循环吗?
    i = number - 1#此处为什么要number - 1 呢?
    while i:
      print(' ', end = '')   #这个循环的是把所有空格打印出来终止循环;还是先打印第7行的空格然后进行下一步循环(while j),直到第0行。while循环的终止条件是什么,几个while循环一起运行时的逻辑是什么(此题为例,如果能给一个流程图十分感谢,)
      i = i - 1
    j = number
    while j:
      print('*', end = '')
      j = j - 1
    print()
    number = number - 1

新手问的问题比较幼稚,感谢版主大大的帮助,十分感谢~!!

Twilight6 发表于 2020-7-23 15:50:13

yang141210 发表于 2020-7-23 15:46
temp = input('请输入一个整数:')
number = int(temp)
while number:#此处number的意思是当number有 ...


是把所有空格打印出来,知道 i 减到 0 退出循环

同理 while j 也是一样,循环过程一直打印 * ,直到 j == 0 退出循环

多个while 也没什么逻辑哈,就是按代码顺序下来运行的,这个循环结束,才会执行这个循环下面的代码

所以这里 while i 在 while j 前面,那么每次大循环都是先执行 while i ,直到 while i 循环执行完毕,才到 while j

yang141210 发表于 2020-7-23 15:57:11

Twilight6 发表于 2020-7-23 15:50
是把所有空格打印出来,知道 i 减到 0 退出循环

同理 while j 也是一样,循环过程一直打印 * ,直到 ...

while 循环的终止条件是 i == 0吗? 为什么?还有for循环中,for _ in range的下划线是什么意思?

Twilight6 发表于 2020-7-23 16:00:59

yang141210 发表于 2020-7-23 15:57
while 循环的终止条件是 i == 0吗? 为什么?还有for循环中,for _ in range的下划线是什么意思?

_ 也可以作为普通变量名 这里的 for _ in 就是普通的 for 循环而已,比如 for i in、 for x in

条件都是看布尔类型值的,要么为 True 要么为 False ,而数字只要不为 0 都可以看成 True

0 == False , 1 == True

yang141210 发表于 2020-7-23 16:01:49

yang141210 发表于 2020-7-23 15:57
while 循环的终止条件是 i == 0吗? 为什么?还有for循环中,for _ in range的下划线是什么意思?

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(row):
      print('*', end='')
    print()
这个是我在网上找的程序,您能给我讲讲这个是咋回事吗?谢谢

yang141210 发表于 2020-7-23 16:02:20

Twilight6 发表于 2020-7-23 15:50
是把所有空格打印出来,知道 i 减到 0 退出循环

同理 while j 也是一样,循环过程一直打印 * ,直到 ...

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(row):
      print('*', end='')
    print()
这个是我在网上找的程序,您能给我讲讲这个是咋回事吗?谢谢

yang141210 发表于 2020-7-23 16:21:50

Twilight6 发表于 2020-7-23 16:00
_ 也可以作为普通变量名 这里的 for _ in 就是普通的 for 循环而已,比如 for i in、 for x in

条件 ...

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(row):
      print('*', end='')
    print()
这个是我在网上找的程序,您能给我讲讲这个是咋回事吗?for 循环是怎么循环的,也跟while循环一样吗?把循环体走完再走下一个循环吗?谢谢
页: [1]
查看完整版本: 004讲课后作业求助~