鱼C论坛

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

[已解决]小甲鱼老师的课后习题有些疑问想请教大家

[复制链接]
发表于 2018-1-3 03:23:59 | 显示全部楼层 |阅读模式
3鱼币
1111.jpg 5555.jpg
number=number-1
什么情况下会出现number不满足条件终止循环呢?这里number有默认为是正数吗?没太明白
222.jpg 1111111.jpg
i和j分别表示了什么?这一大串都没太看懂,求解释一下逻辑!!万分感谢!!
最佳答案
2018-1-3 03:24:00
本帖最后由 紫夜之恋 于 2018-1-3 10:43 编辑

1
while循环是根据判断条件(表达式)的真假来决定是否执行下面的循环体的,而真假即布尔(True,False)类型。除了0以外的数字,不管是正负数都是真,零是假,所以在循环里面修改条件来达到中止判断条件的值,如果没有这一步就会陷入死循环,无限print。

2
这是三个循环,手法都是在循环体的末尾加入修改循环条件的语句,只是嵌套的而已。i代表空格的数量,' '是打印一个空字符,print的end参数默认换行的,所以在这里end=''修改成无字符不换行。打印完N-1个空字符之后进入下一个循环,同理打印的是N个*号。两个循环结束打印一个print(),上面以说,print有个默认参数end是换行,所以两个循环结束就换行,最后修改最外面的循环条件,进入下一个大循环。

Python是以语法简洁清晰而为人熟知的,所以代码不能学成套路,多思考才能进步,当然我也是新手,嘿嘿。下面是修改的代码,你可以参考下。
1
number = int(input('请输入一个整数:'))
for i in range(number):
        print(i+1)


2
number = int(input('请输入一个整数:'))
for i in range(number):
        a = ' '*(number-i-1)+'*'*(number-i)
        print(a)

最佳答案

查看完整内容

1 while循环是根据判断条件(表达式)的真假来决定是否执行下面的循环体的,而真假即布尔(True,False)类型。除了0以外的数字,不管是正负数都是真,零是假,所以在循环里面修改条件来达到中止判断条件的值,如果没有这一步就会陷入死循环,无限print。 2 这是三个循环,手法都是在循环体的末尾加入修改循环条件的语句,只是嵌套的而已。i代表空格的数量,' '是打印一个空字符,print的end参数默认换行的,所以在这里end='' ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-3 03:24:00 | 显示全部楼层    本楼为最佳答案   
本帖最后由 紫夜之恋 于 2018-1-3 10:43 编辑

1
while循环是根据判断条件(表达式)的真假来决定是否执行下面的循环体的,而真假即布尔(True,False)类型。除了0以外的数字,不管是正负数都是真,零是假,所以在循环里面修改条件来达到中止判断条件的值,如果没有这一步就会陷入死循环,无限print。

2
这是三个循环,手法都是在循环体的末尾加入修改循环条件的语句,只是嵌套的而已。i代表空格的数量,' '是打印一个空字符,print的end参数默认换行的,所以在这里end=''修改成无字符不换行。打印完N-1个空字符之后进入下一个循环,同理打印的是N个*号。两个循环结束打印一个print(),上面以说,print有个默认参数end是换行,所以两个循环结束就换行,最后修改最外面的循环条件,进入下一个大循环。

Python是以语法简洁清晰而为人熟知的,所以代码不能学成套路,多思考才能进步,当然我也是新手,嘿嘿。下面是修改的代码,你可以参考下。
1
number = int(input('请输入一个整数:'))
for i in range(number):
        print(i+1)


2
number = int(input('请输入一个整数:'))
for i in range(number):
        a = ' '*(number-i-1)+'*'*(number-i)
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-3 05:41:55 | 显示全部楼层
1,while <条件>:
当条件为True时候,执行循环体,条件为False时终止。0相当于Flase。

2,i代表空格数量,j代表*号数量。
输入变量为8,第一行是7个空格+8个*号,
第二行是6个空格+7个*号
......
最后是0个空格+1个*号,
当变量number=0时,循环结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-3 09:03:25 | 显示全部楼层
1 什么情况下会出现number不满足条件终止循环呢?这里number有默认为是正数吗?
number等于0的时候表示条件为假,开始的值是用户输入的值,默认为正数,如果为负数,那就是死循环了

2 i和j分别表示了什么?这一大串都没太看懂,求解释一下逻辑!!
i表示每次循环需要打印的空格数,j表示没戏循环需要打印的星号数
逻辑是这样的,观察其特点得知每行的空格数目 i 和星号的数目 j 和需要打印的行数 number 存在数学关系
i = number-1
j = number
每次循环只要减少number的值即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-4 01:08:23 | 显示全部楼层
编程新血 发表于 2018-1-3 05:41
1,while :
当条件为True时候,执行循环体,条件为False时终止。0相当于Flase。

谢谢回答已经明白了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-4 01:08:59 | 显示全部楼层
BngThea 发表于 2018-1-3 09:03
1 什么情况下会出现number不满足条件终止循环呢?这里number有默认为是正数吗?
number等于0的时候表示条 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 03:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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