为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦让函数运行,python

麻烦让函数运行,python

喵喔喔 2021-04-04 16:15:01
对于我的python类,我被指示创建一个函数,该函数将读取文件并报告行数,单词数和字符数。我可以使代码正常工作,但是一旦尝试将其转换为函数,它将无法正常工作。怎么了?我还需要返回一个元组中的值。我不断收到此错误:UnboundLocalError:赋值之前引用了本地变量'line_cnt'def file_elem(filenm):    f = open(filenm,'r')    wrd_cnt = 0    char_cnt = 0    line_len = 0    while f is open:        line_cnt = len(f.readlines( ))        for line in f:            f_lines = line.split()            wrd_cnt += len(f_lines)            no_spaces = ''.join(line.split())            char_cnt += len(no_spaces)    return print(line_cnt, wrd_cnt, char_cnt)import osx = os.path.join("C:", "\\temp", "practice4.txt")file_elem(x)
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

更改while f is openwith open(filenm,'r') as f并删除f = open(filenm,'r')。并移动return (line_cnt, wrd_cnt, char_cnt)with块里面!

另外,您不需要line_cnt = len(f.readlines( ))。您应该使用一个计数器并将其递增。否则,文件将在for line in f!之前读取。


查看完整回答
反对 回复 2021-04-05
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

更改此:

return print(line_cnt, wrd_cnt, char_cnt)

return (line_cnt, wrd_cnt, char_cnt)

和这个

file_elem(x)

到:

print file_elem(x)

它应该和以前一样工作。您的函数返回值。您的主程序将它们打印出来。


查看完整回答
反对 回复 2021-04-05
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号