在 try/except 的 while 循环中打印不起作用(Windows!!!)
print doesn't work while in while loop with try/except (Windows!!!)
不确定这里出了什么问题,函数没有打印任何内容(尝试将“1”作为参数 i)。我看到一个建议添加 flush=True 打印的答案,但这并不能解决问题。任何提示表示赞赏!更广泛地说 - 如果我希望该功能由键盘控制,我是否应该使用 try/except 框架,或者是否有更好的方法?
def i_printer(i):
while True:
try:
if keyboard.is_pressed('q'):
break
except:
print(i)
time.sleep(3)
编辑:使用 Windows,显然键盘无法使用,正在寻找不同的解决方案。
try 和 except 块用于处理异常。由于单击 'q' 时不会出现任何错误,我认为在这里使用它们没有任何好处。只需简单的 if 语句即可。
def i_printer(i):
while True:
if keyboard.is_pressed('q'):
break
print(i)
time.sleep(3)
编辑: 如果您想录制键盘按下试试这个。以下代码将记录除 'q' 之外的所有键并打印记录的键。
import keyboard
def i_printer():
rk = keyboard.record(until ='q')
return keyboard.play(rk, speed_factor = 1)
i_printer()
通过生成器函数和迭代器(使用 windows,而不是 linux),事情就这样开始了:
import keyboard
import time
def printer():
while True:
yield '1'
time.sleep(1)
def iterator():
for i in aaa():
if keyboard.is_pressed('q'):
break
else:
print(i)
iterator()
不确定这里出了什么问题,函数没有打印任何内容(尝试将“1”作为参数 i)。我看到一个建议添加 flush=True 打印的答案,但这并不能解决问题。任何提示表示赞赏!更广泛地说 - 如果我希望该功能由键盘控制,我是否应该使用 try/except 框架,或者是否有更好的方法?
def i_printer(i):
while True:
try:
if keyboard.is_pressed('q'):
break
except:
print(i)
time.sleep(3)
编辑:使用 Windows,显然键盘无法使用,正在寻找不同的解决方案。
try 和 except 块用于处理异常。由于单击 'q' 时不会出现任何错误,我认为在这里使用它们没有任何好处。只需简单的 if 语句即可。
def i_printer(i):
while True:
if keyboard.is_pressed('q'):
break
print(i)
time.sleep(3)
编辑: 如果您想录制键盘按下试试这个。以下代码将记录除 'q' 之外的所有键并打印记录的键。
import keyboard
def i_printer():
rk = keyboard.record(until ='q')
return keyboard.play(rk, speed_factor = 1)
i_printer()
通过生成器函数和迭代器(使用 windows,而不是 linux),事情就这样开始了:
import keyboard
import time
def printer():
while True:
yield '1'
time.sleep(1)
def iterator():
for i in aaa():
if keyboard.is_pressed('q'):
break
else:
print(i)
iterator()