百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

玩游戏也能学会编程:Python字典_python打字游戏代码

liuian 2025-02-19 12:55 12 浏览

Python中的字典

你以为是这个字典?

当然不是,Python中的字典是一个存储很多值的集合。

你以为是这个游戏?


好了言归正传,Python中的字典是用来做什么的?

想要解释这个问题,还真的需要大家回忆一下现实生活中的字典,我们日常用字典做什么?

当然是查单词,查词语!

那么我们翻开字典,我们翻开字典可以看到一个它的形式大概是这样的:

简单分解一下就是 {单词:释义,单词:释义}

没错,这就是Python中字典的形式。

不过有一点点的不同,就是在Python中字典的元素需要用引号括起来,所以如果我们想要在Python中表示出这两个单词的意思,那它应该是这样:

{"financial":"财政的","financier":"金融家"}

{}代表一个字典元素,其中的内容就是字典的值,我们也可以看出这个字典中的英文和中文意思是一一对应的,就像"Financial"对应的就是"财政的"这么个意思,那么这其中的financial就是一个,"财政的"就是一个值,他们合起来,叫做键值对

这其实不难理解,我们翻字典的时候肯定是先找到它的原文才能找到它的中文意思,根据键寻找值就是字典的使用方法。

如果这样解释不够清晰的话,我们可以看一个简单的例子

我创建了一个字典,其中包含了我们前面看到的数据,然后我把它赋给了一个变量,最后把这个包含了字典的变量输出出来。

可以看到它把所有的键值对都输出了,这是因为我们没有给他指定一个范围,也就相当于我们去查字典,但是却不知道要查哪个单词一样。

现在我想起来了,我想查financial这个单词的中文意思,我怎么从这个字典中获取到我想要的内容?

答案是将字典的提供给字典,这样知道了要查什么,自然能准确找到它所代表的值。


有的时候字典中的数据会更复杂,比如你今天计划和小伙伴们吃火锅,但是你只有一个锅,你需要二狗带1个锅底和3颗白菜,需要富贵带2盒肥牛和4瓶饮料,需要铁柱带5包丸子,那么这个数据就应该这样定义

可以看到我们字典的值发生了一些变化,从熟悉的{}符号可以看出这个字典里好像又包含了三个字典。

这就是Python字典的特性,它允许在字典中包含其他字典,当然想要查询更具体的数据就需要改变一下查询的格式。

就像上面的那个例子,我们想知道二狗拿了几颗白菜,首先需要定位到'ergou',然后通过二狗所代表的值这个字典中再定位到'白菜'这个键的值,也就是3.


以上就是Python中字典的定义、格式以及查询方式,接下来我们写一个简单的小游戏来学习字典的另一个特性。


Python实例

大家应该都玩过五子棋,棋盘上将五个同色字连成一条线即胜利,井字棋规则和它差不多,但是比起五子棋要简单一点。

两名玩家,分别使用O和X,第一个将自己的符号连接起来的即胜利。


我们首先给它分区域命名一下

这样一共九个区域都有了各自的名字,我们用字典给把它表示出来

注意这里theBoard这个字典中的所有值都是有内容的,那就是一个空格。


这样好像看不太出来这个棋盘的样子,因为没有代表框架的符号。定义一个函数将棋盘画出来

这个时候我们的棋盘默认输出是这样:

是不是有那味了?

既然是个小游戏,那么肯定是需要用户操作的,而且几行代码的东西也别想和小伙伴联机了,只能一个人下完X下O。

所以我们需要定义出先下的棋子,用一个变量保存

这个游戏很简单,不管你怎么下,都只有九次机会,因此这里用for循环9次.

注意下面的语句就涉及到另一个字典的知识点:字典中的值是可以变动的。

游戏开始时首先输出一下棋盘的状态,然后询问O或X这次要把棋子落到哪个格子里;接着用户输入棋子方位,程序再将此时的X或O棋子落到玩家指定的地方;最后再判断一下此时的棋子是不是X,如果是则将turn代表的棋子改为O,反之一样。

这样解释起来还是有点拗口,我们实际运行一下这个程序看看

执行九次结束


这样,通过不断通过键修改字典中的值就完成了这个程序,但是这还只是个半成品,因为程序还不能判断什么时候玩家获胜,不过本文只是借助这个过程帮助大家理解字典的使用和修改,所以不再深入。

今天的内容就是这样,欢迎关注转发收藏

芝士永不眠,我们下期再见。

相关推荐

Docker 47 个常见故障的原因和解决方法

【作者】曹如熙,具有超过十年的互联网运维及五年以上团队管理经验,多年容器云的运维,尤其在Docker和kubernetes领域非常精通。Docker是一种相对使用较简单的容器,我们可以通过以下几种方式...

电脑30个快问快答,解决常见电脑问题

1.强行关机/停电对电脑有影响吗?答:可能损坏硬盘(机械硬盘风险高)、未保存数据丢失,偶尔一次影响小,但频繁操作会缩短硬件寿命。2.C盘满影响速度吗?答:会!系统运行需C盘空间缓存临时数据,空间不...

使用Tcpdump包抓取分析数据包的详细用法

TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种...

电脑启动不了(BootDevice Not Found Hard Disk-3F0)解决方案

HP品牌机,开机启动不了,黑屏,开机取下主板电池恢复BIOS后,开机显示找不到启动盘。一、按F2键进入BIOS,出现硬盘内存检测界面的话,直接退出。就会出现这个界面,光标键向下,选择BIOSSetu...

电脑开机黑屏别慌!快码住!起底维修老师傅不能说的秘密

按下开机键却只收获黑屏大礼包?那些神秘的英文提示、刺耳的蜂鸣声,其实是电脑在给你发送求救信号!从按下电源到进入桌面的12秒里,你的电脑经历了史诗级的硬件自检与系统加载,今天我们就破译这段“摩斯电码”。...

电脑启动故障为何总要先看BIOS?新手必读的关键知识解析

最近在帮朋友们解答电脑无法正常开机的问题时,发现大家经常收到一句高频建议:“先检查BIOS”。对不少普通用户而言,BIOS依然是个神秘的存在。那么,BIOS到底是什么?电脑出现哪些故障会与它相关呢?本...

Windows 11 KB5053598更新:安全补丁还是系统噩梦?

2025年3月11日,微软发布了Windows1124H2的强制性更新KB5053598,作为“周二补丁日”(PatchTuesday)的一部分。然而,这款本应提升系统安全性的更新却引发了广泛的...

飞牛OS入门安装遇到问题,如何解决?

之前小编尝试了用旧电脑装飞牛OS安装之前特意查了一些硬件要求飞牛OS目前支持主流的x86架构硬件主机需能连网线飞牛OS暂时不支持只有无线网卡的安装貌似很多小伙伴在一开始安装就卡住了那今天咱们汇总分...

几种常见的电脑开机黑屏显示白色英文字母解决方法

当电脑开机出现黑屏并显示白色英文字母时,通常表示系统启动过程中遇到了错误。以下是几种常见原因及对应的解决方法,按照排查顺序整理:一、检查外接设备与硬件连接可能原因:外接U盘、移动硬盘等未拔出,或内部硬...

电脑启动出现问题,为什么都要先检查BIOS?

【ZOL中关村在线原创技巧应用】最近在回答问题的时候,总会发现很多朋友都在问“电脑无法正常开机怎么办?”这样类似的问题,而许多DIY大佬的回复总会出现一条高频建议“先检查BIOS”。但对于许多普通用户...

教你怎么用JavaScript检测当前浏览器是无头浏览器

什么是无头浏览器(headlessbrowser)?无头浏览器是指可以在图形界面情况下运行的浏览器。我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等。为什么叫“无头”浏览器?...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

运维的报表之路,用 node.js 轻松发送 grafana 报表

在运维过程中,无论是监控还是报表,都会有一些通过邮件发送图表的需求,由于开源的zabbix,grafana和kibana等并不完全具有“想发送哪儿就发送哪儿”的图片生成功能,在grafana...

C#基于浏览器内核的高级爬虫(c#爬取网页内容)

基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构、甚至可以移除不喜欢的CSS样式。很多网站都用Ajax动态加...

如何优化一个秒杀项目?(秒杀实现思路)

问题1:使用jmeter性能压测,定位瓶颈代码步骤流程:线程组--->Http请求--->查看结果树--->聚合报告tips:host的文件--->优先调用映射,减少DNS的时...