Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何替换多个输出行?_Python_Database_Firebase_Firebase Realtime Database_Pyrebase - Fatal编程技术网

Python-如何替换多个输出行?

Python-如何替换多个输出行?,python,database,firebase,firebase-realtime-database,pyrebase,Python,Database,Firebase,Firebase Realtime Database,Pyrebase,我有三个输出,我想每3秒钟更换一次 使用此代码,它只打印c: import sys import time a = 1 b = 5 c =10 while True: sys.stdout.write("\r" + str(a)) sys.stdout.write("\r" + str(b)) sys.stdout.write("\r" + str(c)) time.sleep(3) a += 1 b+=1 c+=1 sys.stdout

我有三个输出,我想每3秒钟更换一次

使用此代码,它只打印c:

import sys

import time

a = 1

b = 5

c =10

while True:

  sys.stdout.write("\r" + str(a))

  sys.stdout.write("\r" + str(b))

  sys.stdout.write("\r" + str(c))

  time.sleep(3)

  a += 1

  b+=1

  c+=1

  sys.stdout.flush()

有没有人可以用三行打印所有代码?

没有,它是打印
a
,立即用
b
覆盖,然后用
c
覆盖,所以
c
就是你所看到的。要使这三种功能都可见,唯一的方法(除了利用
诅咒
或其他一些高级终端功能外)是以单行方式打印它们,如下所示:

sys.stdout.write("\r{} {} {}".format(a,b,c))

不,它正在打印
a
,立即用
b
覆盖它,然后用
c
覆盖它,所以
c
就是你所看到的一切。要使这三种功能都可见,唯一的方法(除了利用
诅咒
或其他一些高级终端功能外)是以单行方式打印它们,如下所示:

sys.stdout.write("\r{} {} {}".format(a,b,c))

您之所以只看到前面提到的c,是因为它是您在调用sys.stdout.flush()之前编写的最后一个代码。

如果删除
sys.stdout.write(“\r”+str(c))
中的部分,您将看到b


正如@Błotosmętek在我之前提到并回答的那样,您可以格式化所需的输出,然后执行刷新。

您之所以只看到前面提到的c,是因为它是您在调用
sys.stdout.flush()之前编写的最后一个代码。

如果删除
sys.stdout.write(“\r”+str(c))
中的部分,您将看到b

正如@Błotosmętek在我之前提到并回答的,您可以格式化所需的输出,然后执行刷新。

以上所有操作都是正确的。 只需确保为While循环创建一些端点

import sys 
import time
import os 

def clear():
    os.system( 'cls' )

a = 1
b = 5
c =10

while c<20:
  sys.stdout.write("\r" "****************************\n") 
  sys.stdout.write("\r" "This is Run : " + str(a) + "\n")
  sys.stdout.write("\r" "****************************\n")
  sys.stdout.write("\r" " This is a : " + str(a) +  "\n This is b :" +  str(b) + "\n This is C:"  +str(c) + "\n" )

  time.sleep(2)

  a += 1
  b+=1
  c+=1
  sys.stdout.flush()
  clear()
导入系统 导入时间 导入操作系统 def clear(): 操作系统(“cls”) a=1 b=5 c=10 c以上各项均正确。 只需确保为While循环创建一些端点

import sys 
import time
import os 

def clear():
    os.system( 'cls' )

a = 1
b = 5
c =10

while c<20:
  sys.stdout.write("\r" "****************************\n") 
  sys.stdout.write("\r" "This is Run : " + str(a) + "\n")
  sys.stdout.write("\r" "****************************\n")
  sys.stdout.write("\r" " This is a : " + str(a) +  "\n This is b :" +  str(b) + "\n This is C:"  +str(c) + "\n" )

  time.sleep(2)

  a += 1
  b+=1
  c+=1
  sys.stdout.flush()
  clear()
导入系统 导入时间 导入操作系统 def clear(): 操作系统(“cls”) a=1 b=5 c=10
当c时,发生这种情况是因为命令
sys.std.write
正在覆盖输出。只有在调用
sys.stdout.flush()
时,输出才会被清除。尽管此命令也只是清除数据缓冲区,这是python临时存储数据的临时区域。因此,点击它只会将光标放到新行,即相当于
\n
新行字符

因此,基本上您需要在字符串的末尾编写一个新行字符
\n
,以显示所有输入

此外,如果要清除控制台,可以使用
os.system('clear')

有关更清洁的输出,请参阅以下代码

import os
import sys
import time

a, b, c = 1, 5, 10

while True:
    sys.stdout.write(f"a:{a} b:{b} c:{c}\n")
    time.sleep(3)
    a += 1
    b += 1
    c += 1
    #clear console
    os.system('clear')

这是因为命令
sys.std.write
正在覆盖输出。只有在调用
sys.stdout.flush()
时,输出才会被清除。尽管此命令也只是清除数据缓冲区,这是python临时存储数据的临时区域。因此,点击它只会将光标放到新行,即相当于
\n
新行字符

因此,基本上您需要在字符串的末尾编写一个新行字符
\n
,以显示所有输入

此外,如果要清除控制台,可以使用
os.system('clear')

有关更清洁的输出,请参阅以下代码

import os
import sys
import time

a, b, c = 1, 5, 10

while True:
    sys.stdout.write(f"a:{a} b:{b} c:{c}\n")
    time.sleep(3)
    a += 1
    b += 1
    c += 1
    #clear console
    os.system('clear')

谢谢,但它没有替换行,它启动了一个新的hanks,但它没有替换行,它启动了一个新的os.system('clear')或os.system('cls')不清除屏幕。我得到一个错误代码,它添加了另一个lineThk())Hack,命令“clear”==所需的结果。os.system('clear')或os.system('cls')不清除屏幕。我得到一个错误代码,它使用命令“clear”==期望的结果添加了另一个lineThk)。