杰瑞科技汇

Python 3 print如何实现不换行输出?

在 Python 3 中,使用 print() 函数实现不换行输出非常简单,核心方法是使用 end 参数。

Python 3 print如何实现不换行输出?-图1
(图片来源网络,侵删)

核心方法:使用 end 参数

print() 函数有一个名为 end 的参数,它指定了在打印内容之后要输出的字符,默认情况下,end 的值是 \n(换行符),所以每次打印后光标都会移到下一行。

如果你想让打印后不换行,只需要将 end 参数设置为一个空字符串 即可。

语法

print(object(s), ..., sep=' ', end='', file=sys.stdout, flush=False)

示例 1:打印多个字符不换行

print("Hello", end='')
print(" ", end='')
print("World", end='!')
# 输出结果:
# Hello World!

解释:

  • 第一个 print("Hello", end='') 打印 "Hello",并且因为 end 是空字符串,所以光标停在 "Hello" 后面,不换行。
  • 第二个 print(" ", end='') 打印一个空格,同样不换行。
  • 第三个 print("World", end='!') 打印 "World",并在其后加上 ,同样不换行。
  • 所有输出都在同一行。

示例 2:实现一个动态进度条

这是一个非常经典的用例,可以展示 end 参数的强大之处。

Python 3 print如何实现不换行输出?-图2
(图片来源网络,侵删)
import time
print("正在下载文件:", end='')
for i in range(21):
    # 使用 \r 将光标移到行首,实现原地更新
    print(f"{'█' * i}{' ' * (20 - i)} {i*5}%", end='\r')
    time.sleep(0.2) # 模拟耗时操作
print("\n下载完成!") # 下载完成后,打印一个换行
# 输出效果(会动态变化):
# 正在下载文件: ████████████████████████ 100%
# 下载完成!

解释:

  • end='\r':这里我们使用了 \r(回车符),它会把光标移到当前行的开头,这样下一次的 print 就会覆盖掉上一次的内容,实现了动态更新的效果。
  • print("\n下载完成!"):当循环结束后,我们使用一个正常的 print(默认 end='\n')来换行并打印完成信息。

示例 3:打印列表或元组中的元素(不换行)

如果你想打印一个列表中的所有元素,并且它们在同一行,可以这样写:

my_list = ['apple', 'banana', 'cherry']
# 使用循环和 end 参数
for item in my_list:
    print(item, end=' ')
print() # 打印一个空行,让输出更整洁
# 输出结果:
# apple banana cherry

Python 2 vs Python 3 的区别

了解这个区别有助于理解为什么 Python 3 要这样做。

  • 在 Python 2 中print 是一个语句,而不是函数,要实现不换行,你需要在末尾加一个逗号 。

    Python 3 print如何实现不换行输出?-图3
    (图片来源网络,侵删)
    # Python 2 代码
    print "Hello",
    print "World!"
    # 输出: Hello World!
  • 在 Python 3 中print 是一个函数,这使得它的行为更加灵活和一致,通过参数来控制,而不是依赖语法上的特殊符号(如逗号)。

    # Python 3 代码
    print("Hello", end=' ')
    print("World!")
    # 输出: Hello World!
需求 Python 3 代码 说明
默认(换行) print("Hello") end 默认为 \n
不换行 print("Hello", end='') end 设置为空字符串
不换行,并加空格 print("Hello", end=' ') end 设置为空格
不换行,并加其他字符 print("Hello", end='!') end 设置为
原地更新(动态效果) print("Progress...", end='\r') end 设置为 \r(回车符)

对于绝大多数不换行的需求,你只需要记住 print("内容", end='') 这个模式即可。

分享:
扫描分享到社交APP
上一篇
下一篇