首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >毫无例外地尝试每一行,过早地破坏代码。

毫无例外地尝试每一行,过早地破坏代码。
EN

Stack Overflow用户
提问于 2020-10-11 04:45:12
回答 2查看 71关注 0票数 0

我想编写一个try -除了能够运行多个try语句而不中断代码的语句。

s = "hello, this is a string."

使用上面的字符串作为示例:

代码语言:javascript
运行
复制
ls = []
try:
    ls.append(s.split())
    ls.append(s.str.split()) # expected error
    ls.append(s.split(","))
    ls.append(s.split("i"))
except:
    pass

上面是我最初尝试过的内容,但是代码在第二个try语句中停止了。

代码语言:javascript
运行
复制
ls = []
try:
    ls.append(s.split())
except:
    pass
try:
    ls.append(s.str.split()) # expected error
except:
    pass
try:
    ls.append(s.split(","))
except:
    pass
try:
    ls.append(s.split("i"))
except:
    pass

最后,我能够用上面的代码将所有字符串附加到列表中。除了陈述之外,还有比写个别的尝试更好的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-11 08:57:51

您可以使用王八蛋模块。

使用@fuckit装饰器将代码包装在一个函数中:

代码语言:javascript
运行
复制
import fuckit

@fuckit
def func():
    code a
    code b #if b fails, it should ignore, and go to c.
    code c #if c fails, go to d
    code d

或者你可以试试这个:

代码语言:javascript
运行
复制
def a():
    try: # a code
    except: pass # or raise
    else: return True

def b():
    try: # b code
    except: pass # or raise
    else: return True

def c():
    try: # c code
    except: pass # or raise
    else: return True

def d():
    try: # d code
    except: pass # or raise
    else: return True

def main():   
    try:
        a() and b() or c() or d()
    except:
        pass
票数 0
EN

Stack Overflow用户

发布于 2020-10-11 07:45:59

据我理解,当try语句中发生错误时,它将立即转到try语句,这就是为什么您的代码在第二个try语句之后不执行的原因。

虽然你的问题可能有更好的解决办法,但下面是我对你的问题的尝试:

代码语言:javascript
运行
复制
ls = []
char=[' ',',','i']

for i in char:    
    try:
        ls.append(s.split(i))
        ls.append(s.str.split(i))
    except:
        pass
print(ls)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64300679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档