我正在编写一个程序来解析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循环中,我想看完成了.
难道保证False == 0和True == 1,在Python(假设他们没有被用户重新分配)?例如,无论Python的版本(现有的,可能的,未来的版本)是什么,它是否以任何方式保证以下代码将始终产生相同的结果?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Run Code Online (Sandbox Code Playgroud)
任何对官方文档的引用都将非常感谢!
编辑:正如许多答案所述,bool继承自int.因此,问题可以改写为:"文档是否正式表明程序员可以依赖于从整数继承的布尔值,以及值0和1?".这个问题与编写由于实现细节而不会失败的健壮代码有关!
假设我们有以下代码来检测文档的星级.如果星级评分为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,它们会"做其他事情".