为了账号安全,请及时绑定邮箱和手机立即绑定

程序如何在 Python 中同时执行两个动作?

程序如何在 Python 中同时执行两个动作?

梦里花落0921 2021-07-30 05:04:29
我希望制作一个程序,该程序将打印从0to 中的数字x,并同时计算时间,并且两者都在控制台中同时执行。我怎样才能做到这一点?例如,我想制作一个程序,当计算机从0to写入数字时,它会计算时间x:import timeimport systime_counter = 0number = int(input("NUMBER: "))counter = 0while (counter < number):    sys.stdout.write("NUMBERS: " + str(counter) + '\r')    counter += 1sys.stdout.write('\n')while (counter < number):    sys.stdout.write("TIME COUNTER: " + str(time_counter) + '\r')    time.sleep(1)    time_counter += 1我想让这两个while代码块同时执行。
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

首先,我不太清楚您要实现的目标(代码的一般目的)。


但是对于特定的代码问题,您可以尝试使用单个while循环,可能是这样的:


import time


stop_number = int(input("NUMBER: "))


num_counter = 0

time_counter = 0


while num_counter < stop_number:

    print(num_counter, time_counter)


    time.sleep(1)


    num_counter += 1

    time_counter += 1

我不知道如何轻松地在终端的两行不同的行上打印,所以我的代码只打印在同一行上,每次迭代一行。


查看完整回答
反对 回复 2021-08-03
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

如果你想测量打印数字所需的时间,你可以试试这个timeit模块:


import timeit


def f1(stop_number):

    num_counter = 0


    print('Numbers:')

    while num_counter < stop_number:

        print(num_counter, end=' ', flush=True)

        num_counter += 1

    print()


if __name__ == '__main__':

    stop_number = int(input("NUMBER: "))


    t = timeit.timeit(

        stmt='f1({})'.format(stop_number),

        setup='from __main__ import f1',

        number=1000)

    print()

    print('The statement took in average {} seconds to run.'.format(t))

或者,如果需要,您还可以使用time.perf_counter()以下方法测量时差:


import time


stop_number = int(input("NUMBER: "))


start_time = time.perf_counter()


num_counter = 0

while num_counter < stop_number:

    print(num_counter)

    num_counter += 1


end_time = time.perf_counter()

print('The code took {} seconds to run.'.format(end_time - start_time))

注意打印输出消耗大量时间;只是没有打印的迭代将花费更少的时间。


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号