鱼C论坛

 找回密码
 立即注册
查看: 1176|回复: 2

[已解决]变量的作用域

[复制链接]
发表于 2020-9-22 16:51:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
file_name = input('请输入需要打开文件')
look_file_line = int(input('请输入需要查看显示该文件前几行'))

def open_file(file_name):
    file = open(file_name)

    #统计总共行数
    line = 0

    for each_line in file:
        print('1')#测试用的
        
        line += 1


    if look_file_line > line:
        print('文件行数只有',line,'行')

    while line:
        line_string = file.readline()
        print(line_string)
        line -= 1
    print(line)#这行代码是我测试用的
    file.close()

open_file(file_name)

为什么for 循环里面line += 1 没有加上去呢,还是原来的值,而且也不会报错
最佳答案
2020-9-22 17:09:42
本帖最后由 sunrise085 于 2020-9-22 18:55 编辑

我不知道你所说的 line+=1 没有加上去是什么意思。
我这里运行的时候,那个if语句后的print打印出来的line就是文件的行数

我不知道你的这个while循环是要干什么,你若是要打印显示file的内容,那应该先把光标移动到文件起始位置啊
你的for循环已经把光标移动到了文件的末尾,所以你的这个while不会读到任何内容,还有while内的print应该加上end参数,否则打印的每一行后面都会有一个空行,因为 readline读取到的一行内容末尾是有回车的,再加上print的回车就会出现一个空行
file_name = input('请输入需要打开文件')
look_file_line = int(input('请输入需要查看显示该文件前几行'))

def open_file(file_name):
    file = open(file_name)

    #统计总共行数
    line = 0

    for each_line in file:
        print('1')#测试用的
        
        line += 1


    if look_file_line > line:
        print('文件行数只有',line,'行')
    file.seek(0)# 将文件光标从文件末尾移动到文件开头
    while line:
        line_string = file.readline()
        print(line_string,end='')
        line -= 1
    print(line)#这行代码是我测试用的
    file.close()

open_file(file_name)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 17:08:51 | 显示全部楼层
能加上啊,后面的while不是又递减到0了么
没打印出来内容,是因为已经打开读取了一次文档,指针已经指到文件末尾了吧
请输入需要打开文件1111.txt
请输入需要查看显示该文件前几行6
1
1
1
文件行数只有 3 行



0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 17:09:42 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-9-22 18:55 编辑

我不知道你所说的 line+=1 没有加上去是什么意思。
我这里运行的时候,那个if语句后的print打印出来的line就是文件的行数

我不知道你的这个while循环是要干什么,你若是要打印显示file的内容,那应该先把光标移动到文件起始位置啊
你的for循环已经把光标移动到了文件的末尾,所以你的这个while不会读到任何内容,还有while内的print应该加上end参数,否则打印的每一行后面都会有一个空行,因为 readline读取到的一行内容末尾是有回车的,再加上print的回车就会出现一个空行
file_name = input('请输入需要打开文件')
look_file_line = int(input('请输入需要查看显示该文件前几行'))

def open_file(file_name):
    file = open(file_name)

    #统计总共行数
    line = 0

    for each_line in file:
        print('1')#测试用的
        
        line += 1


    if look_file_line > line:
        print('文件行数只有',line,'行')
    file.seek(0)# 将文件光标从文件末尾移动到文件开头
    while line:
        line_string = file.readline()
        print(line_string,end='')
        line -= 1
    print(line)#这行代码是我测试用的
    file.close()

open_file(file_name)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 15:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表