import time
def timer():
now = time.localtime(time.time())
return now[5]
run = raw_input("Start? > ")
while run == "start":
minutes = 0
current_sec = timer()
#print current_sec
if current_sec == 59:
mins = minutes + 1
print ">>>>>>>>>>>>>>>>>>>>>", mins
我想创建一种秒表,当分钟达到20分钟时,会弹出一个对话框,对话框不是问题。但是我的分钟变量在这段代码中没有增加。
答案 0 :(得分:52)
请参阅线程中的Timer Objects。
怎么样
from threading import Timer
def timeout():
print("Game over")
# duration is in seconds
t = Timer(20 * 60, timeout)
t.start()
# wait for time completion
t.join()
如果你想要传递timeout
函数的参数,你可以在计时器构造函数中给它们:
def timeout(foo, bar=None):
print('The arguments were: foo: {}, bar: {}'.format(foo, bar))
t = Timer(20 * 60, timeout, args=['something'], kwargs={'bar': 'else'})
或者您可以使用functools.partial
创建绑定函数,也可以传入实例绑定方法。
答案 1 :(得分:26)
使用time.sleep
:
import time
run = raw_input("Start? > ")
mins = 0
# Only run if the user types in "start"
if run == "start":
# Loop until we reach 20 minutes running
while mins != 20:
print ">>>>>>>>>>>>>>>>>>>>>", mins
# Sleep for a minute
time.sleep(60)
# Increment the minute total
mins += 1
# Bring up the dialog box here
答案 2 :(得分:6)
我使用timedelta
对象。
from datetime import datetime, timedelta
...
period = timedelta(minutes=1)
next_time = datetime.now() + period
minutes = 0
while run == 'start':
if next_time <= datetime.now():
minutes += 1
next_time += period
答案 3 :(得分:2)
除了必须进行以下替换外,您的代码是完美的:
minutes += 1 #instead of mins = minutes + 1
或
minutes = minutes + 1 #instead of mins = minutes + 1
但这是此问题的另一种解决方案:
def wait(time_in_seconds):
time.sleep(time_in_seconds) #here it would be 1200 seconds (20 mins)
答案 4 :(得分:1)
mins = minutes + 1
应该是
minutes = minutes + 1
另外,
minutes = 0
需要在while循环之外。
答案 5 :(得分:1)
我想创建一种秒表,当分钟达到20分钟时,会出现一个对话框。
您只需要在指定时间内睡觉。 time.sleep()需要几秒钟才能睡眠,所以20 * 60就是20分钟。
import time
run = raw_input("Start? > ")
time.sleep(20 * 60)
your_code_to_bring_up_dialog_box()
答案 6 :(得分:1)
# this is kind of timer, stop after the input minute run out.
import time
min=int(input('>>'))
while min>0:
print min
time.sleep(60) # every minute
min-=1 # take one minute
答案 7 :(得分:1)
import time
...
def stopwatch(mins):
# complete this whole code in some mins.
time.sleep(60*mins)
...
答案 8 :(得分:0)
您可能正在寻找一个Timer对象:http://docs.python.org/2/library/threading.html#timer-objects
答案 9 :(得分:0)
尝试使用这样的while循环:
minutes = 0
while run == "start":
current_sec = timer()
#print current_sec
if current_sec == 59:
minutes = minutes + 1
print ">>>>>>>>>>>>>>>>>>>>>", mins
答案 10 :(得分:0)
import time
def timer(n):
while n!=0:
n=n-1
time.sleep(n)#time.sleep(seconds) #here you can mention seconds according to your requirement.
print "00 : ",n
timer(30) #here you can change n according to your requirement.
答案 11 :(得分:0)
String add = "INSERT INTO time_table VALUES(?, ?, ?, ?, ?,?,?,?,?)"; try (PreparedStatement insert = connection.prepareStatement(add)) { insert.setString(1, coursename); insert.setString(2, coursecode); insert.setString(3, days); insert.setString(4, year); insert.setString(5, dep); insert.setString(6, time); insert.setString(7, hall); insert.setString(8, lecturer); insert.setString(9, credithours); insert.executeUpdate(); }
我实际上是在寻找一个计时器,而你的代码似乎有效,你的会议记录没有被计算的可能原因是,当你这么说时
分钟= 0
然后
分钟=分钟+ 1
与说
相同mins = 0 + 1
我打赌每次打印分钟时都会显示你&#34; 1&#34;因为我刚刚解释过的,&#34; 0 + 1&#34;总会产生&#34; 1&#34;。
首先要做的是放置
在你的while循环之外的分钟= 0
声明。之后你可以删除
分钟=分钟+ 1
行,因为在这种情况下你真的不需要另一个变量,只需用
替换它分钟=分钟+ 1
这样分钟将以&#34; 0&#34;的值开始,接收&#34; 0 + 1&#34;的新值,接收&#34; 1 + 1&的新值#34;,接收&#34; 2 + 1&#34;等的新值
我意识到很多人已经回答了这个问题,但我认为如果你能看出你犯了什么错误并尝试修复它,那么它会更有帮助,学习更明智。希望它有所帮助。另外,感谢计时器。
答案 12 :(得分:0)
import time
mintt=input("How many seconds you want to time?:")
timer=int(mintt)
while (timer != 0 ):
timer=timer-1
time.sleep(1)
print(timer)
这项工作非常适合时间秒。