我正在制作一个聊天程序,但遇到一个问题:屏幕仅在输入后更新。我正在使用turtle来显示聊天(我知道,turtle对于这个目的来说并不是那么好,但它非常简单。)
这是我循环中的代码:
while True:
ind = userlist.index(user)
if statlist[ind] == 'banned':
print('You have been banned.')
break
word = input('>>> ')
command(word)
if word != '':
chat = user + '(' + status + '): ' + word
update_room(chat)
refresh()
几乎所有东西都可以在这里被忽略,除了
word = input('>>> ')
and
refresh()
The refresh()
是更新海龟室的东西。
我怎样才能让它打印出新的聊天记录,即使用户正在打字? 2 个并排的 while 循环可以工作吗?
我承认我的程序组织得不是很好,为了解决这个问题,我可能必须重写这个循环。
注意:我不想导入任何东西,但如果需要导入,那么如果该模块预装了 python,那就太好了。
或者另一个问题:是否可以有 2 个无限 while 循环同时并行运行?
所以我对 python 还很陌生,但我有一个非常重复的想法。您需要首先删除输入部分并创建大量如下函数:
def key_a:
global key_in
key_in = key_in + 'a'
def key_b:
global key_in
key_in = key_in + 'b'
def key_c:
global key_in
key_in = key_in + 'c'
这样,如果您的输入是 Enter,那么它会将其设置为单词并重置输入变量。
def key_enter:
global key_in
global word
word = key_in
key_in = ''
然后绑定您的输入(将“win”视为您的窗口变量。)
win.listen()
win.onkeypress(key_a, 'a')
对大写字母也执行相同的操作。
win.onkeypress(caps_key_a, 'A')
请告诉我这是否有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)