g5506058 发表于 2019-12-23 21:26:26

python课后练习4的动手第2题

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 = number - 1是指的行数吗?那J=j - 1指什么 ?

g5506058 发表于 2019-12-23 21:27:09

最后的print()也不是特别明白,新手,麻烦大神解答,谢谢

jackz007 发表于 2019-12-23 21:33:02

本帖最后由 jackz007 于 2019-12-23 21:43 编辑

while number:
    i = number - 1
    while i:                        #只要 i 的值不为 0 就继续循环。这个循环会运行 number - 1 次,在同一行连续打印 number - 1 个空格字符
      print(' ', end = '')      # 每循环一次打印出一个空格
      i = i - 1                   # 每循环一次 i 值减 1
    j = number
    while j:                        # 只要 j 的值不为 0 就继续循环。这个循环会运行 number 次,会紧接在前面 number - 1 个空格后面,连续打印出 number 个 '*' 字符
      print('*', end = '')      # 每循环一次打印出一个 '*'
      j = j - 1                   # 每循环一次 j 值减 1
    print()                         # 一行内容已经打印完毕,输出换行符
    number = number - 1
       因为在上面的代码中,前两个 print() 都使用了 end='' 选项,就是说,他们打印出来的东西会在同一行上,而最后这个 print() 没有使用 end = '' 选项,会输出一个换行符 '\n' ,从而,终结前面 print() 函数的输出,使后续打印另起一行。

g5506058 发表于 2019-12-23 21:34:31

谢谢楼上大神解答

WilsonWolf2333 发表于 2019-12-25 08:36:07

本帖最后由 WilsonWolf2333 于 2019-12-25 08:45 编辑

我个人的理解是首先找出第n行和这一行里空格的数量,以及型号数量之间的关系,就更容易理解这个代码了。
以下是我对代码中i = number -1和 j = j - 1的注释,请参考。
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    '''
    利用变量i来控制打印空格的次数, i=number-1是为了控制对应行打印空格的次数
    例如当输入5时,进入第一次循环i=4,那么根据下方while i:的循环
    第一行打印4个空格,然后i-1值变成3,那么第二次循环即第二行打印三个空格。
    以此类推
    '''
    while i:
      print(' ', end = '')
      i = i - 1
    j = number
    while j:
      print('*', end = '')
      j = j - 1
      '''
      利用j来控制打印*的次数,j=j-1是为了控制对应行打印*的次数
      例如当输入5时,进入第一次循环j=5,打印出5个*,然后j-1=值变成4;
      第一次循环最终number=4,那么第二次循环中j=4,即第二行中打印4个*。
      以此类推
      '''
    print()
    number = number - 1

WilsonWolf2333 发表于 2019-12-25 08:42:06

g5506058 发表于 2019-12-23 21:27
最后的print()也不是特别明白,新手,麻烦大神解答,谢谢

百度搜索得到的结论是 print()函数是默认换行的即:end='\n'
我个人的理解,这行代码就是造成换行,例如当输入5时,第一行打印出4个空格和5个星号后,换行。
然后第二次循环就从第二行开始打印了。

g5506058 发表于 2019-12-26 09:00:23

谢谢{:10_254:}
页: [1]
查看完整版本: python课后练习4的动手第2题