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指什么 ? 最后的print()也不是特别明白,新手,麻烦大神解答,谢谢 本帖最后由 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() 函数的输出,使后续打印另起一行。 谢谢楼上大神解答 本帖最后由 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 g5506058 发表于 2019-12-23 21:27
最后的print()也不是特别明白,新手,麻烦大神解答,谢谢
百度搜索得到的结论是 print()函数是默认换行的即:end='\n'
我个人的理解,这行代码就是造成换行,例如当输入5时,第一行打印出4个空格和5个星号后,换行。
然后第二次循环就从第二行开始打印了。 谢谢{:10_254:}
页:
[1]