鱼C论坛

 找回密码
 立即注册
查看: 928|回复: 3

[已解决]大佬们求助,python小白。。。

[复制链接]
发表于 2018-3-21 21:13:24 | 显示全部楼层 |阅读模式

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

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

x
while True:
        while True:
                break
                print(1)
        print(2)
        break
print(3)
SyntaxError: invalid syntax

大佬们,我的idle上显示这个代码的最后一个print是invalid syntax, 这个是啥原因啊。
还有,顺便问下,这个甲鱼老师在课后习题里留的答案我不太理解,以为这个while true为什么可以在一开始出现两次判定呢?判定条件是什么啊?然后最后怎么就是打印2和3了呢。
最佳答案
2018-3-21 21:37:32
  1. while True:
  2.     while True:
  3.         break
  4.         print(1)
  5.     print(2)
  6.     break
  7. print(3)
复制代码

这段代码我试了,是可以运行的,你可以直接复制粘贴试一试,对比一下。

至于你说的两次判定什么的,这个不是什么两次判定,就是首先第一个while

循环,你说的判断条件是什么的问题,一般情况下,如果while后面是一个表达式

比如 2>1,他会首先判断这个条件是否成立,返回值是false或者true,现在这里

直接写了while true,意思就是永远成立,直接进入while循环,然后进行第二个while

循环条件判断,直接是true,进入第二个while循环,然后执行了break,跳出了第二个

while循环,执行第二个while循环的循环体外的下一条语句,print(2),然后执行break

跳出了第一个while循环,然后执行了print(3),所以,最终结果打印2和3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-21 21:37:32 | 显示全部楼层    本楼为最佳答案   
  1. while True:
  2.     while True:
  3.         break
  4.         print(1)
  5.     print(2)
  6.     break
  7. print(3)
复制代码

这段代码我试了,是可以运行的,你可以直接复制粘贴试一试,对比一下。

至于你说的两次判定什么的,这个不是什么两次判定,就是首先第一个while

循环,你说的判断条件是什么的问题,一般情况下,如果while后面是一个表达式

比如 2>1,他会首先判断这个条件是否成立,返回值是false或者true,现在这里

直接写了while true,意思就是永远成立,直接进入while循环,然后进行第二个while

循环条件判断,直接是true,进入第二个while循环,然后执行了break,跳出了第二个

while循环,执行第二个while循环的循环体外的下一条语句,print(2),然后执行break

跳出了第一个while循环,然后执行了print(3),所以,最终结果打印2和3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 22:13:41 | 显示全部楼层
多行代码建议不要用IDLE。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 13:06:36 From FishC Mobile | 显示全部楼层
最后一个print()少个制表符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 23:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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