Python 有人能给我一些关于程序格式和效率的建议吗?
我是python的新手。我刚刚创建了一个程序,采用2的补码二进制数,并将其转换为十进制值。(有关转换方式的说明,请参见。) 我知道关于如何格式化你的程序有一些特定的规则,关于如何设计你的程序有一些“好习惯”。比如你如何放置标题、注释等,以及你如何设计它的结构。我在网上找不到导游,所以我决定在这里询问 这是我第一次在stackoverflow上发表文章,所以如果我有任何错误,请原谅我。:) 这是我的密码Python 有人能给我一些关于程序格式和效率的建议吗?,python,Python,我是python的新手。我刚刚创建了一个程序,采用2的补码二进制数,并将其转换为十进制值。(有关转换方式的说明,请参见。) 我知道关于如何格式化你的程序有一些特定的规则,关于如何设计你的程序有一些“好习惯”。比如你如何放置标题、注释等,以及你如何设计它的结构。我在网上找不到导游,所以我决定在这里询问 这是我第一次在stackoverflow上发表文章,所以如果我有任何错误,请原谅我。:) 这是我的密码 def secBiToDecimal(number): """ This program ta
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
在代码格式化、样式和约定方面,最重要的事情之一是“房屋规则”。如果你的“家”(即工作场所、团队、学校、老师等)希望事情以某种方式完成,那么这就是你应该做的事情 互联网上的标准和惯例可以作为讨论改变众议院规则的原始材料,或者为个人项目制定自己的个人标准
但是一定要使用一些标准,如果可以的话,保留该标准文档的脱机副本,这样您就可以在6、12、24个月后阅读自己的代码;)在代码格式化、样式和约定方面考虑的最重要的事情之一是“房屋规则”。如果你的“家”(即工作场所、团队、学校、老师等)希望事情以某种方式完成,那么这就是你应该做的事情 互联网上的标准和惯例可以作为讨论改变众议院规则的原始材料,或者为个人项目制定自己的个人标准
但是一定要使用一些标准,如果可以的话,保留该标准文档的脱机副本,这样您就可以在6、12、24个月后阅读自己的代码;) 试试codereview.stackexchange.com,看看pep8。我喜欢谷歌的python风格指南:要检查语法和pep8合规性,你会发现很有用。非常感谢你的回复!代码的一个风格问题是:我认为使用字符串文字作为注释不是一个好主意。如果您不知道,函数开头的字符串是不同的-它是一个,并成为函数的
\uuu doc\uu
属性。其他字符串文字本身就被扔掉了,因此您应该将它们转换为注释(如#在二进制意义下为数字添加1
)。请尝试codereview.stackexchange.com,并查看PEP 8。我喜欢谷歌的python风格指南:检查语法和pep8合规性,您会发现非常有用。非常感谢您的回复!代码的一个风格问题是:我认为使用字符串文字作为注释不是一个好主意。如果您不知道,函数开头的字符串是不同的-它是一个,并成为函数的\uuu doc\uu
属性。其他字符串文本本身被丢弃了,因此您应该将它们转换为注释(如#将1添加到二进制数字中
)。