繁体   English   中英

为什么不能在Python的TRY块中使用IF语句,如果可能的话,这是不错的做法?

[英]Why is it not possible to have an IF statement in a TRY block in Python, and if somehow possible, is it good practice?

我收到缩进错误,但我的代码缩进正确。 如果我取出if语句,代码将运行良好。 这是相关的片段:

 80     try:
 81         votes_a = breakdown[0]['count']
 82
 83         if breakdown[0]['pick'] != m.home:
 84            votes_b = votes_a
 85     except IndexError:
 86         votes_a = 0.0

如果我删除第83和84行,代码将起作用。 在try / except的python代码块中是否有可能/可取的控制语句?

干杯

更新:缩进错误不在django告诉我的行中,这是上面的行。 而且,是的,那里有一个标签而不是空格。 谢谢。

当然有可能。 如果您收到缩进错误,但缩进在视觉上看起来很好,那么您很可能将制表符与空格混合。 最好不要使用制表符。 您可以使用-tt运行Python以检测不一致的选项卡使用情况。

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> breakdown = []
>>> breakdown.append({'count':5, 'pick':0})
>>> abc = 0
>>> try:
...     votes_a = breakdown[0]['count']
...     if breakdown[0]['pick'] != abc:
...             votes_b = votes_a
... except IndexError:
...     votes_a = 0.0
...
>>> print votes_a
5
>>>

看起来,代码本身很好。 你必须搞砸某处的空格/标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM