好名字容易忘 发表于 2020-7-12 22:24:04

零基础python课后第四讲作业动手题的问题

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
      print(' ', end = '')
      i = i - 1
    j = number
    while j:
      print('*', end = '')
      j = j - 1
    print()
    number = number - 1

各位大佬,这是python第四讲课后作业的题目,逻辑能明白,不过不是很明白怎么控制的空格和星号的个数,是在while i:和while j:这里吗,谢谢各位大佬

Twilight6 发表于 2020-7-12 22:28:32



不过不是很明白怎么控制的空格和星号的个数,是在while i:和while j:这里吗

是的,while 循环控制着,只有条件为True 时候就会执行循环,否则退出循环,而且对于数字来说只要值不 等于 0 ,那么就可以将条件视为 True ,当值为 0 等价条件为 False

这里通过每次循环 i 、j 值的减小来进行循环打印,直到 i 、j 的值减少到 0 时候 分别退出循环

外面的 print() 是为了起到换行的作用,因为上面两个 while 循环都是不换行打印(end = '') ,

所以我当我们循环打印完一行时候,要记得重新打印一个换行符,来换行,准备下次的打印

好名字容易忘 发表于 2020-7-15 21:11:32

Twilight6 发表于 2020-7-12 22:28
是的,while 循环控制着,只有条件为True 时候就会执行循环,否则退出循环,而且对于数字来说只要 ...

终于明白了,谢谢大佬。原来是先循环i和j,一个一个空格和星号循环完之后再循环number。之前没搞明白循环顺序,以为一次性变出来那么多空格和星号{:5_99:}多谢大佬
页: [1]
查看完整版本: 零基础python课后第四讲作业动手题的问题