jtyydgsj 发表于 2021-10-19 14:58:54

小白求助python29讲课后习题

#编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上
def file_view(file_name,line_num): #定义文件名和行数
    print('\n文件%s的前%s的内容如下:\n'%(file_name,line_num))
    f = open(file_name) #打开文件
    for i in range(int(line_num)): #这两行循环不知道怎么翻译 i是哪里来的??
      print(f.readline(),end='')

    f.close() #关闭了文件但是这个函数没有返回return会造成什么后果吗

file_name = input(r'请输入要打开的文件(C:\\test.txt:') #r'是原始字符串 这里用原始字符串的原因是有\\那样\t就不会自己转义成制表符了
line_num = input('请输入需要显示该文件前几行:')
file_view(file_name,line_num)
问题如下:
①对于for i in range(int(line_num))不知道如何进行翻译 i是哪里来的?它好像都没被定义 为什么能够使用不报错
② 函数没有返回值会造成什么后果吗?
③file_name中使用r' 是不是因为r'是原始字符串 用原始字符串的原因是有\\,使用后\t就不会自己转义成制表符了
quq谢谢!!

大马强 发表于 2021-10-19 14:58:55

1、用for语句就不用考虑该迭代变量是否声明过,语法就是这样
2、有无返回值不影响该函数的运行,跟你的需求有关,如果你想在一个函数计算1到10的和并在主函数引用,那就要将函数计算的结果return回主函数,如果你不需要在主函数引用,你也可以直接在函数print
3、"\\"和"\t"咋联系上的,文件路径用"\"做分割的时候,需要两个"\\",因为单个"\"有转义功能,所以像"C:\Users\14326\Desktop\新建文件夹"的路径是不合法的,要加上r"C:\Users\14326\Desktop\新建文件夹"

myqf123 发表于 2021-10-19 18:17:41

1,i是变量,被赋值时就被定义了,它的取值范围是range(0,int(line_num)),里边的0是默认值,可以不写,也可以改为其他值,那样取值范围就变了。
2,根据需求可返回可不返,没有影响。
3,r是原始字符串,和双引号一样,为了输出里边的字符串,\\是window下的路径符号,用\转义后面的\,同理\t也是一样的,用 \ 的目的是为了转义,否则会按原字符输出,比如d:\yinyue\是路径, 不加 \ ,就会输出成“d:\yinyue\”的字符串,而不是真正的路径了,\t代表制表符,没有 \ 就单纯是个字符"t",所以才把 \ 叫转义字符。
不知道我说清楚了没有?

jtyydgsj 发表于 2021-10-20 23:43:25

大马强 发表于 2021-10-19 14:58
1、用for语句就不用考虑该迭代变量是否声明过,语法就是这样
2、有无返回值不影响该函数的运行,跟你的需 ...

谢谢qwq

jtyydgsj 发表于 2021-10-20 23:44:18

myqf123 发表于 2021-10-19 18:17
1,i是变量,被赋值时就被定义了,它的取值范围是range(0,int(line_num)),里边的0是默认值,可以不写,也 ...

谢谢qwq
页: [1]
查看完整版本: 小白求助python29讲课后习题