结合两个Python小游戏,带你复习while循环、if判断、函数等知识点

💐作者:insist--

💐个人主页:insist-- 的个人主页

理想主义的花,最终会盛开在浪漫主义的土壤里,我们的热情永远不会熄灭,在现实平凡中,我们终将上岸,阳光万里

❤️欢迎点赞👍收藏📁评论📒

目录

一、两个小游戏

1. 猜数字游戏

代码如下:

代码逻辑:

2. 石头剪刀布

代码如下:

代码逻辑:

二、代码中用到的知识点

1. 猜数字游戏

2. 石头剪刀布


前言

Python是一种高级编程语言,它具有简单易学、代码可读性高、应用广泛等优点。它支持面向过程、面向对象和函数式编程等多种编程范式,并且具有丰富的第三方库和模块支持,可以用来开发各种应用程序。

58338b2094784ca88958a49eb4f71261.png

一、两个小游戏

1. 猜数字游戏

这个游戏会随机生成一个1到100之间的数字,然后让玩家尝试猜测这个数字。每次猜测后,程序会告诉玩家猜的数字是过大还是过小,直到玩家猜中为止。

代码如下:

# 导入random模块
import random
# 定义一个名为guess_number的函数
def guess_number():
    # 使用random.randint(1, 100)函数生成一个介于1和100之间的随机整数,并将其赋值给变量number
    number = random.randint(1, 100)
    # 进入无限循环(玩家可以无限制的猜测,直到猜测正确)
    while True:
        # 使用input函数提示玩家输入猜测的数字,并将其转换为整数类型后赋值给变量guess
        guess = int(input("请输入你猜的数字:"))
        # 如果玩家猜测的数字小于生成的随机数,打印“你猜小了!”
        if guess < number:
            print("你猜小了!")
        # 如果玩家猜测的数字大于生成的随机数,打印“你猜大了!”
        elif guess > number:
            print("你猜大了!")
        # 如果玩家猜测的数字等于生成的随机数,打印“恭喜你,猜对了!”并使用break语句跳出循环
        else:
            print("恭喜你,猜对了!")
            break
# 调用guess_number函数,开始游戏
guess_number()

代码逻辑:

在这个游戏中,我们使用了Python的random模块来生成一个随机数。然后,我们使用了一个无限循环来等待玩家的输入,并根据玩家的猜测给予提示。当玩家猜中数字后,我们跳出循环并结束游戏。

2. 石头剪刀布

这个游戏中,电脑会随机选择一种手势(石头、剪刀或布),然后让玩家选择一种手势进行比赛。程序会根据玩家选择的手势和随机生成的手势进行比较,判断胜负并输出结果。

代码如下:

# 定义一个名为rock_paper_scissors的函数
def rock_paper_scissors():
    # 定义一个列表,用于存储电脑的选择
    computer_choice = ["石头", "剪刀", "布"]
    # 提示玩家输入选择
    player_choice = input("请选择(石头、剪刀或布):")
    # 判断玩家输入的选择是否在电脑的选择列表中,如果不在,提示无效并重新调用函数
    if player_choice not in computer_choice:
        print("无效的选择,请重新输入!")
        return rock_paper_scissors()
    # 判断玩家选择和电脑选择的顺序,首先判断是否为石头对石头,如果是则判定为平局
    if player_choice == computer_choice[0]:
        print("平局!")
    # 如果玩家选择剪刀,而电脑选择石头,那么玩家输了
    elif player_choice == computer_choice[1]:
        print("你输了!")
    # 如果玩家选择了布,那么玩家赢了
    else:
        print("你赢了!")
# 调用函数开始游戏
rock_paper_scissors()

代码逻辑:

在这个游戏中,我们定义了一个列表来存储可能的手势。然后,我们使用了一个简单的if语句来比较玩家选择的手势和随机生成的手势,并根据比较结果输出胜负。如果玩家输入了无效的选择,我们会提示他们重新输入。

二、代码中用到的知识点

1. 猜数字游戏

  • 模块导入:通过import random导入了Python的random模块,用于生成随机数。
  • 函数定义:定义了一个名为guess_number的函数,用于实现猜数字游戏的主要逻辑。
  • 随机数生成:使用random.randint(1, 100)生成一个介于1和100之间的随机整数,作为玩家需要猜测的数字。
  • 循环语句:使用while True实现了一个无限循环,直到玩家猜对数字才会退出。
  • 输入/输出函数:使用input函数提示玩家输入他们的猜测,并使用int函数将输入的字符串转换为整数;使用print函数输出提示信息,如“请输入你猜的数字:”和游戏结果。
  • 条件语句:通过if-elif-else语句根据玩家猜测的数字与生成的随机数进行比较,输出相应的提示信息。
  • 变量赋值:在循环中,使用变量guess存储玩家的猜测。

2. 石头剪刀布

  • 函数定义/调用:代码中定义了一个名为rock_paper_scissors的函数,该函数用于实现游戏的主要逻辑;在代码的最后,通过调用rock_paper_scissors()函数开始游戏。
  • 列表:在函数内部,定义了一个包含电脑可能的选择的列表computer_choice。
  • 输入/输出函数:使用input函数提示玩家输入他们的选择,并将输入作为字符串赋值给player_choice变量;使用print函数输出游戏结果,如"平局!","你输了!",或"你赢了!"。
  • 条件判断:通过一系列的条件判断,如if player_choice not in computer_choice,来确定玩家输入的选择是否在电脑的选择列表中。
  • 递归:如果玩家输入的选择不在电脑的选择列表中,函数会通过递归调用自身来重新提示玩家输入。
  • 循环和条件语句:在函数内部,通过条件语句和循环语句来实现游戏的逻辑判断和结果输出。
  • 函数调用:在代码的最后,通过调用rock_paper_scissors()函数开始游戏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/172784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文概括AxureRP的优缺点和替代软件

AxureRP是目前流行的设计精美的用户界面和交互软件。AxureRP根据其应用领域提供了一组丰富的UI控制。 Axure是什么软件&#xff1f; Axure是目前流行的设计精美的用户界面和交互软件。Axure已经存在了近十年&#xff0c;让UX设计师轻松了解创建软件原型的细节。作为一种原型设…

nvm管理node版本过程记录

写在前面 今天记录一下windows电脑安装nvm同时使用nvm管理node版本的&#xff0c;为什么写windows版本的呢&#xff1f;因为mac版本的基本上是不需要进行记录的&#xff0c;相对windows的安装是简单很多的&#xff0c;行了废话不多说&#xff0c;我们直接开始 安装nvm nvm下载…

如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下&#xff0c;企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS&#xff08;Cloud Object Storage&#xff09;桶中的数据到华为云OBS&#xff08;Object Storage Service&#xff09;。先决条件是您已经…

Vue Router的使用

Vue.js是一个流行的JavaScript框架&#xff0c;用于开发单页面应用程序。Vue提供了一个强大的路由系统&#xff0c;可以帮助我们管理应用程序中的不同页面。在本文中&#xff0c;我们将详细讲解Vue路由的使用方法。 目录 1. 安装Vue Router2. 创建路由实例3. 配置路由4. 在模板…

六、流量监管、流量整形

流量监管、流量整形 流量监管、流量整形1.1.定义1.2.简单流分类应用场景举例1.3.简单流分类的配置1.4.复杂流分类1.5.复杂流分类在产品中的实现 ————————————————— 流量监管、流量整形 当报文的发送速率大于接收速率&#xff0c;或者下游设备的接口速率小于…

gitlab 实战

一.安装依赖 yum install -y curl policycoreutils-python openssh-server perl 二.安装gitlab yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm 三.修改下面的 vim /etc/gitlab/gitlab.rbexternal_url http://192.168.249.156 四.初始化 gitlab-ctl reconfigure 五.查看状…

SwiftUI 如何动态开始和停止播放永久重复(repeatForever)动画

0. 功能需求 在 SwiftUI 丰富多彩的动画世界中,我们有时希望可以随意开始和停止永久循环(repeatForever)的动画,不过这时往往会产生错误的动画“叠加”效果。 从上图可以看到:虽然我们希望密码输入框背景只在用户输入密码时才发生闪烁,但顶部的密码输入框随着不断输入其…

第一次参加算法比赛是什么感受?

大家好&#xff0c;我是怒码少年小码。 冬日暖阳&#xff0c;好日常在。今天中午在食堂干饭的时候&#xff0c;我的手机&#x1f4f1;收到了一条收货信息。 阿&#xff1f;什么玩意儿&#xff1f;我又买啥了&#xff1f; 个败家玩意&#xff0c;我都准备好叨叨我自己&#x…

【数值计算方法】矩阵特征值与特征向量的计算(一):Jacobi 旋转法及其Python实现

文章目录 一、Jacobi 旋转法1. 基本思想2. 计算过程演示3. 注意事项 二、Python实现迭代过程&#xff08;调试&#xff09; 矩阵的特征值&#xff08;eigenvalue&#xff09;和特征向量&#xff08;eigenvector&#xff09;在很多应用中都具有重要的数学和物理意义。Jacobi 旋转…

electron使用electron-builder macOS windows 打包 签名 更新 上架

0. 前言 0.1 项目工程 看清目录结构&#xff0c;以便您阅读后续内容 0.2 参考资料 &#xff08;1&#xff09;macOS开发 证书等配置/打包后导出及上架 https://www.jianshu.com/p/c9c71f2f6eac首先需要为Mac App创建App ID&#xff1a; 填写信息如下—Description为"P…

十七、SpringAMQP

目录 一、SpringAMQP的介绍&#xff1a; 二、利用SpringAMQP实现HelloWorld中的基础消息队列功能 1、因为publisher和consumer服务都需要amqp依赖&#xff0c;因此这里把依赖直接放到父工程mq-demo中 2、编写yml文件 3、编写测试类&#xff0c;并进行测试 三、在consumer…

申银万国期货通过ZStack Cube信创超融合一体机打造金融信创平台

信创是数字中国建设的重要组成部分&#xff0c;也是数字经济发展的关键推动力量。作为云基础软件企业&#xff0c;云轴科技ZStack产品矩阵全面覆盖数据中心云基础设施&#xff0c;ZStack信创云首批通过可信云《一云多芯IaaS平台能力要求》先进级&#xff0c;是其中唯一兼容四种…

音视频开发是不是C++开发中最难的细分方向?

音视频开发是不是C开发中最难的细分方向&#xff1f; 是不是最难不敢说(毕竟数据库、Office、 大型游戏可能更难)&#xff0c;但确实也已经很难 了。至少对我 这种主要搞web前端的人来说&#xff0c;真的有那种力不从心的感觉。最近很多小伙伴找我&#xff0c;说想要一些音视频…

【微服务】SaaS云智慧工地管理平台源码

智慧工地系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段&#xff0c;实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 一、智慧工地让工程施工智能化 1、内容全面&#xff0c;多维度数…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大难点分析

数字化时代银行网点厅堂营销存在以下5大难点&#xff1a; 1、识别难。识别有效的客户比较难&#xff0c;传统的厅堂识别主要依据客户的衣着气质等主管感受&#xff0c;判断客户是否为潜在中高端客户&#xff0c;提供相关服务。大堂经理主管识别与智能化系统识别相结合&#xf…

5年经验之谈 —— 性能测试如何定位分析性能瓶颈?

你好&#xff0c;我是小牛&#xff0c;目前在一家准一线互联网大厂做测试开发工程师。 对于一般公司普通测试工程师来说&#xff0c;可能性能测试做的并不是很复杂&#xff0c;可能只是编写下脚本&#xff0c;做个压测&#xff0c;然后输出报告结果&#xff0c;瓶颈分析和调优…

经典双指针算法试题(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、移动零1、题目讲解2、讲解算法原理3、代码实现 二、复写零1、题目讲解2、讲解算法原理3、…

湖科大计网:应用层

一、应用层概述 交互&#xff0c;实现特定问题&#xff01; 二、客户与服务器模型 一、C/S 客户/服务器方式 服务与被服务的关系。 二、P2P方式 对等方式 P2P方式是对等的&#xff0c;没有固定的服务器。 三、DNS域名系统 DNS&#xff08;Domain Name System&#xff09; 一、域…

Linux驱动之设备树

1、 Linux设备树的由来 1、1 为什么会有设备树 在Linux 2.6中&#xff0c;arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码&#xff0c;相当多数的代码只是在描述板级细节&#xff0c;而这些板级细节对于内核来讲&#xff0c;不过是垃圾&#xff0c;如板上的plat…