鱼C论坛

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

新手求教:能否在函数内打破外面的循环?

[复制链接]
发表于 2018-1-26 14:30:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 天圆突破 于 2018-1-26 14:36 编辑

举个栗子:
我有一个while True的循环,但是我又想让用户(我)看到里面循环的过程,于是我在while True里面加上了input('Press Enter to continue...')这句代码,让程序变成手动档。
然后我又想让用户随时能跳出循环,于是我变成了:
  1. temp = input('press enter to continue,and press \'q\' to quit...')
  2. if temp in ('q','Q'):
  3.     break
  4. else:
  5.     pass
复制代码

再然后我很懒,连这5行都不想总写,就算去掉最后2行变成3行也不想写,(关键主程序里写太多代码看着好乱啊,都变成函数看着多清爽),想把这5行变成函数,然后发现里面的break处理不了。。。
能不能像函数处理全局变量那样的方法,把这个break也变成全局的呢?
希望大佬指点一下。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-26 14:42:10 | 显示全部楼层
return不行吗,你函数下面还有什么内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 14:43:17 | 显示全部楼层
break的作用域只在当前循环,出了循环一无是处
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-26 14:50:42 | 显示全部楼层
试了下,好像return break没这种写法啊 =.=
好吧,我在做37课那个乌龟吃鱼的作业,我想每次乌龟和鱼移动后,都把坐标报出来,然后乌龟吃掉鱼以后,也显示出信息。如果正常的话,这些信息只会刷刷刷的飞走,所以我取巧在中间加了个input('Press Enterkey to continue...'),不获取任何值,只是为了手动让程序停一下好看信息。
但是我又想随时停止,这样就要话3行代码来做这种与程序无关的事,而且让整个while True变得很不美观,过几天回头看的话怕要影响可读性,就想把这三行封起来做个函数。但是break放函数里会报错,于是想知道能不能在函数内部打破函数外面的循环?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 17:01:06 | 显示全部楼层
while true and temp not in ('q', 'Q')可以吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-27 15:23:57 | 显示全部楼层
很简单,随便raise一个异常就好了.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 12:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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