|

楼主 |
发表于 2020-5-14 17:20:33
|
显示全部楼层
我不是这个意思
在return那函数就结束了,这个print不能打印我知道
我的问题是我在后面的代码中(不是"print('一共有%d行'%count_line) print('stock_line库现存着%s'%stock_line)")
调用file_line_record(file_name)这个函数后
再调用stock_line,程序就报错说我没定义stock_line
按理来说我return:stock_line了那么调用file_line_record(file_name)这个函数后返回值就是stock_line,后面就可以用这个stock_line了
可是后面用stock_line时,程序说我没定义stock_line,我就想不通了
不过你说的stock_line = file_line_record('你的文件名')这么搞,调用完函数这个stock_line确实可以用了
但是我还是想知道为什么都return了stock_line,当我用到stock_line时程序却说我没定义
以下是完整的代码(有点多,怕理解浪费大家时间不想贴上来的),如果有必要可以看一下
def file_line_record(file_name):
file1 = open(file_name,'r',encoding='utf-8')
stock_line = []
count_line = 0
for each_line in file1:
count_line += 1
stock_line.append(each_line)
return stock_line
print('一共有%d行'%count_line)
print('stock_line库现存着%s'%stock_line)
file = '文件1.txt'
stock_line = file_line_record(file)
#print(stock_line)
line_number = input('请输入行数:')#可以是 :3 or 3:6 or 6:
line_number_list = list(line_number)#把输入的:3变成[':','3']
print(line_number_list)
len_number = len(line_number_list)#统计列表里元素的个数[':','3']有两个元素
print('有%d个元素'%len_number)#统计列表里元素的个数[':','3']有两个元素
if len_number == 2:#像这种:3
if line_number_list[0] == ':':#说明是打印前n行到指定数字的
print('现在取冒号后面的%s'%line_number_list[1])
temp_number = int(line_number_list[1])
for each_line in range(0,temp_number):
print(stock_line[each_line]) |
|