前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教自己学Python(三)练手小游戏:不

教自己学Python(三)练手小游戏:不

作者头像
py3study
发布2020-01-13 14:38:49
6130
发布2020-01-13 14:38:49
举报
文章被收录于专栏:python3

不要猜中的小游戏

背景

和朋友闲待着两个人无聊,都想吃苹果又都不想洗,想起玩过的一个酒桌上猜数字的游戏,然后在手机上写了出来,三局两胜输了去洗苹果……

游戏介绍

零到99(包括边界),随机一个数两人(N人也可以)轮流猜测,如果没猜中,新的数将做为边界,一步步缩小可以猜测的范围,直到猜中为止,比如随机数是“32”,屏幕首先打印出:

当前范围是: 0 --- 100

第一次猜:50,屏幕返回

当前范围是: 0 --- 50

第二次猜:25,屏幕返回

当前范围是: 25 --- 50

第N次猜中:32,屏幕返回,并结束循环

^_^

准备工作

此前我们的代码都是在交互环境中完成的,是时候来点不一样的了。在学前班里我们介绍了一些文本编辑器,现在召唤一个你喜欢的,然后开始编写吧。

多行的Python代码稍微有些不同,下面的代码可以当做是一个参考。良好的代码编写应该是有缩进的,这样方面人类阅读和理解,Python解释器对缩进的要求是严格的,也就是说你必须进行缩进,缩进量通常为’2个空格或者4个空格’,注意不要用’Tab’和4个空格混用,因为不同编辑器可能会对’Tab’的缩进理解不同。

那么问题来了,什么时候需要缩进呢?大概像下图中的缩进一样:

缩进演示
缩进演示

缩进描述的是属于关系,每有一层属于关系就需要缩进一次。

写好了程序后,比如存为abc.py, 在windows中进入相行目录,比如C盘下的py_ex,在Windows的命令行中输入:

代码语言:javascript
复制
C:\>python c:\py_ex\abc.py

或者

代码语言:javascript
复制
cd c:\py_ex\abc.py
C:\py_ex\>python abc.py

在Linux或OSX的终端中输入python + 文件路径,比如要运行家目录内py_ex中的abc.py文件:

代码语言:javascript
复制
$ python ~/py_ex/abc.py

代码(Python3)

下面的代码是Python3的,如果是Python2你还需要在import之前再加入一行# -*- coding: utf-8 -*-,来确保代码内的中文字符可以运行。

代码语言:javascript
复制
import random

rand_num = random.randint(0, 99)
left = 0
right = 99
while True:
    print('当前范围是:', left, '---', right)
    test = int(input('再猜一下\n'))
    if test == rand_num:
        print('^_^')
        break
    if test > rand_num:
        right = test
    else:
        left = test

代码注解

第一行我们先引入了一个可以产生随机数的包,这里我们需要的是整数所以使用random.randint()方法,这个方法接收两个参数做为左右边界,返回一个包含边界的随机整数。

第六行,一个永恒循环来接收N次猜数,如果猜中break跳出循环。

第八行的input是一个内建函数用来接收输入信息,默认接收到的输入会是str类型,我们对其进行了强制类型转换,这里不严谨,没有进行严格的输入验证。

如果有疑问

有疑问是正常的,因为像ifwhile这样的控制语句我们之前并没有提过,但是没关系,即使没有提到过,你也一样看得懂,不是吗? 这里看明白就好,后续的章节我们会详细介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不要猜中的小游戏
    • 背景
      • 游戏介绍
        • 准备工作
          • 代码(Python3)
            • 代码注解
              • 如果有疑问
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档