Python基础题型实战02-排队进行核酸检测

简介: 只有当你下定决心改变,才会有接下来的改变。学会慢慢地稳定情绪,保持住自己的节奏,一起好好的生活,努力去追求更加美好的事物。

需求

第二题需求.jpg

实战

思路流程图绘制

2流程图.jpg

代码原理实现

import time
import queue
import threading

def worker(i):
    global numbers_1,numbers_2
    numbers_1 = 0
    numbers_2 = 0
    while True:
        item = q.get()
        try:
            # 偶数
            if (item % 2) == 0:
                # time.sleep(2)
                if (numbers_1 % 2)==0:
                    print("小红医生(代号%s)将一个群众<%s>检测完了!" % (i, item))
                    # 做完后发出任务完成信号,然后继续下一个任务
                    q.task_done()
                else:
                    time.sleep(2.5)
                    q.task_done()
                numbers_1 += 1
            else:
                # 奇数
                # 小明是小红的2倍
                print("小明医生(代号%s)将一个群众<%s>检测完了!" % (i, item))
                numbers_2 += 1
                # 做完后发出任务完成信号,然后继续下一个任务
                q.task_done()

        except TypeError:
            print("今天没有群众需要检测了;医生(代号%s),可以休息了。" % i)
            if i==1:
                print('医生(代号%s)今天完成了的群众数量为:%s'% (i, numbers_1))
            elif i==2:
                print('医生(代号%s)今天完成了的群众数量为:'% i, numbers_2)
            # 做完后发出任务完成信号,然后继续下一个任务
            q.task_done()
            break



if __name__ == '__main__':
    num_of_threads = 2
    # 模拟核酸检测群众
    source = [i for i in range(1, 30)]

    # 创建一个FIFO队列对象,不设置上限
    q = queue.Queue()
    # 创建一个线程池
    threads = []
    # 创建指定个数的工作线程,并讲他们放到线程池threads中
    for i in range(1, num_of_threads+1):
        t = threading.Thread(target=worker, args=(i,))
        threads.append(t)
        t.start()

    # 将任务源里的任务逐个放入队列
    for item in source:
        # 每隔0.5秒准备下一个要检测的群众
        time.sleep(0.5)
        q.put(item)

    # 阻塞队列直到队列里的任务都完成了
    q.join()
    print("-----统计小红医生、小明医生工作完成的情况-----")
    # 停止线程
    for i in range(num_of_threads):
        q.put(None)
    for t in threads:
        t.join()

如果学习上有遇到问题,加/:yiyi990805(备注:阿里云tony)即可。

在这个浮躁的时代;竟然还有人能坚持篇篇原创;

如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。

支持原创。感谢!

相关文章
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
28天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
46 10
|
2月前
|
算法 Unix 数据库
Python编程入门:从基础到实战
本篇文章将带你进入Python编程的奇妙世界。我们将从最基础的概念开始,逐步深入,最后通过一个实际的项目案例,让你真正体验到Python编程的乐趣和实用性。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。让我们一起探索Python的世界吧!
|
2月前
|
并行计算 调度 开发者
探索Python中的异步编程:从基础到实战
在Python的世界里,异步编程是一种让程序运行更加高效、响应更快的技术。本文不仅会介绍异步编程的基本概念和原理,还将通过具体代码示例展示如何在Python中实现异步操作。无论你是初学者还是有经验的开发者,都能从中获益,了解如何运用这一技术优化你的项目。
|
2月前
|
数据处理 Python
探索Python中的异步编程:从基础到实战
在Python的世界中,“速度”不仅是赛车手的追求。本文将带你领略Python异步编程的魅力,从原理到实践,我们不单单是看代码,更通过实例感受它的威力。你将学会如何用更少的服务器资源做更多的事,就像是在厨房里同时烹饪多道菜而不让任何一道烧焦。准备好了吗?让我们开始这场技术烹饪之旅。
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
2月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
65 0
|
28天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
16天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
149 59