相关疑难解决方法(0)

如何在不停止程序的情况下打印完整的回溯?

我正在编写一个程序来解析10个网站,查找数据文件,保存文件,然后解析它们以生成可以在NumPy库中使用的数据.有的错误该文件通过遇到不良链接,不好的XML,缺项,其他的事情我还没有进行分类.我最初制作这个程序来处理这样的错误:

try:
    do_stuff()
except:
    pass
Run Code Online (Sandbox Code Playgroud)

但现在我想记录错误:

try:
    do_stuff()
except Exception, err:
    print Exception, err
Run Code Online (Sandbox Code Playgroud)

请注意,这是打印到日志文件以供以后查看.这通常会打印非常无用的数据.我想要的是打印错误触发时打印的完全相同的行,没有try-except拦截异常,但我不希望它暂停我的程序,因为它嵌套在一系列for循环中,我想看完成了.

python exception-handling

696
推荐指数
15
解决办法
61万
查看次数

Python中的False == 0和True == 1是一个实现细节还是由语言保证?

难道保证False == 0True == 1,在Python(假设他们没有被用户重新分配)?例如,无论Python的版本(现有的,可能的,未来的版本)是什么,它是否以任何方式保证以下代码将始终产生相同的结果?

0 == False  # True
1 == True   # True
['zero', 'one'][False]  # is 'zero'
Run Code Online (Sandbox Code Playgroud)

任何对官方文档的引用都将非常感谢!

编辑:正如许多答案所述,bool继承自int.因此,问题可以改写为:"文档是否正式表明程序员可以依赖于从整数继承的布尔值,以及值01?".这个问题与编写由于实现细节而不会失败的健壮代码有关!

python boolean equality language-specifications

230
推荐指数
3
解决办法
23万
查看次数

如何在区分None和False时确定变量是None,False还是True

假设我们有以下代码来检测文档的星级.如果星级评分为50.0,则表示使用stars_indicator = True,我们希望在这种情况下"做某事",如果星级评分为10.0,则表示使用stars_indicator = False并且我们想'做'在这种情况下,别的东西.

stars_indicator = sentiment_indicator = None
if document[stars] == 50.:
   stars_indicator = True
elif document[stars] == 10.:
   stars_indicator = False
Run Code Online (Sandbox Code Playgroud)

我们如何检查我们是否应该"做某事"或"做别的事情"?

检查它是否真实很简单

if stars_indicator:
   # do something
Run Code Online (Sandbox Code Playgroud)

检查它是否为假或无效的简单方法

if not stars_indicator:
   # do something else
Run Code Online (Sandbox Code Playgroud)

但是这样if条件就不会区分这两个选项,如果stars_indicator为False或None,它们会"做其他事情".

python if-statement boolean

2
推荐指数
1
解决办法
1912
查看次数