0

指数用の 8 ビットと仮数用の 24 ビットで構成される binary32 浮動小数点から 10 進数へのコンバーターを作成しようとしています。と がexponent = []ありmantissa = []ます。ユーザーが入力した場合、010000111111101101000000000000000インデックス 1 ~ 8valueを に追加しexponent、インデックス 9 ~ 32valueを に追加しmantissaます。現在、これを行うための次のスパゲッティ コードがあります。

print ("Welcome to August's floating point value to decimal converter!")
value = input("Please enter 32 bit floating value to convert.")
exponent = []
mantissa = []
exponent.append(value[1])
exponent.append(value[2])
exponent.append(value[3])
exponent.append(value[4])
exponent.append(value[5])
exponent.append(value[6])
exponent.append(value[7])
exponent.append(value[8])
print (exponent)
mantissa.append(value[9])
mantissa.append(value[10])
mantissa.append(value[11])
mantissa.append(value[12])
mantissa.append(value[13])
mantissa.append(value[14])
mantissa.append(value[15])
mantissa.append(value[16])
mantissa.append(value[17])
mantissa.append(value[18])
mantissa.append(value[19])
mantissa.append(value[20])
mantissa.append(value[21])
mantissa.append(value[22])
mantissa.append(value[23])
mantissa.append(value[24])
mantissa.append(value[25])
mantissa.append(value[26])
mantissa.append(value[27])
mantissa.append(value[28])
mantissa.append(value[29])
mantissa.append(value[30])
mantissa.append(value[31])
mantissa.append(value[32])
print (mantissa)

したがって、各インデックスを個別に追加するのではなく、それらをすべて 1 行でリストに追加する方法があるかどうか疑問に思っていました。extend私は次の方法を試しました:

exponent.extend(value[1, 2, 3, 4, 5, 6, 7, 8])コンマなしでも

exponent.extend(value[1], value[2], value[3], value[4], value[5], value[6], value[7], value[8], )extendその後、引数を 1 つだけ取ることに気付きました。

exponent.extend(value[1-8])1 と 8 を引いたように見えます。

私がexponent = {}信じているセットはどれですか?そして、exponent.updateカンマで複数のインデックスを続けてみました。それから、それは1つの引数しかサポートしていないと言われました。

リストに複数のインデックスを追加する方法について他に提案はvalueありますか?

4

2 に答える 2

3

文字列スライスを使用して、同じコードを次のように記述できます。

value = input("Please enter 32 bit floating value to convert.")

exponent, mentissa= value[1:9], value[9:]
于 2016-10-26T13:30:02.740 に答える
1

あなたの質問はきちんとした解決策で答えられましたが、私は実際にあなたの元の質問に答えたかったのです。次のいずれかを使用して、リストをリストに追加できます。

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b    # c is now [1, 2, 3, 4, 5, 6]
a.extend(b)  # a is now [1, 2, 3, 4, 5, 6]

list.extendは実際にリストを変更しますが、追加自体は変更しないことに注意してください。a += bただし、 と同じ結果を得ることができますa.extend(b)

したがって、次のことができます。

exponent.extend(value[1:9])

使用する場合、list.extend実際には反復可能なもの (タプルやセットなど) を使用できますが、a += bまたは使用する場合c = a + bは通常、両方が同じ型である必要があります。

于 2016-10-26T14:16:05.957 に答える