我得到了这样一个需要解决的请求:
创建一个用Python编写的时钟应用程序,该应用程序将按以下间隔将以下值打印到stdout:
每秒钟“勾选”
每分钟“tock”
“邦”每小时一次
在给定的一秒钟内只应打印一个值,即在小时打印“bong”时,不应打印“tick”和“tock”值。你知道吗
它应该运行三个小时然后退出。你知道吗
应该存在一种机制,用户可以在程序运行时更改任何打印的值,即在时钟运行10分钟后,我应该能够在不停止程序的情况下更改它,以便它每秒停止打印“嘀嗒”,而开始打印“嘎嘎”。你知道吗
我想我能够正确地写下:
你知道吗============================================================================== -“滴答”每秒钟
每分钟“tock”
“邦”每小时一次
在给定的一秒钟内只应打印一个值,即在小时打印“bong”时,不应打印“tick”和“tock”值。你知道吗
它应该运行三个小时然后退出。你知道吗
for k in range (3): # 3 hours
for j in range(60): # one hour
for i in range(60):
print('Tick',i, j)
time.sleep(1)
for i in range(1):
print('Tock',i, j)
time.sleep(1)
for j in range(1):
print('Bong',j)
time.sleep(1)
但如何写作:
你知道吗============================================================================= 应该存在一种机制,用户可以在程序运行时更改任何打印的值,即在时钟运行10分钟后,我应该能够在不停止程序的情况下更改它,以便它每秒停止打印“嘀嗒”,而开始打印“嘎嘎”。你知道吗
我在一个程序中综合了以上所有内容。运行不太正常。你知道吗
当用户提供新值时:
所以现在:
应采取并相应地替换“分钟”、“秒”、“小时”值:
现在,在用户输入新值之后,仍然显示旧值:
可以使用^{} function 向用户查询单行字符串。这将阻塞,直到提供输入:
由于必须不中断地提供输出,因此不接受对输入的阻塞。您可以使用^{} module 将您的程序分成两个不能相互阻塞的部分。你知道吗
一个线程向用户查询时间指示符,另一个线程打印适合当前时间的指示符。由于您的程序很简单,因此可以使用
dict
等普通类型在这两个部分之间交换数据。你知道吗现在是打印部分。
threading
需要一个函数,所以我们必须定义一个。它需要我们的indicators
才能从中读取。而不是单独的小时,分钟,秒循环,我们只跟踪秒,但计算是否一小时或分钟已经过去。你知道吗至于输入部分,我们需要决定如何查询用户。例如,我们可以使用两阶段输入来请求一个类别(
seconds
),然后请求新的指示符(TICK
)。最简单的情况就是要求所有指标之间有分隔符。你知道吗我们必须为输入定义另一个函数(或使用主线程)。需要
indicators
才能写入它。我们使用input
请求三个值,用空格分隔,作为秒、分钟和小时的新指示器。你知道吗然后可以从线程中的每个部分开始。打印线程应使程序保持活动状态,而输入线程应中止其余线程。您也可以在主线程中运行打印,而不是在新线程中运行打印。你知道吗
相关问题 更多 >
编程相关推荐