鱼C论坛

 找回密码
 立即注册
查看: 1356|回复: 5

[已解决]求助啊。老版第四课课后题

[复制链接]
发表于 2020-8-31 19:19:07 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

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                                                          哪位大神能讲解下这段代码。。为啥星号递减下去而且星星的左边坐标一直随着星号递减增加的。。看不懂啊
最佳答案
2020-8-31 19:24:18

  1. temp = input('请输入一个整数:')
  2. number = int(temp)
  3. while number:           #外循环
  4.     i = number - 1
  5.     while i:  #这层循环4到0  内循环前半部分
  6.         print(' ', end = '')#每行打印空格
  7.         i = i - 1
  8.     j = number #这层循环5到0
  9.     while j:
  10.         print('*', end = '')#每行打印*号(在空格后)内循环后半部分
  11.         j = j - 1
  12.     print()
  13.     number = number - 1   
复制代码


见注释,如果解决了,记得给个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-8-31 19:22:00 From FishC Mobile | 显示全部楼层
大神救我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 19:24:18 | 显示全部楼层    本楼为最佳答案   

  1. temp = input('请输入一个整数:')
  2. number = int(temp)
  3. while number:           #外循环
  4.     i = number - 1
  5.     while i:  #这层循环4到0  内循环前半部分
  6.         print(' ', end = '')#每行打印空格
  7.         i = i - 1
  8.     j = number #这层循环5到0
  9.     while j:
  10.         print('*', end = '')#每行打印*号(在空格后)内循环后半部分
  11.         j = j - 1
  12.     print()
  13.     number = number - 1   
复制代码


见注释,如果解决了,记得给个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 19:28:05 | 显示全部楼层
本帖最后由 昨非 于 2020-8-31 19:31 编辑

“为啥星号递减下去而且星星的左边坐标一直随着星号递减增加的”的原因在于:
第8行i=i-1的同时(同一外循环下)第1行也执行了 j=j-1
也就意味着,外循环对应打印一行,内循环每次先打印空格,后打印*,每行都各自比前一行少一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-31 19:28:10 From FishC Mobile | 显示全部楼层
昨非 发表于 2020-8-31 19:24
见注释,如果解决了,记得给个最佳

哎嘿。虽然目前没理解透。但是貌似大佬之前也是你回答的我。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 19:29:46 | 显示全部楼层
  1. temp = input('请输入一个整数:')  # 接收输入,为字符串型
  2. number = int(temp)  # 强制转换字符串型为数值型,转换失败会报错
  3. while number:  # 当录入的数字大于0时执行while循环,等于0时判断为Flase,while循环不执行

  4.     i = number - 1  # 赋值i为number-1
  5.     while i:  # 当录入的数字大于0时执行代码,等于0时为Flase不执行
  6.         print(' ', end='')  # 打印输出空格(非空值),结尾不换行
  7.         i = i - 1  # i递减,一直到0时while循环不执行

  8.     j = number  # 赋值j为number
  9.     while j:  # 当录入的数字大于0时执行代码,等于0时为Flase不执行
  10.         print('*', end='')  # 打印输出字符型“*”,结尾不换行
  11.         j = j - 1  # j递减,一直到0时while循环不执行

  12.     print()  # 输出空的一行,可写可不写
  13.     number = number - 1  # number递减,一直到0时不执行代码
复制代码

评分

参与人数 1鱼币 +5 收起 理由
2915658109 + 5 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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