有人能给我一些关于程序格式和效率的建议吗?

时间:2012-03-07 16:19:59

标签: python

我是python上的新手。我刚刚创建了一个带有2的补码二进制数的程序并将其转换为十进制值。 (转换方式在http://sandbox.mc.edu/~bennet/cs110/tc/tctod.html描述。)

我知道有一些关于如何格式化程序的规则以及关于如何设计程序的一些“好习惯”。就像你如何设置标题,评论等,以及如何设计它的结构。我在互联网上找不到指南,所以我决定在这里问一下。

这是我第一次在stackoverflow上发帖,所以如果我犯了任何错误,请耐心等待。 :)

这是我的代码。

def secBiToDecimal(number):
""" This program takes a 2's complement binary number as input and returns its decimal value
"""


output = ""
" Check the sign of this number and calculate its value in according way."

if number[0]=='0':
    output += "+"
    temp = 0
    for i in range(1,len(number)):
        temp += (int(number[i]) * (2**(len(number)-i-1)))
    output += str(temp)
    print output
elif number[0]=='1':
    output += "-"
    carryout = 1
    " flip the digits"
    number = list(number)
    for i in range(len(number)):
        if number[i] == "1":
            number[i]='0'
        else:
            number[i]='1'

    " add 1 to number in binary sense "

    for i in range(1,len(number)):
        if carryout == 0 and number[len(number)-i]=='0':
            break
        elif carryout == 1 and number[len(number)-i]=='0':
            number[len(number)-i]='1'
            break
        elif carryout == 0 and number[len(number)-i]=='1':
            number[len(number)-i]='1'
            break
        elif carryout == 1 and number[len(number)-i]=='1':
            number[len(number)-i]='0'
    number = "".join(number)
    temp = 0
    for i in range(1,len(number)):
        temp += int(number[i]) * (2**(len(number)-1-i))
    output += str(temp)
    print output

1 个答案:

答案 0 :(得分:1)

关于代码格式,样式和约定,最重要的考虑因素之一是“内部规则”。如果你的“房子”(即工作场所,团队,学校,教师等)希望以某种方式完成任务,那么这就是你应该这样做的方式。

互联网上的标准和惯例可用作讨论更改内部规则的讨论的源材料,或为个人项目制定自己的个人标准。

但是,如果可以的话,请使用一些标准,并保留该标准的文档的脱机副本,以便您可以在6,12,24个月内阅读自己的代码;)。