前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础Python实战(二),20行写个剪刀石头布游戏

零基础Python实战(二),20行写个剪刀石头布游戏

作者头像
TechFlow-承志
发布2021-01-25 14:55:45
8620
发布2021-01-25 14:55:45
举报
文章被收录于专栏:TechFlow

大家好,欢迎来到Python实战专题。

没想到大家对于实战类的热情很高,已经有好几个小伙伴催更了。所以马不停蹄地写了这篇,我们继续来带大家用Python做一些简单的项目,带领大家实际练习,最终熟练掌握这门语言。

课题

今天的课题非常简单,我们一样来写一个小游戏,这个小游戏大家都会玩,就是著名的剪刀石头布的游戏。

这个游戏的英文叫做rock paper and scissors,规则也不用我说了,大家想必都非常熟悉。最终运行的结果是这样的:

也就是说我们输入r表示石头,p表示布,s表示剪刀。电脑会随机出一个,然后根据我们和电脑的选项判定输赢,输出最终的结果。

知识点

剪刀石头布和上次的猜数游戏差别不大,都是很简单的游戏,代码层面的难点并不多。关于输入输出以及if-else这些基础的语法上一期已经讲过了, 这里我们就不多赘述了。主要挑一些大家不太熟悉可能不太了解的内容聊聊。

随机数

首先是随机数,Python原生就有随机数的功能,不过并不是一个系统函数,而是需要引入random包。

Python当中的引包非常简单,使用import加上包的名字或者路径即可。比如我们要引入的随机数包叫做random,我们直接import进来即可。

代码语言:javascript
复制
import random

random这个包当中的方法很多,可以说是应有尽有,基本上我们日常关于随机的需求都能实现。既可以随机一个整数,也可以随机一个小数,还可以随机采样,也可以随机乱序。

在今天的问题当中,我们需要的是随机采样,也就是从石头、剪刀和布当中随机抽取一个。我们使用random.choice这个方法来实现,一行即可。

代码语言:javascript
复制
computer = random.choice(['r', 'p', 's'])

说到随机数就必须要提到随机数种子,我们在之前讲解随机数原理的文章当中曾经详细介绍过。现在的随机数其实都是伪随机数,是根据某种算法算出来的,其实是围绕随机数种子遵守某一个分布的,并不是真正意义上的随机。如果大家不停地运行,会发现输出的结果是有规律的。为了解决这个问题,我们常规的方法是用当前的时间作为随机数种子,这样就可以尽量消除输出结果的规律性。

代码语言:javascript
复制
import time
random.seed(time.time())

由于我们需要用到时间相关的函数,所以需要在一开始import time这个包。

函数

在今天的内容当中,我们将会用到函数。

Python中的函数非常非常简单,它几乎没有限制,我们可以用函数来实现一切我们想要做的事情。限制少的好处是学起来容易,不需要记住各种各样的条件,但是缺点是非常灵活,易学难精,很多高级用法学不会或者说接触不到。这里呢我们只需要用到最简单的函数的写法,大概是下面这个样子。

代码语言:javascript
复制
def func(input1, input2):
    pass

def表示我们创建的是一个函数,后面跟上函数名,然后在函数名后面是括号括起来的参数。这里我们也不用管什么必选参数和默认参数了,统统当成是必选参数,然后我们在函数体下面实现我们想要的功能。

Python是非常灵活的,我们可以在函数当中返回任何东西,也可以什么都不返回,甚至可以不同的条件返回的结果个数和类别都不同

三元表达式

最后介绍一下Python当中的三元表达式,三元表达式是一个可选项,也就是说你可以一辈子不用三元表达式,这并不会带来任何影响。因为三元表达式的本质就是if-else的语句,只是三元表达式相比较来说更加简易,写代码的时候使用会比较顺手。

Python中的三元表达式相比于C++我个人感觉更好理解一些,虽然写起来稍微复杂了一点点,但是对新手来说还是比较友好的。比如我们要根据某一个条件判断一个变量的值是0还是1,我们可以写成这样:

代码语言:javascript
复制
param = 1 if xxx else 0

三元表达式也可以嵌套,比如两个if else嵌套在一起,但是这样会导致代码的可读性很差,不建议这么干。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 课题
  • 知识点
    • 随机数
      • 函数
        • 三元表达式
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档