风语者Python 发表于 2019-12-17 15:29:23

求大神帮我注释一下每一行的意思,主要解释一下几个变量之间的逻辑关系

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

不知道是我逻辑思维能力太差了还是脑子短路了,总是看不出来i,j,number之间的逻辑关系,求大神讲解一下

WXF666 发表于 2019-12-17 19:20:43

我也是个萌新,首先要看出规律 第一行,0个空,1个*,第二行,1个空,2个*.....第number行,number-1个空,number个*
i是控制空格数,所以有i = num -1 ,同理,j控制*数,所以有j = num
如题,从上往下,从第N行到第一行,每一行都是先输出空格再街上*,然后转下一行,所以有num = num -1,用while num 来控制循环次数,有几行就输出几行

gywjj 发表于 2019-12-18 00:27:10

其实你把这个程序运行一下,就知道了,楼上说反了。这三个参的关系就里是每循环一次,i和j的值都重新由 number 得到。比如你输个5,第一次循环,i就等于4,对于i的while这个小循环来说,就是打4个空,j就于5,对于j的while这个小循环来说,就是打5个*,然后打个换行。number减1,第二次循环,number就等 于4, i就重新为3,j为4. 这样一直到number=0

zmLau0727 发表于 2019-12-20 20:50:08


temp = input('请输入一个整数:')
number = int(temp)
while number>0:#其实改成这样你肯定就能看懂了,就是number,i,j,都有>0
    i = number - 1#让i=number-1,就是为了打印i个空格
    while i>0:
      print(' ', end = '')
      i = i - 1#打印一个空格,就是i减少1
    j = number
    while j>0:#打印*也是和打印空格一样的处理方法
      print('*', end = '')
      j = j - 1
    print()#一行打印完了,换一行
    number = number - 1#同时让number减少1

风语者Python 发表于 2019-12-21 18:58:38

zmLau0727 发表于 2019-12-20 20:50
temp = input('请输入一个整数:')
number = int(temp)
while number>0:#其实改成这样你肯定就能看懂了 ...

谢谢大神注释!
页: [1]
查看完整版本: 求大神帮我注释一下每一行的意思,主要解释一下几个变量之间的逻辑关系