鱼C论坛

 找回密码
 立即注册
查看: 4009|回复: 9

[已解决]python课后作业004讲改进我们的小游戏

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-9-21 19:56:16 |阅读模式

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

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

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

while i 不应该只是判断True或False的吗? 那为什么print空格的时候会正好打印7个空格呢?下面的while j 也是,为啥就正好打印8个*呢?

还有就是在判断while i 的时候,第一次为7,然后执行 i= i-1 ,再然后为什么就往下执行 while j 了呢? 不应该再继续回来执行 while i 吗?不是说while 就是一直循环的吗?也没有break,怎么就跳出了while i ,执行 while j 了呢?

最后就是我觉得看完每一讲的视频之后,做课后作业真的困难,感觉课程作业的安排并不适合完全没有任何基础的人。希望各位能够提供一些学习经验,谢谢!
最佳答案
2021-9-21 20:46:49
二十又几 发表于 2021-9-21 20:20
你说的这个我懂,我不懂的是为什么 i  还没为0 的时候,就执行 while j 了?谢谢

    while i:
        print(' ', end = '')
        i = i - 1
你看哈,每次循环只打印一个空格
循环了 7 次,所以打印 7 个空格
回复

使用道具 举报

发表于 2021-9-21 20:04:54 | 显示全部楼层
判断里面主要不是 空 或者 0,就为真,否则为假,
while i 等价于 while i != 0 
执行while i 的时候并没有执行while j ,而是等 i 减到 0 后跳出循环后,再执行的 while j
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 20:05:57 | 显示全部楼层
while i 表示的是i不为零的缩写。

只要i不为零,程序就一直循环.

也就是说,只要在i为零的时候,while循环才被打破。

因为不能死循环的缘故,所以每次循环都有i的自减1,直到i为零的时候,循环结束。

下面j也是同理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 20:18:35 | 显示全部楼层
白two 发表于 2021-9-21 20:04
判断里面主要不是 空 或者 0,就为真,否则为假,
执行while i 的时候并没有执行while j ,而是等 i 减到  ...

那如果是等到 i 为零后才跳出循环,为什么只打印7个空格,而不是7+6+5+4+3+2+1个空格呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 20:20:27 | 显示全部楼层
heidern0612 发表于 2021-9-21 20:05
while i 表示的是i不为零的缩写。

只要i不为零,程序就一直循环.

你说的这个我懂,我不懂的是为什么 i  还没为0 的时候,就执行 while j 了?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 20:46:49 | 显示全部楼层    本楼为最佳答案   
二十又几 发表于 2021-9-21 20:20
你说的这个我懂,我不懂的是为什么 i  还没为0 的时候,就执行 while j 了?谢谢

    while i:
        print(' ', end = '')
        i = i - 1
你看哈,每次循环只打印一个空格
循环了 7 次,所以打印 7 个空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 07:58:51 | 显示全部楼层
记得有一集讲了0是等于False的,所以在while i 的循环里面,i = 0 = False,循环就退出来了。就继续往下执行 j 的循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 12:31:51 | 显示全部楼层
开卷有益,多多益善····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 20:37:23 | 显示全部楼层
白two 发表于 2021-9-21 20:46
你看哈,每次循环只打印一个空格
循环了 7 次,所以打印 7 个空格

懂了,大哥你这么一说 我瞬间茅塞顿开,感谢!感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-30 04:42:49 | 显示全部楼层
白two 发表于 2021-9-21 20:46
你看哈,每次循环只打印一个空格
循环了 7 次,所以打印 7 个空格

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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