鱼C论坛

 找回密码
 立即注册
查看: 2737|回复: 6

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

[复制链接]
发表于 2019-12-23 21:26:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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指什么 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-23 21:27:09 | 显示全部楼层
最后的print()也不是特别明白,新手,麻烦大神解答,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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() 函数的输出,使后续打印另起一行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-23 21:34:31 | 显示全部楼层
谢谢楼上大神解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-25 08:42:06 | 显示全部楼层
g5506058 发表于 2019-12-23 21:27
最后的print()也不是特别明白,新手,麻烦大神解答,谢谢

百度搜索得到的结论是 print()函数是默认换行的即:end='\n'
我个人的理解,这行代码就是造成换行,例如当输入5时,第一行打印出4个空格和5个星号后,换行。
然后第二次循环就从第二行开始打印了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-26 09:00:23 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表