搜索程序的帮助。任务是从this question重写程序。
方向是创建一个名为def username(first, last):
的函数。函数username
将包含两个参数first
和last
。输出将与原始文本文件成绩程序相同。
这是我到目前为止所做的:
def username(first, last):
for lines in aList:
n = lines.split()
first = n[0][0].lower()
last = n[1][0:4].lower()
resultName = first + last + "001"
return resultName
def main():
inFile = open("grades.txt", "r")
aList = inFile.readlines()
print(username)
inFile.close
main()
我收到的输出:
function username at 0x7f68f83a5158
我应该收到的输出:
>>>username('Jane', 'Smith')
jsmit001
对于我能做些什么来使这个程序正确运行的任何见解将不胜感激。
我玩这个程序并发现:
def username(first, last):
inFile = open("grades.txt", "r")
aList = inFile.readlines()
for lines in aList:
n = lines.split()
first = n[0][0].lower()
last = n[1][0:4].lower()
resultName = first + last + "001"
return resultName
infile.close
def main():
print(username(first = "Jane", last = "Smith"))
main()
它现在有效,但只给我文本文件的第一行。输出是正确的,但我需要所有5个用户名。我相信这是某个地方的缩进问题,但我不确定它在哪里。通过取消缩进"返回resultName"一旦我的输出是我的文本文件中的最后一行。
答案 0 :(得分:0)
print(username)
这里你错过了论点(第一个,最后一个)。目前你只是询问保存函数的位置,所以指针设置为
的位置答案 1 :(得分:0)
您的计划存在问题。
希望它有所帮助。
def username(first, last):
for lines in aList:
n = lines.split()
first = n[0][0].lower()
last = n[1][0:4].lower()
resultName = first + last + "001"
return resultName
def main():
inFile = open("grades.txt", "r")
aList = inFile.readlines()
#first == aList[0]
#last = aList[1] #Something like this I expect
print(username) ##Pass the values to the function which will return you the value "resultName" which you want to print
inFile.close()
main()