-3

このコードで prodname 変数を int 値に変換しようとしています。

def prod_check(dirname):
    prodname_to_prodnum = {}
    fid2 = open('sample.txt','r')
    line = fid2.readline()
    line = line.strip()
    pline = line.split(',')
    prodname = (pline[0])[1:-1]
    prodnum = prodname
    prodname_to_prodnum[prodname] = prodnum
    line = fid2.readline()
    fid2.close()

しかし、「int(prodname)」を使用するとエラーが発生します

4

2 に答える 2

2

代わりにこれを試してくださいprodnum = prodname

try:
  prodnum = int(prodname)
except ValueError:
  prodnum = None
  print('prodname = ',prodname)
于 2012-07-18T20:31:01.557 に答える
2

Python のリストは、1 から始まるのではなく、0 から始まります。ですでに行をフィールドに分割しているsplitので、 を使用prodnum = int(pline[0])して最初のフィールドを取得する必要があります。

編集:人々がコピー/貼り付けを使用してコードを質問に入力してくれることを願っています.タイプミスはすべての違いを生みます.

数値フィールドから最初と最後の文字を削除する理由がわかりません。おそらく、空白を削除する必要があるためですか? もしそうなら、使ってみてくださいprodnum = int(pline[0].strip())

于 2012-07-18T20:46:26.857 に答える