我的while循环在运行时不会打印任何内容.

import os
import time

place = 10

running = True

def Write():
  j = 1
  for i in range(place - 1):
    print("-", end = "")
    j += 1
  print("a", end = "")
  for k in range(10 - j):
    print("-", end = "")

while running:
  Write()
  time.sleep(5)
  if place > 1:
    place -= 1
  os.system("clear")

当只有输出和时间的时候.睡眠,while循环工作.

while running:
  print("Looping...")
  time.sleep(5)

当有功能和时间的时候.睡吧,代码不起作用.

while running:
  Write()
  time.sleep(5)

请告诉我怎么解决这个问题.

推荐答案

我对你的发现感到困惑,现在我找到了解决这个有趣行为的办法;可以使用flush=True参数强制刷新:

import os
import time

place = 10

running = True

def Write():
  j = 1
  for i in range(place - 1):
    print("-", end = "")
    j += 1
  print("a", end = "", flush=True)
  for k in range(10 - j):
    print("-", end = "", flush=True)

while running:
  Write()
  time.sleep(1)
  if place > 1:
    place -= 1
  os.system("clear")

是否缓冲输出通常由文件决定,但如果flush关键字参数为true,则强制刷新流-https://docs.python.org/3/library/functions.html#print

或者,(i)将print()(不带end)放在Write的末尾,或者(ii)使Write返回一个字符串(不是在函数内部打印),并在函数外部打印字符串(在while循环中)似乎可以工作.绿斗篷盖在 comments 部分的解决方案,即sys.stdout.flush()也有效.

在我看来,end=''让python或console不愿意Eager 地(在某些情况下)显示字符,等待一行结束.

Python相关问答推荐

Pandas 都是(),但有一个门槛

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

Polars:用氨纶的其他部分替换氨纶的部分

如何更改分组条形图中条形图的 colored颜色 ?

Pandas Loc Select 到NaN和值列表

在Python中调用变量(特别是Tkinter)

使用Python查找、替换和调整PDF中的图像'

处理具有多个独立头的CSV文件

ConversationalRetrivalChain引发键错误

Python pint将1/华氏度转换为1/摄氏度°°

如何在GEKKO中使用复共轭物

为什么在Python中00是一个有效的整数?

分解polars DataFrame列而不重复其他列值

如何在Pandas中用迭代器求一个序列的平均值?

在不中断格式的情况下在文件的特定部分插入XML标签

Pandas ,快速从词典栏中提取信息到新栏

如何通过函数的强式路径动态导入函数?

为什么在安装了64位Python的64位Windows 10上以32位运行?

IpyWidget Select 框未打开

如何导入与我试图从该目录之外运行的文件位于同一目录中的Python文件?