鱼C论坛

 找回密码
 立即注册
查看: 1832|回复: 8

[已解决]python第九课课后题求助

[复制链接]
发表于 2021-4-20 11:04:18 | 显示全部楼层 |阅读模式

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

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

x
有大佬可以解释一下吗?新手表示看不懂哎

目测以下程序会打印什么?
while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)


会打印

2
3
最佳答案
2021-4-20 11:19:11
本帖最后由 柿子饼同学 于 2021-4-20 11:26 编辑
while True:              #1层循环          
    while True:          #2层循环
        break            #跳出当前循环,循环中后面的东西不会执行[2层]
        print(1)         #上面有break,所以她不会执行[2层]
    print(2)             #[1层]
    break                #[1层]  
print(3)                 #[循环外]
注意,缩进会表示代码所属层级
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-20 11:19:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2021-4-20 11:26 编辑
while True:              #1层循环          
    while True:          #2层循环
        break            #跳出当前循环,循环中后面的东西不会执行[2层]
        print(1)         #上面有break,所以她不会执行[2层]
    print(2)             #[1层]
    break                #[1层]  
print(3)                 #[循环外]
注意,缩进会表示代码所属层级
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-4-20 14:07:22 | 显示全部楼层
第一个break属于第二层循环,跳出本轮循环(第二层循环),所以跳过了同为第二层循环内的print(1); 然后继续执行打印第一层循环内的print(2), 再继续执行到第二个break,属于第一层循环,跳出本轮循环(第一层循环),继续执行第一层循环外的print(3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-4-20 16:03:55 | 显示全部楼层
break和print(1)的缩进一致,表示他们是同一层的。
先进行了break,跳出了循环,所以就不执行print(1)了。
如果print(1)在break前面,那1也会打印出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-20 18:33:53 | 显示全部楼层
感谢大家,我明白啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-20 18:40:35 | 显示全部楼层
程序一般都是按照从上往下的顺序跑的

1.while True:        条件为true时 开始循环
2.   while True:     到这一行依然是条件为true的循环
3.        break          继续到break break的意思是跳出此循环 到下一层
4.        print(1)        因为有个break 1 不会打印  因为print(1)是在2.while true 的小循环中  
5.    print(2)            跳出小循环后就到了这一层 打印2
6.   break                  又来了个break 跳出大循环
7.print(3)                   到了这一层打印3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-4-20 19:07:09 | 显示全部楼层
柿子饼同学 发表于 2021-4-20 11:19
注意,缩进会表示代码所属层级

可以再问一下
elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')

', count, '引号后先写一个逗号这是就规定这样写的吗?什么时候不写逗号什么时候要写呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-20 19:12:42 | 显示全部楼层
Christmas998 发表于 2021-4-20 19:07
可以再问一下
elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!',  ...

建议把基础学扎实在弄这些,逗号就是分隔的作用,
例:
>>> print('520')  #不要吧,就一个参数
520
>>> print('520', '1314')  #大于一个参数是就要了呀.不然她看不懂
520 1314
>>> print('520' '1314')   #其实不写也没事(但建议写,其他函数里就不是这么一回事了)
5201314
有多个参数就写,没错的哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-20 19:16:47 | 显示全部楼层
柿子饼同学 发表于 2021-4-20 19:12
建议把基础学扎实在弄这些,逗号就是分隔的作用,
例:
有多个参数就写,没错的哈

您举得这个例子我能看懂,但是题目中的那个',count,'难道不是只有count一个参数吗?为什么count前后有逗号呢?逗号不应该在两个参数中间吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 01:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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