0

次のような def 関数があります。

def update(marks, num, mark, column):
    lines = [l for l in marks]
    for row in range(len(all_marks)):
        if all_marks[row][0] == num:
            lines[row][column] = mark
        elif lines[row][column] != '':
            print num + ' already has a value in column - update ignored.'

別の def 関数内の raw_input 関数は次のようになります。

result1 = raw_input('Enter results file: ')
num = raw_input('Student number (empty to finish): ')

if len(snumber) == 0:
    print
    print
    print 'finished'
    print
    print
    return interact()

 else:
    pass

 column2 = raw_input('Enter column: ')
 newresult1 = raw_input('New result: ')

 try:
     print update(result1, snumber, newresult1, column2)

 except IOError:
    print 'Try again'

下から 3 行目は def update(marks, num, mark, column) を出力するはずでしたが、何も返されません。

申し訳ありませんが、コードは少し乱雑です。誰かが私が間違ったことを教えてもらえますか?

前もって感謝します。

4

2 に答える 2

1

あなたのupdate関数は何かを返すようには見えません。明示的に何かを返す必要があります。そうしないと、戻り値がありません。

于 2012-08-21T00:42:16.970 に答える
0

raw_input()ユーザーにプロンプ​​トを表示し、ユーザーの応答をstringとして返します。おそらく、文字列を整数に変換しようとしているでしょう。

このコードは、適切な応答が返されるまでユーザーを悩ませます。

while True:
  try:
    column2 = int(raw_input('Enter column: '))
    break
  except ValueError:
    print 'You did not supply an integer!'
于 2012-08-21T00:41:59.193 に答える