python编程练习---队列的实现

本文介绍了一个简单的Python程序,该程序使用列表来模拟队列的先进先出(FIFO)特性。通过不断的输入数据到队列中,并在完成输入后依次输出队列中的元素,演示了队列的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


利用python实现队列先进先出的功能

代码:

queue=[]
while 1:
    a=input("pleasse input something to queue,input 0 to break")
    if int(a)==0:
        break
    queue.append(a)
    
print("output the queue")
while len(queue):
    print(queue.pop(0))


运行截图:



### Python 队列编程实训 #### 使用 `collections.deque` 进行队列操作 在 Python 中,可以利用 `collections.deque` 来实现高效的队列操作。以下是一个基于队列的简单编程练习: 编写一个程序模拟 CPU 和内存使用率的变化情况。具体要求如下: - 创建两个双端队列分别存储最近 10 次的 CPU 占用率和内存占用率。 - 编写一个函数定期获取当前系统的 CPU 和内存占用率,并将其加入到对应的队列中。 -队列长度超过 10 时,自动移除最早的数据。 以下是完整的代码示例[^2]: ```python import psutil from collections import deque import numpy as np def update_cpu_ram_usage(cpu_deque, ram_deque): """ 更新 CPU 和 RAM 的使用率 """ cpu_deque.popleft() cpu_deque.append(psutil.cpu_percent(interval=1)) ram_deque.popleft() ram_deque.append(psutil.virtual_memory().percent) cpu = deque(np.zeros(10), maxlen=10) # 初始化 CPU 双端队列 ram = deque(np.zeros(10), maxlen=10) # 初始化 RAM 双端队列 for _ in range(3): # 执行三次更新 update_cpu_ram_usage(cpu, ram) print("CPU Usage:", list(cpu)) # 输出 CPU 数据 print("RAM Usage:", list(ram)) # 输出 RAM 数据 ``` --- #### 文件读取中的队列应用 另一个常见的队列应用场景是对文件内容进行处理。假设有一个名为 `test.txt` 的文件,其内容为随机单词组成的多行文本。目标是从该文件中提取每行的内容并按顺序存入队列中,最后打印出队列的结果[^3]。 以下是具体的代码实现: ```python from collections import deque # 初始化队列 queue = deque() # 读取文件并将每一行压入队列 with open('test.txt', 'r') as file: for line in file: queue.append(line.strip()) # 将队列内容逐个弹出并打印 while queue: print(queue.popleft()) ``` 此代码片段展示了如何通过队列管理文件中的数据流。 --- #### 生产者消费者模型 生产者消费者问是经典的并发问之一,在 Python 中可以通过队列解决。下面的例子演示了一个简单的单线程版本的生产者消费者模式[^1]: - **生产者**负责向队列中添加数据; - **消费者**从队列中取出数据并处理。 代码如下: ```python from collections import deque import time class ProducerConsumerQueue: def __init__(self, size): self.queue = deque(maxlen=size) def produce(self, item): """ 向队列中添加项目 """ if len(self.queue) >= self.queue.maxlen: print(f"警告:队列已满,丢弃 {item}") else: self.queue.append(item) print(f"生产:{item}") def consume(self): """ 从队列中消费项目 """ if not self.queue: print("警告:队列为空") return None item = self.queue.popleft() print(f"消费:{item}") return item if __name__ == "__main__": pc_queue = ProducerConsumerQueue(size=5) for i in range(7): pc_queue.produce(i) time.sleep(0.5) while True: consumed_item = pc_queue.consume() if consumed_item is None: break time.sleep(1) ``` 上述代码实现了基本的生产者消费者逻辑,其中涉及到了队列的核心功能——先进先出 (FIFO)。 --- ### 总结 以上提供了三个不同场景下的队列编程训练目,涵盖了系统监控、文件处理以及经典算法设计等内容。这些例子可以帮助初学者更好地理解队列的实际用途及其在 Python 中的应用方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值