iT邦幫忙

1

python print回到上一行

  • 分享至 

  • xImage

有點難說明
比如說

a=1
while 1:
   print(a,end='\r')
   a+=2

這樣我可以讓數字一直在第一行
但是當我要打印兩行時
就沒辦法讓數字一直待在原地
比如

a=1
b=2
while 1:
   print(a,end='\r')
   print(b,end='\r')
   a+=2
   b+=2

我想要a和b在不同行固定
然後數字一直增加
有可能做到嗎?

可以啊
os.system(‘cls’)
print(str(a)+’\n’+str(b))
s4028600 iT邦新手 5 級 ‧ 2020-04-18 02:48:33 檢舉
但是我還有其他打印的要留下來
不想全部清除
不過感謝回答
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
ccutmis
iT邦高手 2 級 ‧ 2020-04-18 09:22:12

若refresh前一行沒有辦法,因為dos環境只有cls清除全畫面指令能用
若要在單行顯示a:xx b:yy不斷刷新就可以,範例如下:

from time import sleep

print('Press Ctrl-C to quit.')
a, b = 1,2
try:
	while True:
		tmpStr = 'a: ' + str(a).rjust(4)+ '    b: ' + str(b).rjust(4)
		print(tmpStr, end='')
		print('\b' * len(tmpStr), end='', flush=True)
		a=a+2
		b=b+2
		sleep(0.5) #暫停秒數
except KeyboardInterrupt:
	print('\nDone.')
s4028600 iT邦新手 5 級 ‧ 2020-04-18 17:52:56 檢舉

原本想說多線程可不可以 可惜
你這寫法有我沒看過的函數
了解 看來似乎只能放棄

我要發表回答

立即登入回答