【问题标题】:Why doesn't print() work in Visual Studio Code? [duplicate]为什么 print() 在 Visual Studio Code 中不起作用? [复制]
【发布时间】:2022-01-12 18:24:07
【问题描述】:

我正在尝试制作一个重复打印字符串的while True-loop:

from time import sleep
while True:
    sleep(1)
    print("test", end="")

但是在使用 VSC 运行时它不会打印任何内容。使用 IDLE 运行它对我有用,一个朋友也尝试过,对他来说,情况正好相反。

为什么会这样?

【问题讨论】:

  • 输出可能被缓冲,确保它立即打印的唯一方法是传递flush=True进行打印。
  • 啊,这行得通,谢谢!

标签: python loops visual-studio-code printing


【解决方案1】:

这是Does "time.sleep()" not work inside a for loop with a print function using the "end" attribute?的副本,需要使用print("test", end="", flush=True)强制输出

【讨论】:

  • 如果是重复的,则将其作为重复关闭。不要发布指向副本的链接作为答案。
【解决方案2】:

Python 的 stdoutbuffered,这意味着打印到 stdout 的内容在打印换行符、缓冲区已满或缓冲区已刷新之前不会出现在控制台上。

您有三个选择:

  1. 去掉 print() 语句中的 end 参数,因为 print() 语句隐式添加换行符。
  2. 使用sys.stdout.flush() 刷新缓冲区:
import sys
from time import sleep

while True:
    sleep(1)
    print("test", end="")
    sys.stdout.flush()
  1. print() 语句中使用flush=True

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-12-16
  • 2020-10-11
  • 2021-12-11
  • 2011-02-27
  • 2020-02-29
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多