鱼C论坛

 找回密码
 立即注册
查看: 1591|回复: 1

[已解决]代码解读询问

[复制链接]
发表于 2020-8-4 11:15:11 | 显示全部楼层 |阅读模式

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

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

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

上述代码第3行、第5行以及第9行为什么直接就while number/i/j,这是什么意思?还有i和j分别代表什么意思?
最佳答案
2020-8-4 11:16:49
本帖最后由 Twilight6 于 2020-8-4 11:21 编辑



上述代码第3行、第5行以及第9行为什么直接就while number/i/j,这是什么意思?


因为在 Python 中要知道 只要为 0 、None、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False

只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True

所以 number、j、i 可以直接作为循环条件,只要在 number 、i 和 j 不为时候,就可以一直循环下去

但是因为这些 while  循环都有将值 -1 ,所以当最后为 0 时候就不满足 while 循环条件就退出循环了

还有 i、j 代表什么意思?


可以理解为,这里的 i 和 j 是分别代表着打印 空格和 * 字符的循环次数,因为每次循环都会使 i、j 减小 1 ,直到减小到 0 退出当前循环,继续执行下面的代码

而倒数有个  print() 就是为单纯换行用的,因为前面 while 循环里的 print 都带有参数 end = '' ,所以while 循环内的 print 不会自动换行

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

使用道具 举报

发表于 2020-8-4 11:16:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-4 11:21 编辑



上述代码第3行、第5行以及第9行为什么直接就while number/i/j,这是什么意思?


因为在 Python 中要知道 只要为 0 、None、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False

只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True

所以 number、j、i 可以直接作为循环条件,只要在 number 、i 和 j 不为时候,就可以一直循环下去

但是因为这些 while  循环都有将值 -1 ,所以当最后为 0 时候就不满足 while 循环条件就退出循环了

还有 i、j 代表什么意思?


可以理解为,这里的 i 和 j 是分别代表着打印 空格和 * 字符的循环次数,因为每次循环都会使 i、j 减小 1 ,直到减小到 0 退出当前循环,继续执行下面的代码

而倒数有个  print() 就是为单纯换行用的,因为前面 while 循环里的 print 都带有参数 end = '' ,所以while 循环内的 print 不会自动换行

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
太阳总会升起 + 5 + 5 + 3

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 08:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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