2016-08-25 8 views
0

私は現在、リストから数字をテキストファイルの数値に掛けようとしていますが、エラーが発生します。= Can't multiply sequence by non-int of type 'NonType'リストの番号とテキストファイルの番号を掛け合わせますか?

誰かがこれを行うより良い方法はありますか?

text_file =open("read_it.txt", "r") 
pricetxt=print(text_file.readlines()[2]) 
price1 = pricetxt*(items2[1]) 
print(price1) 

答えて

1

print()戻りなし、あなたはpricetxt()でそれを維持しています。また、文字列の結果をintに変換する必要があります(正しいデータの場合)。また、ファイルのオープンにはwithステートメントを使用することをお勧めします。これは、ブロックの最後に自動的にファイルを閉じるためです。

with open("read_it.txt") as text_file: 
    try: 
     price = int(text_file.readlines()[2]) 
    except ValueError: 
     # do something else 
    else: 
     new_price = price * items2[1] 

また、items2[1]も整数である必要があります。それが整数でない場合はpricetxtの後にtryブロックで行うことができます。

+0

変数が 'int'に変換されると、変数名は' pricetxt'ではなく 'priceval'または' price'でなければなりません。 –

+0

@StevenRumbalski良い点! – Kasramvd

+0

ありがとうございました。リスト内の数値は、整数または文字列として扱われますか? –

関連する問題