有没有办法,例如,Hello World!每n秒打印一次?例如,程序将通过我拥有的任何代码,然后一旦它有5秒(有time.sleep())它将执行该代码.我会使用它来更新文件,而不是打印Hello World.
例如:
startrepeat("print('Hello World')", .01) # Repeats print('Hello World') ever .01 seconds
for i in range(5):
print(i)
>> Hello World!
>> 0
>> 1
>> 2
>> Hello World!
>> 3
>> Hello World!
>> 4
Run Code Online (Sandbox Code Playgroud) 我只是在python中搞乱线程,写了这个基本的IM东西[底部的代码]
我注意到,当我用Cc杀死程序时它不会退出,它只是永远挂起.
我只是猜测它正在等待每个线程完成他们正在做的事情,但因为它是一个永远不会发生的无限循环.
所以我想我需要手动杀死每个线程,或者在killsignal进来时结束循环.
我该怎么做?
#!/usr/bin/env python
import threading
import socket
class Listen(threading.Thread):
def run(self):
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.bind(('', 2727))
conn.listen(1)
while True:
channel, details = conn.accept()
print str(details)+": "+channel.recv(250)
channel.send("got it")
channel.close()
class Shout(threading.Thread):
def run(self):
while True:
try:
address = raw_input("who u talking to? ")
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect((address, 2727))
break
except:
print "can't connect to "+ str(address)
while True:
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect((address, 2727))
conn.send(raw_input())
conn.close()
listen = Listen().start()
shout = Shout().start()
Run Code Online (Sandbox Code Playgroud) 我有一个脚本应该与用户输入交互(按箭头键),但我无法获取按键。我尝试了 raw_input 和其他一些函数,但它们不起作用。这是我的示例代码,它应该是什么样子(可以在另一个函数中将运行 bool 设置为 False)
running = True
while running:
#if input == Arrow_UP:
# do_Sth
#elif ...
display()
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
另一个问题是,如何每秒只调用一次显示函数,但立即对输入做出反应?