被拉出美梦的人 发表于 2020-10-12 18:00:42

关于end=''指令的问题

end=' '的意思不应该是末尾不换行加空格吗,为什么我运行的还是换行了?请求指教。但end=''就执行的挺对的

疾风怪盗 发表于 2020-10-12 18:03:07

{:10_284:}实测,没有换行啊,print(end='')啥也没有,print(end=' ')就是一个空格。。。。。。。。

昨非 发表于 2020-10-12 18:31:11

print()本身自带一个换行,你说的那个是print自带的,跟end=" "这个空格结束符无关

永恒的蓝色梦想 发表于 2020-10-12 18:50:45

IDLE 会在每次输出后都进行一次换行,但打印了空内容不会,与 print 无关。

kogawananari 发表于 2020-10-12 20:20:41

本帖最后由 kogawananari 于 2020-10-12 20:23 编辑

你代码前面有 >>>
这个是不显示None的
它的实现是这样的:
while 1:
    ex = input('>>> ')
    try:
      exec(compile(ex,'','single'))
    except Exception as e:
      print("Traceback (most recent call last):")
      print(e)
你的print返回的None 所以是啥都没有 但还是经过了一轮循环 新的一轮里input('>>> ')给换了行

笨鸟学飞 发表于 2020-10-15 09:14:46

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
   
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
==============================
注意看帮助文档。print()函数默认的end是等于一个换行符。
也就是说例如print("hellow world"),实际等于print("hellow world",end="\n")。
也就是是打印"hellow world"+换行符。
你print("hellow world",end=''),就是把end参数定义为空,就不会换行了

永恒的蓝色梦想 发表于 2020-10-17 21:30:06

kogawananari 发表于 2020-10-12 20:20
你代码前面有 >>>
这个是不显示None的
它的实现是这样的:


据我所知,实现不是这样的
页: [1]
查看完整版本: 关于end=''指令的问题