2017-10-31 4 views
-1

私はグレードを文字列として取り、その文字列の一部をとり、それを浮動小数点に変換し、その浮動小数点を変数に追加する等級計算機プログラムを作っています。カット文字列を浮動小数点型(python)にするには?

homework = ['10/10', '8/10', '4/10'] 

pointsearned = 0.0 

def addpts(list): 
    for grade in list: 
     global pointsearned 
     pointsearned = pointsearned + float(list[grade][:list.index('/')]) 

addpts(homework) 

print pointsearned 

私はエラー「TypeError例外を:リストインデックスはstrをない、整数でなければなりません」を取得、それはでは

  • 作り付けのPythonのキーワードであるため、変数名としてリストを使用していないすべての

  • +1

    使用はint(グレード)を確認してください。 – geckos

    +1

    また、リスト 'list'を呼び出さないでください - それは組み込みのアクセスをブロックします。 – Shadow

    答えて

    1
    1. ファーストをあなたのコードはlist[grade]を使用していますが、グレードはリストのインデックスではないため、エラーが発生しています。またlist.index('/') を使用していますが、リストには要素がありません\です。私はコードを変更しました。インデックスでブロー

    homework = ['10/10', '8/10', '4/10'] pointsearned = 0.0 def addpts(lst): for grade in lst: global pointsearned pointsearned = pointsearned + float(grade.split('/')[0]) return pointsearned print addpts(homework) #print pointsearned

    +0

    ありがとうございます –

    +0

    グローバルの代わりに戻り値を使用してください。グローバルな価値観は一般的には悪い考えであり、特にこの場合は確かです。 –

    +0

    @CadeB:はい、グローバル変数の代わりにリターンを使用し、関数内に印刷することをお勧めします。 Mad Physicistのコメントに従ってコードを変更しました。 –

    関連する問題