讓滑鼠隨時標記當前座標。
但是迴圈多了一個數值,\b刪除左邊字元,刪不乾淨?
from PIL import Image as im
import pyautogui as pag
print("Ctrl+C to stop")
try:
while True:
x, y = pag.position() # x:1012, y: 167
ps = 'x:' + str(x).rjust(4) + '. y:' + str(y).rjust(4)
ss = pag.screenshot().getpixel((x, y)) # (51, 51,51)
ps += ', RGB=({0}, {1}, {2})'.format(ss[0], ss[1], ss[2])
# x:1012, y: 167, RGB=(51, 51,51)92) ←問題出在這裡,明明下面的'\b'*len(ps) 應該能完全清除ps字串的內容,但總是會「不夠」,漏掉一些沒刪到,比如上面的92),為什麼呢?
print(ps, end='') # 為了讓下一行的「\b」發生作用,此行必須有end=''。
print('\b'*len(ps), end='', flush=True)
# 擦掉先前印出的座標,並更新記憶體狀態
except KeyboardInterrupt: # 按ctrl+c,停止while True迴圈
print('\nDone.')
註:會寫程式的人通常數學很厲害吧?
本來想夾帶問一題「高中3次函數的圖形」,但又怕歪樓。
我自己理解在 python 中 \b
並不是用來 刪除的
而是替換。
比如:abc\b
不會刪除 c
還是 abc
,但 abc\bd
會把 c
換成 d
,最終會變成 abd
你可以跑跑看以下的程式:
ps = "awa"
print(ps, end="")
print("\b" * len(ps) + " " * len(ps), flush=True)
print("None")
他會輸出None
ps = "awa"
print(ps, end="")
print("\b" + " " * len(ps), flush=True)
他會輸出aw
然後至於第二個問題 S... 我現在高職電子科一年級
數學: 75, 英文: 30....
註: 數學全班有人好像考 100...
這成績熱騰騰剛出的 :L