BAMBOO1583 发表于 2018-12-15 20:31:59

print(f.readline(),end='')后一个参数end不懂

def file_N(file_name,N):
    f = open(file_name)
    for i in range(N):
      #print(f.readline().strip())
      #print(f.readline())
      print(f.readline(),end='')
    f.close()


file_name = input('请输入要打开的文件:')
N = int(input('请输入需要显示该文件前几行:'))

print('文件%s的前%d行的内容如下:' % (file_name,N))
file_N(file_name,N)

编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上。
以上是代码实现,print(f.readline(),end='')后一个参数end不懂。我在idle上help(print)了,得知 end:在最后一个值后附加的字符串,默认为换行符。
但是没有理解换成' ',就输出去除空格的效果。望解惑,谢谢。

丶忘却的年少o 发表于 2018-12-15 20:53:16

那个 end='' 的意思是结尾不要换行,啥也没打,就输出完我要的东西后就行,也别给我换行,反正啥也别给我输出,完了那,光标的位置还是在刚输出玩的那个地方的后面,不然那就换行了。

倚楼听雨落 发表于 2018-12-15 21:03:05

可以看看这篇文章,讲的挺详细的:https://blog.csdn.net/luomanluoland/article/details/80630006

BAMBOO1583 发表于 2018-12-15 21:03:23

丶忘却的年少o 发表于 2018-12-15 20:53
那个 end='' 的意思是结尾不要换行,啥也没打,就输出完我要的东西后就行,也别给我换行,反正啥也别给我输 ...

明白了,谢谢

xueqiu0903 发表于 2018-12-15 21:27:43

本帖最后由 xueqiu0903 于 2018-12-15 21:39 编辑

例如:
>>>for i in range(10):
>>>print(i,end = ' ')
>>>print(i)
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
end=' ' 的意思是不用换行,在后面加一个空格继续输出,表示语句没有结束,而print则是输出一个循环的值在默认换行,
而f.read()表示读取所有字符,f.readline()则是一行一行读取,如果与end= ' '一起使用就得不了第一个输出的结果,只是第二输出的类型前加上空格而已.

BAMBOO1583 发表于 2018-12-15 22:07:20

xueqiu0903 发表于 2018-12-15 21:27
例如:
>>>for i in range(10):
>>>print(i,end = ' ')


如果不是最佳答案只有一个,我还给你一个,谢谢,解释得清楚明白。

BAMBOO1583 发表于 2018-12-15 22:08:46

倚楼听雨落 发表于 2018-12-15 21:03
可以看看这篇文章,讲的挺详细的:https://blog.csdn.net/luomanluoland/article/details/80630006

谢谢,明白了

timcui 发表于 2018-12-19 09:29:52

BAMBOO1583 发表于 2018-12-15 22:08
谢谢,明白了

这就和c语言中的printf和println一样,前者不换行,后者换行
页: [1]
查看完整版本: print(f.readline(),end='')后一个参数end不懂