python--使用队列结构来模拟烫手山芋的游戏
基本功,磨起来。
# coding = utf-8
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
# 入队列,加在首部
def enqueue(self, item):
self.items.insert(0, item)
# 出队列,最后一个
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
def hot_potato(name_list, num):
sim_queue = Queue()
# 先建好队列
for name in name_list:
sim_queue.enqueue(name)
# 循环到队列里只有1人为止
while sim_queue.size() > 1:
# 进出队列到指定数量
for i in range(num):
sim_queue.enqueue(sim_queue.dequeue())
# 此时,出队列的,即为淘汰人员
del_name = sim_queue.dequeue()
print('delete name is : ', del_name)
return sim_queue.dequeue()
names = ['Amy', 'Tom', 'Mary', 'Jack', 'Andy', 'Leo']
number = 9
print(hot_potato(names, number))
输出:
C:\Users\Sahara\.virtualenvs\untitled\Scripts\python.exe D:/test/python_queue.py delete name is : Jack delete name is : Mary delete name is : Leo delete name is : Amy delete name is : Andy Tom Process finished with exit code 0
python--使用队列结构来模拟烫手山芋的游戏的更多相关文章
- python--使用队列结构来模拟共享打印机等候时间
按书里的样例抄的. 可以看到,将打印速度由第分钟5页提高到10页之后, 每个学生提交打印任务到打印完成的时间明显缩短. =========================== 在计算机科学实验室里考虑 ...
- python实现队列结构
# -*- coding:utf-8 -*- # __author__ :kusy # __content__:文件说明 # __date__:2018/10/8 13:49 class MyQueu ...
- 刚开始学python——数据结构——“自定义队列结构“
自定义队列结构 (学习队列后,自己的码) 主要功能:用列表模拟队列结构,考虑了入队,出队,判断队列是否为空,是否已满以及改变队列大小等基本操作. 下面是封装的一个类,把代码保存在myQueue.py ...
- python 操作mysql数据库之模拟购物系统登录及购物
python 操作mysql数据库之模拟购物系统登录及购物,功能包含普通用户.管理员登录,查看商品.购买商品.添加商品,用户充值等. mysql 数据库shop 表结构创建如下: create TAB ...
- Python之目录结构
Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...
- python与C结构体之间二进制数据转换
python与C结构体之间数据转换 前言 在实际应用中,可能会遇到直接和C进行二进制字节流协议通信,这时要把数据解包成python数据,如果可能,最好与C定义的结构体完全对应上. python中有2种 ...
- python消息队列snakemq使用总结
Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...
- python RabbitMQ队列使用(入门篇)
---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...
- 剑指Offer——Java实现栈和队列的互模拟操作
剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列 题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 思路:其实就是把队列正常入 ...
随机推荐
- python3-多装饰器的执行顺序
[例]: def dec1(func): print("HHHA:0====>") def one(): print("HHHA:0.1====>" ...
- Python-列表的常用操作
#先定义一个列表 names = ["ZhangXueyou","LiMing","GuoFucheng","LiuDehua&q ...
- python 之路,Day 1 python基础 之 课后随笔
首先是抱着被忽悠的心态,购买了老男孩的什么什么什么(你懂得!!),开始了一周一堂课时的听,然后就是做,自己的博客,首先附上整理的内容吧. 1day .... 一. Hell world 程序 在lin ...
- whistle工具全程入门
接触过前后端开发的同学应该都了解网络请求代理工具fiddler(mac下面常用的是Charles),可以用来拦截分析请求.包装请求.本地调试和移动端代理开发调试等.多多少少,fiddler和Charl ...
- c# partial 分部类和分部方法
一.partial 它是一个关键字修饰符.可以将类或结构.接口或方法的定义拆分到两个或更多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.修饰符不可用于委托或枚 ...
- libunistring-0.9.9
Introduction to libunistring Text files are nowadays usually encoded in Unicode, and may consist of ...
- java对图片进行透明化处理
package utils; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; ...
- win10:家庭版开启组策略
1.新建一个txt文件 2.复制以下内容到txt文件 @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Mi ...
- linux中shell变量$#,$@,$0,$1,$2的含义解释 (转载)
变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表 ...
- Linux系统基础优化及常用命令
Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和 ...