python中块的编码实践

时间:2015-05-26 10:40:52

标签: python coding-style

是不好的做法
num1=10
num2=10
if num2!=0: print(num1/num2)
else: print("Cannot divide by zero")

而不是

num1=10
num2=10
if(num2!=0):
    print(num1/num2)
else:
    print("Cannot divide by zero")

我个人更喜欢前者。您对视图的任何引用?

3 个答案:

答案 0 :(得分:3)

您可以咨询Python style guide;以下条目适用:

  

通常不鼓励使用复合语句(同一行上的多个语句)。

     

是:

if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()
     

而不是:

if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

  

虽然有时可以在小身体上放置if / for / while   同一行,永远不要为多子句语句执行此操作。还要避免   折叠如此长的线条!

     

而不是:

if foo == 'blah': do_blah_thing()
for x in lst: total += x
while t < 10: t = delay()
     

绝对不是:

if foo == 'blah': do_blah_thing()
else: do_non_blah_thing()

try: something()
finally: cleanup()

do_one(); do_two(); do_three(long, argument,
                             list, like, this)

if foo == 'blah': one(); two(); three()

您也不应该在条件周围使用括号,并在运算符周围添加空格。

在你的情况下,在Python中你也会使用异常处理而不是测试(请求宽恕而不是权限):

num1 = 10
num2 = 10
try:
    print(num1 / num2)
except ZeroDisionError:
    print("Cannot divide by zero")

答案 1 :(得分:1)

是和否。每the official style guide,应写成:

num1 = 10 # note whitespace
num2 = 10
if num2 != 0:  # note absence of unnecessary parentheses
    print(num1/num2)
else:
    print("Cannot divide by zero")

我猜你具体问题的相关引用:

  

通常不鼓励使用复合语句(同一行上的多个语句)。

但是还有其他风格指南,最重要的是一致性

答案 2 :(得分:-3)

当if / else子句之后有一个语句时,最好建议使用第一个选项。它再次取决于编码风格。第一种风格也经常用于三元类操作符/值操作。链接https://docs.python.org/2/tutorial/controlflow.html对您有用。