0

ワイヤーのサイズをすばやく見つけるためのプログラムを書いているので、常にチャートを参照する必要はありませんが、小さな問題があります。

次のような辞書があります。

#From Table 310.16 - Article 310 - 
#75 degree rated Copper RHW,THHW,THWN,XHHW,USE,ZW - 2008 NEC
wireAmpacityTable = [
    (25, '#12'),
    (35, '#10'),
    (50, '#8'),
    (65, '#6'),
    (85, '#4'),
    (100, '#3'),
    (115, '#2'),
    (130, '#1'),
    (150, '1/0'),
    (175, '2/0'),
    (200, '3/0'),
    (230, '4/0'),
    (255, '250MCM'),
    (285, '300MCM'),
    (310, '350MCM'),
    (335, '400MCM'),
    (380, '500MCM'),
    (420, '600MCM'),
]

bisect 関数を使用して、適切なワイヤ サイズを取得することに成功しました。

私の質問は、ワイヤ サイズの値だけにアクセスするにはどうすればよいかということです。たとえば、15 アンペアを入力した場合、ワイヤ サイズ - #12 だけを返すようにします。現在、それは戻ってきます(25, '#12')

値を検索するために書いたコードは次のとおりです

import bisect
# sort list 
wireAmpacityTable.sort()

def wireLookup(amps):
    pos1 = bisect.bisect_right(wireAmpacityTable, (amps,))
    print "ampacity"
    print wireAmpacityTable[pos1]

amp = int(raw_input("How many Amps:"))
print wireLookup(amp)
4

2 に答える 2

1

現時点でwireLookupは何も返しません。最初に何かを返す必要があり (印刷するだけでなく)、次にタプルの 2 番目のエントリが必要です。

return wireAmpacityTable[pos1][1]

ところで、関数と変数にPEP-8に従って名前を付けたいと思うかもしれません。

于 2013-07-16T21:05:29.470 に答える