0

フローチャート ツールから Python へのコードの移動に取り組んでおり、3 人の生徒の年齢を含む配列をロードし、3 つの年齢の合計を取得したいと考えています。私が持っているものの実行中にエラーが発生しました。これまでのコードは次のとおりです。

#g is my index, sample input was: 35,25,50 
st_age = [0]*3 
for g in range(0,3):
    st_age[g] = int(input("Enter student age "))

g = 1
sum = 0 
while g < len(st_age): #am I using this correctly? 
    sum = sum + st_age[g]
    g + g + 1

print sum #I get a zero this way. 

助けてくれてありがとう、配列はこれまでトリッキーでした。

4

1 に答える 1

1

gをインクリメントしていません。g + g + 1読むべきg = g + 1です。

また、Python のインデックスは 0 ベースであるため、開始値はg = 0.

また、pythonにはきちんとしたビルトインがありsumます。

print sum(st_age)

したがって、修正されたコードは次のようになります。

st_age = [0]*3 
for g in range(3):
    st_age[g] = int(input("Enter student age "))

g = sum = 0 
while g < len(st_age): #am I using this correctly? 
    sum = sum + st_age[g]
    g += 1

print sum

または、リスト内包表記と組み込みを使用sum:

st_age = [int(input("Enter student age ")) for _ in range(3) ]
print (sum(st_age)) #Note extra parentheses

余分な括弧を入れたので、コードは Python 2 と 3 の両方で正常に動作します。

于 2013-11-14T16:08:02.893 に答える