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

news2024/10/6 8:33:19

💐作者: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()函数开始游戏。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google Chrome 任意文件读取 (CVE-2023-4357)漏洞

漏洞描述 该漏洞的存在是由于 Google Chrome 中用户提供的 XML 输入验证不足。远程攻击者可以创建特制网页&#xff0c;诱骗受害者访问该网页并获取用户系统上的敏感信息。远程攻击者可利用该漏洞通过构建的 HTML 页面绕过文件访问限制&#xff0c;导致chrome任意文件读取。Li…

Redis篇---第九篇

系列文章目录 文章目录 系列文章目录前言一、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?二、什么情况下可能会导致 Redis 阻塞?三、缓存和数据库谁先更新呢?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击…

90天,广告商单43张,小红书AI庭院风视频制作详解教程

今天给大家分享一个目前在小红书很火的AI绘画商单号案例。 首先给大家看看案例视频形态 这类视频内容非常简单&#xff0c;主要展示农家庭院的别致景色。通过AI绘画工具生成图片&#xff0c;再利用剪辑工具将画面增加动态元素&#xff0c;让整个视频逼真鲜活&#xff0c;加上…

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

今天在做练习题的时候,发现几个问题捣鼓了好久,写下这篇来记录 问题一: 有层级的复选框无法定位到二级目录 对于这种拥有二级框的选项无法定位,也不是<select>属性. 我们查看下HTML,发现它是被单独封装在body内拥有动态属性的独立<div>,当窗口点击的时候才会触发…

【算法设计实验三】动态规划解决01背包问题

请勿原模原样复制&#xff01; 01背包dp具体解释详见链接 ↓ 【算法5.1】背包问题 - 01背包 &#xff08;至多最大价值、至少最小价值&#xff09;_背包问题求最小价值_Roye_ack的博客-CSDN博客 关于如何求出最优物品选择方案&#xff1f; 先在递归求dp公式时&#xff0c;若…

【广州华锐互动】VR溺水预防教育:在虚拟世界中学会自救!

在现代社会中&#xff0c;水上安全和救援行动的重要性不言而喻。尤其在自然灾害、游泳事故或航海事故中&#xff0c;有效的救援行动可以挽救许多生命。然而&#xff0c;传统的救援训练往往存在成本高、风险大、效率低等问题。在这样的背景下&#xff0c;虚拟现实&#xff08;VR…

vue3的两个提示[Vue warn]: 关于组件渲染和函数外部使用

1. [Vue warn]: inject() can only be used inside setup() or functional components. 这个消息是提示我们&#xff0c;需要将引入的方法作为一个变量使用。以vue-store为例&#xff0c;如果我们按照如下的方式使用&#xff1a; import UseUserStore from ../../store/module…

如何把A3 pdf 文章打印成A4

1. 用Adobe Acrobat 打开pdf 2 打印 选择海报 进行调整即可如下图,见下面红色的部分。

2024测试工程师必学的Jmeter:利用jmeter插件收集性能测试结果汇总报告和聚合报告

利用jmeter插件收集性能测试结果 汇总报告&#xff08;Summary Report &#xff09; 用来收集性能测试过程中的请求以及事务各项指标。通过监听器--汇总报告 可以添加该元件。界面如下图所示 汇总报告界面介绍&#xff1a; 所有数据写入一个文件&#xff1a;保存测试结果到本地…

Jieba库——中文自然语言处理的利器

中文作为世界上最广泛使用的语言之一&#xff0c;其复杂的结构和丰富的表达方式给中文文本处理带来了挑战。为了解决这些问题&#xff0c;Python开发者开发了一系列用于处理中文文本的工具和库&#xff0c;其中最受欢迎和广泛应用的就是Jieba库。Jieba是一个开源的中文分词工具…

设计模式—命令模式

1.什么是命令模式&#xff1f; 命令模式是一种行为型设计模式&#xff0c;核心是将每种请求或操作封装为一个独立的对象&#xff0c;从而可以集中管理这些请求或操作&#xff0c;比如将请求队列化依次执行、或者对操作进行记录和撤销。 命令模式通过将请求的发送者&#xff0…

京东数据分析软件(京东平台数据分析):2023年Q3扫地机器人行业消费报告

随着90后、00后逐渐成为消费主力军&#xff0c;他们对生活品质更加关注、健康意识进一步增强&#xff0c;再加上“懒人经济”的盛行&#xff0c;人们对扫地机器人的使用率和关注热情也不断增长。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份-9月份&#xf…

软件测评中心进行安全测试有哪些流程?安全测试报告如何收费?

在当今数字化时代&#xff0c;软件安全测试是每个软件开发团队都不能忽视的重要环节。安全测试是指对软件产品进行系统、全面的安全性评测与检测的过程。它旨在发现并修复软件中存在的漏洞和安全隐患&#xff0c;以确保软件能够在使用过程中保护用户的数据和隐私不被非法访问和…

ML-Net:通过深度学习彻底改变多标签分类

一、说明 多标签分类是一项具有挑战性的机器学习任务&#xff0c;其中输入可以同时属于多个类。传统的多标签分类方法通常依赖于将问题转化为一系列二元分类任务或使用集成方法。然而&#xff0c;深度学习的出现开创了多标签分类的新时代&#xff0c;ML-Net 等模型突破了该领域…

Linux系统编程 系统编程概念

1.系统调用 系统调用&#xff08;system call&#xff09;其实是 Linux 内核提供给应用层的应用编程接口&#xff08;API&#xff09;&#xff0c;是 Linux 应用层进入内核的入口。不止 Linux 系统&#xff0c;所有的操作系统都会向应用层提供系统调用&#xff0c;应用程序通过…

(论文阅读51-57)图像描述3 53

51.文献阅读笔记&#xff08;KNN&#xff09; 简介 题目 Exploring Nearest Neighbor Approaches for Image Captioning 作者 Jacob Devlin, Saurabh Gupta, Ross Girshick, Margaret Mitchell, C. Lawrence Zitnick, arXiv:1505.04467 原文链接 http://arxiv.org/pdf/1…

PHP中isset() empty() is_null()的区别

在PHP中&#xff0c;isset()、empty()和is_null()是用于检查变量状态的三个不同的函数。它们分别用于检查变量是否已设置、是否为空以及是否为null。在本文中&#xff0c;我们将详细解释这三个函数的用法、区别和适当的使用场景。 isset(): isset()函数用于检查一个变量是否已…

SystemV

一、共享内存 1、直接原理 进程间通信的本质是&#xff1a;先让不同的进程&#xff0c;看到同一份资源&#xff01;&#xff01; 我们要把这句话奉若圭臬一般 到了共享内存了支持双向通信能读也能写&#xff0c;但是一般都是一个读一个写 要想通信先看到同一个份资源&#xff0…

Spring-IOC-FactoryBean机制(难点且重点)

1、第一个案例 1.1、Book.java package com.atguigu.ioc; import lombok.Data; Data public class Book {private String bid;private String bname; }1.2、Book2.java package com.atguigu.ioc; import lombok.Data; Data public class Book2 extends Book {private String co…

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

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