私は自分自身にPythonを教えているし、奇妙な問題に遭遇しています。私がしようとしているのは、関数にリストを渡し、その要素がその周りの数字の合計であるリストを返すようにしていますが、私は思った通りに何か奇妙な結果が出たので、整数配列の数値を切り捨てるPython
整数配列を作成し、それを関数forに渡すと、リストの個々の値を出力する関数に渡すと、最初のものに続く数値が出力されますそれぞれのintは切り捨てられます。
例えば、次の入力および出力:
Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3
その10、101、または13453場合、これは、どんなにを入力起こる - 同じ現象が起こります。
私はおそらく単純なものが欠けていることは知っていますが、私のために、グーグルの量は私にこの問題の解決策をもたらしません。以下は、これを実行するために使用しているコードです。興味深いのは、リスト全体を任意の時点でforループの外側に出力すると、フルリストと適切なリスト(つまり、['101'、 '202'、 '303'])を返します。
ありがとう!
temp = list()
def sum(list):
print list
for i in range(1, len(list)+1):
print i
return temp
L = list()
while True:
input = raw_input("Please enter a number: ");
if input.strip() == ".":
break
L.append(input);
print L
L2 = sum(L)
print L2
あなたのインデントが間違っています。おそらくコピー/ペーストエラーです。 –
'list'と' input'を変数名として使用しないでください。なぜなら、それらの対応する組み込み関数をシャドーするからです。 –
'L 'に追加している値が整数ではなく文字列であることを知っていますか? –