2012-03-07 8 views
1

私はpythonの初心者です。私はちょうど2の補数の2進数を取って10進数値に変換するプログラムを作成しました。 (変換方法は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 
+8

codereview.stackexchange.comを試して、PEP 8を参照してください。 – geoffspear

+3

Googleのpythonスタイルのガイドが好きです:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html – Wilduck

+4

構文とpep8の準拠を確認するには、あなたは[フレーク](http://pypi.python.org/pypi/flake8)が役に立ちます。 – jcollado

答えて

1

コードの書式設定、スタイリング、および規則に関して考慮すべき最も重要なことの1つが「ハウスルール」です。あなたの「家」(職場、チーム、学校、教師など)が特定のやり方で行動することを期待している場合は、それはあなたがそれをやるべき方法です。

インターネットで見られる標準や慣習は、住宅ルールの変更に関する議論の原資料として、または個人的なプロジェクトのための独自の個人的基準を開発するために使用できます。

しかし、いくつかの標準を使用して、できるならばその標準のドキュメントのオフラインコピーを残しておいて、自分のコードを6,12,24ヶ月下に読むことができます。

関連する問題