python简单练习案例-石头剪刀布小游戏

  •  🌈所属专栏:【python】

  •  ✨作者主页:  Mr.Zwq

  • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

目录

前言 

效果图

开始时,进行模式选择

一局定胜负模式

三局两胜模式

错误异常输入处理

代码实现

1.电脑出招函数

 2.玩家出招函数

 3.胜负判断函数

 4.执行函数

 5.代码完整展示


前言 

        本案例将会通过对python基本知识的应用来实现一个模拟石头剪刀布的小游戏,将使用到字典、列表类型数据、while、if循环判断、函数以及random模块的使用,可以通过实现这个小案例来巩固加深自身python的知识。

        代码模拟了石头、剪刀、布游戏的几个主要方面:玩家和电脑的出招,胜负的判断,以及游戏的流程控制。


效果图

开始时,进行模式选择

一局定胜负模式

三局两胜模式

错误异常输入处理


代码实现

1.电脑出招函数

# 模拟电脑随机出招
def computer():return random.choice(['石头','剪刀','布'])

 2.玩家出招函数

def player():# 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作dic = {'1': '石头', '2': '剪刀', '3': '布'}res=input('1-石头,2-剪刀,3-布\n请输入序号:')# 进行错误处理,规避无效出拳序号if res not in dic.keys():print(f'\n序号{res}错误!请重新输入正确的序号')return player()return dic[res]

 3.胜负判断函数

def judge(player,computer):if player == computer:return '平局'if player == '石头':if computer == '剪刀':return '玩家胜'else:return '电脑胜'elif player == '剪刀':if computer == '布':return '玩家胜'else:return '电脑胜'else:if computer == '石头':return '玩家胜'else:return '电脑胜'

 4.执行函数

# 循环,直到玩家进行退出操作
while True:print('操作选择'.center(20, '*'))res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')if res == '1':print('一局定胜负'.center(20, '*'))# 电脑输出computer_output = computer()# 玩家输出   player_output = player()# 结果输出print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')elif res == '2':print('三局两胜'.center(20, '*'))player_win = 0    # 记录玩家胜局次数computer_win = 0  # 记录电脑胜局次数while True:computer_output = computer()player_output = player()res = judge(player_output, computer_output)print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')if res == '玩家胜':player_win += 1elif res == '电脑胜':computer_win += 1# 三局两胜逻辑,谁先胜2局,就可以结束退出了if player_win >= 2 or computer_win >= 2:   print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')breakelif res == '3':breakelse:# 错误处理print(f'\n序号{res}错误!请重新输入序号')

 5.代码完整展示

import random# 模拟电脑随机出招
def computer():return random.choice(['石头', '剪刀', '布'])def player():# 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作dic = {'1': '石头', '2': '剪刀', '3': '布'}res = input('1-石头,2-剪刀,3-布\n请输入序号:')# 进行错误处理,规避无效出拳序号if res not in dic.keys():print(f'\n序号{res}错误!请重新输入正确的序号')return player()return dic[res]def judge(player, computer):if player == computer:return '平局'if player == '石头':if computer == '剪刀':return '玩家胜'else:return '电脑胜'elif player == '剪刀':if computer == '布':return '玩家胜'else:return '电脑胜'else:if computer == '石头':return '玩家胜'else:return '电脑胜'# 循环,直到玩家进行退出操作
while True:print('操作选择'.center(20, '*'))res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')if res == '1':print('一局定胜负'.center(20, '*'))# 电脑输出computer_output = computer()# 玩家输出player_output = player()# 结果输出print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')elif res == '2':print('三局两胜'.center(20, '*'))player_win = 0    # 记录玩家胜局次数computer_win = 0  # 记录电脑胜局次数while True:computer_output = computer()player_output = player()res = judge(player_output, computer_output)print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')if res == '玩家胜':player_win += 1elif res == '电脑胜':computer_win += 1# 三局两胜逻辑,谁先胜2局,就可以结束退出了if player_win >= 2 or computer_win >= 2:print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')breakelif res == '3':breakelse:# 错误处理print(f'\n序号{res}错误!请重新输入序号')

总结

感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

👍🏻也欢迎你,关注我。👍🏻

如有疑问,可在评论区留言哦~

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

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

相关文章

IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!)

目录 1. 简介 2. 创建SpringBoot项目 3. Maven依赖引入 4. 创建mapper文件夹 5. 数据源和Mybatis配置 6. 工程启动类配置 7. 连接数据库和创建测试表 8. Mapper接口和XML自动生成 9. 接口测试 1. 简介 本博客将详细介绍在IDEA中&#xff0c;如何整合SpringBoot与Myba…

基于SSM+Jsp的在线教育资源管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

AI办公自动化:批量根据Excel表格内容制作Word文档

工作任务&#xff1a;Excel表格中有大量文本&#xff0c;根据这些文本自动生成word文档 在chatgpt中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 读取Excel文件&#xff1a;"F:\AI自媒体内容\AI视…

[leetcode]将二叉搜索树转化为排序的双向链表

. - 力扣&#xff08;LeetCode&#xff09; /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Node* _left, Node* _right) {val _val;left _left;right _rig…

目标检测数据集 - 零售食品LOGO检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;零售食品 LOGO 检测数据集&#xff0c;真实零售食品 LOGO 高质量商品图片数据&#xff0c;数据集含常见零售食品 LOGO 图片&#xff0c;包括饮料类、酒类、调味品类、膨化饼干类、巧克力类、常见零食类等等。数据集类别丰富&#xff0c;标注标签包含 150…

DeepSORT(目标跟踪算法)中卡尔曼增益的理解

DeepSORT&#xff08;目标跟踪算法&#xff09;中卡尔曼增益的理解 flyfish 先用最简单的例子来理解卡尔曼增益 公式 (1) 首先&#xff0c;通过多次测量一个物理量&#xff0c;并使用取平均值的方式来计算其真实值&#xff1a; x ^ k 1 k ( z 1 z 2 ⋯ z k ) \hat{x}_…

python-基础篇-函数-在py中的长相

文章目录 整体长相长相要求 整体长相 怎么自定义函数&#xff1f; 要知道怎么定义函数&#xff0c;就要知道函数的组成部分是怎样的。 def 函数名(参数1&#xff0c;参数2....参数n):函数体return 语句这就是 Python 函数的组成部分。 长相要求 所以自定义函数&#xff0c…

父亲节:我要做爸爸的健康监督员

父亲节将至&#xff0c;总想着能为爸爸做些什么&#xff0c;来表达我们的感激与关爱。在这个特殊的日子里&#xff0c;成为爸爸的健康监督员&#xff0c;用华为 Watch 4 的智慧健康功能&#xff0c;任何时刻都可以关注爸爸的健康状况&#xff0c;放心又安心了。 用一键微体检…

使用 python 将 Markdown 文件转换为 ppt演示文稿

在这篇博客中&#xff0c;我们将展示如何使用 wxPython 创建一个简单的图形用户界面 (GUI)&#xff0c;以将 Markdown 文件转换为 PowerPoint 演示文稿。我们将利用 markdown2 模块将 Markdown 转换为 HTML&#xff0c;并使用 python-pptx 模块将 HTML 内容转换为 PowerPoint 幻…

[Vulnhub]Wintermute LFI+SMTP+Screen+Structv2-RCE+Lxc逃逸

概要 靶机 192.168.8.104 信息收集 $ nmap 192.168.8.103 --min-rate 1000 -sC -sV 结果: Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-15 05:54 EDT Nmap scan report for 192.168.8.103 (192.168.8.103) Host is up (0.035s latency). Not shown: 997 closed t…

亚马逊测评自养号与机刷的区别

前言&#xff1a; 在亚马逊运营的领域中&#xff0c;经常有人问&#xff1a;测评自养号就是机刷吗&#xff1f;它们两者有什么区别&#xff1f;做自养号太慢、太需要时间了&#xff0c;如果用机刷的话&#xff0c;会不会简单高效一点&#xff1f; 在这篇文章中&#xff0c;我…

SpringCloud 网关Gateway配置并使用

目录 1 什么是网关&#xff1f; 2 Gateway的使用 2.1 在其pom文件中引入依赖 2.2 然后gateway配置文件中配置信息 2.3 启动网关微服务 3 网关处理流程 4 前端-网关-微服务-微服务间实现信息共享传递 1 什么是网关&#xff1f; 网关&#xff1a;就是网络的关口&#xff…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游戏表演赛分队(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 游戏表演赛分队(100分) 🌍 评测功能需要订阅专栏后私信联系…

Python | Leetcode Python题解之第148题排序链表

题目&#xff1a; 题解&#xff1a; class Solution:def sortList(self, head: ListNode) -> ListNode:def merge(head1: ListNode, head2: ListNode) -> ListNode:dummyHead ListNode(0)temp, temp1, temp2 dummyHead, head1, head2while temp1 and temp2:if temp1.v…

现代信号处理14_基于蒙特卡洛的信号处理(CSDN_20240616)

Monte Carlo/Simulation方法 在统计上&#xff0c;样本数量是一个很重要的问题&#xff0c;在处理问题&#xff08;如计算样本均值&#xff09;的过程中&#xff0c;样本数量越多越好。但是在实际中&#xff0c;样本往往是稀缺的&#xff0c;获取数据就要付出代价。在贝叶斯理论…

SringBoot 如何使用HTTPS请求及Nginx配置Https

SringBoot 如何使用HTTPS请求及Nginx配置Https SringBoot 如何使用HTTPS请求生成证书导入证书及配制创建配置类将pfx转成.key和.pem Nginx 安装SSL依赖./configure 安装依赖编译安装完openssl后报了新错 Nginx配置 SringBoot 如何使用HTTPS请求 生成证书 由于业务数据在传输过…

重新安装TortoiseGit后提示权限错误问题解决

今天在Windows11系统中下载安装使用TortoiseGit可视化Git工具&#xff0c;进行代码提交管理。 由于电脑之前是一位开发人员在使用&#xff0c;所以曾经安装使用过这个工具。 重新安装好软件后&#xff0c;在coding网站中复制代码路径后&#xff0c;在本地目录通过鼠标右键选择…

每日一练——有效的括号

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 错误记录 #include<stddef.h> #include<stdlib.h> #include<assert.h> #include<stdbool.h>typedef char STDataType;typedef struct Stack {STDataType* a;int capacity;int top; } Stack;vo…

驾校在线考试系统源码 手机+PC+平板自适应

Thinkphp在线考题源码 驾校在线考试系统 手机PC平板 自适应&#xff0c;机动车驾驶培训学校驾校类网站源码带手机端 运行环境&#xff1a;phpmysql 内附安装说明 驾校在线考试系统源码 手机PC平板自适应

[C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过

【测试通过环境】 vs2019 cmake3.24.3 cuda11.7.1cudnn8.8.0 tensorrt8.6.1.6 opencv4.8.0 【部署步骤】 获取pt模型&#xff1a;https://github.com/THU-MIG/yolov10训练自己的模型或者直接使用yolov10官方预训练模型 下载源码&#xff1a;https://github.com/laugh12321/yol…