作者mantour (朱子)
看板Python
标题Re: [问题] 请问可重新执行吗?
时间Fri Apr 19 23:14:49 2013
应该可以用例外处理的方式来做
首先定义一个 exception
class MyException(Exception):
def __init__(self, value):
self.value = value
在原本程式每一个输入的地方加上判断式
if 输入 == <特定数值1>:
raise MyException("restart")
然後把整个程式用 while包起来
例如把你本来的程式整个写成一个 main 函式
就可以写成
while 1:
try:
main()
except MyException as e:
if e.value == "restart":
continue
这样输入遇到特定数值时程式就会从头开始执行
或是当main函式执行完毕也会从头再执行一次
如果希望执行到main的结尾时程式就停止的话就在main後面加一个break
while 1:
try:
main()
break
except MyException as e:
if e.value == "restart":
continue
如果希望执行到一半可以输入另一个特定数值让程式终止的话
就在每个输入的地方再加上一个判断
if <输入> == <特定数值2>:
raise MyException("exit")
然後主程式变成
while 1:
try:
main()
break
except MyException as e:
if e.value == "restart":
continue
elif e.value == "exit":
break
就可以了
※ 引述《rc001968 (rc)》之铭言:
: 各位前辈大家好,
: 我的问题如下:
: 我写了一个程式,假设是A走到B,B输入某数值後再分成C或D
: C可能又因为某种输入再分出其他不同状况,以此类推
: 问题来了
: 但是我想要在任何时候(B中或C...)输入某个特定数值,
: 就可以回到程式的起头A,再执行第二次程式,
: (而不是每次都需重新开启一次程式)
: 同样的在执行第二次程式的时候,进入以下各种情况中,
: 我再输入特定数值,就可以再重新回到程式开头。
: 谢谢各位了,感恩!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.125.33
1F:→ rc001968:我回去试了一下,开始有点头绪了,谢谢你了!!!! 04/20 00:45