在raw_input里面命令def函数?

时间:2012-08-21 00:36:19

标签: python csv

我有一个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'

底部的第三行应该打印def更新(标记,数字,标记,列),但它一直没有返回。

对不起,代码有点乱。 谁能让我知道我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的update函数看起来不会返回任何内容。您需要显式返回某些内容,否则将不会返回值。

答案 1 :(得分:0)

raw_input()提示用户并将用户的响应作为字符串返回。您可能希望将字符串转换为整数。

此代码将唠叨用户,直到给出正确的响应:

while True:
  try:
    column2 = int(raw_input('Enter column: '))
    break
  except ValueError:
    print 'You did not supply an integer!'