Python编程小例子—石头、剪子、布游戏

random库的应用—石头、剪子、布游戏

Random标准库的用法

在Python中,random是一个标准库,提供了生成随机数的功能。以下是一些常见用法:

  1. 生成随机整数:
import random# 生成指定范围内的随机整数
random_int = random.randint(1, 100)
  1. 生成随机浮点数:
import random# 生成0到1之间的随机浮点数
random_float = random.random()
  1. 从序列中随机选择元素:
import randomchoices = ['石头', '剪刀', '布']
random_choice = random.choice(choices)
  1. 打乱序列中元素的顺序:
import randomitems = [1, 2, 3, 4, 5]
random.shuffle(items)
  1. 生成随机种子:
import random# 设置随机种子,可复现随机结果
random.seed(42)
  1. 实现按照指定概率随机事件:
import random# 按照指定概率返回True或False
probability = 0.7
result = random.random() < probability

通过使用random标准库,可以方便地处理生成随机数、随机选择元素、打乱序列顺序等任务。

示例:剪刀、石头、布游戏

import random
'''
✊: \U0001F44A (对应Unicode码点:U+1F44A)
✌️: \U0000270C (对应Unicode码点:U+270C)
👋: \U0001F44B (对应Unicode码点:U+1F44B)
'''def rock_paper_scissors(player_choice, computer_choice):if player_choice == computer_choice:return "平局"elif (player_choice == '石头' and computer_choice == '剪刀') or \(player_choice == '剪刀' and computer_choice == '布') or \(player_choice == '布' and computer_choice == '石头'):return "玩家获胜"else:return "电脑获胜"# 初始化玩家赢的次数为0
player_win = 0
# 初始化电脑赢的次数为0
computer_win = 0
# 定义一个字典,键为1,2,3,值为石头、剪刀、布
choices_dict = {1:'石头', 2:'剪刀', 3:'布'}
unicode_dict = {1:'\U0001F44A', 2:'\U0000270C',3:'\U0001F44B'}
n = 0
ju = int(input('请输入局数:'))
while n < ju:print('- '*20)print(f'第{n+1}局开始:')try:player_choice = int(input("请输入你的选择(1<石头>、2<剪刀>、3<布>): "))computer_choice = random.randint(1,3)print(f"玩家选择了:{choices_dict[player_choice]}",unicode_dict[player_choice])print(f"电脑选择了:{choices_dict[computer_choice]}",unicode_dict[computer_choice])result = rock_paper_scissors(choices_dict[player_choice], choices_dict[computer_choice])if result == '玩家获胜':player_win += 1elif result == '电脑获胜':computer_win += 1print(f"游戏结果:{result}")print(f'第{n+1}局结束')n += 1except:print('请做出正确选择(1,2,3)!!!')breakprint(f'游戏最终结果:游戏玩家赢{player_win}场,计算机赢{computer_win}场。')

运行结果如下:

请输入局数:5
- - - - - - - - - - - - - - - - - - - -1局开始:
请输入你的选择(1<石头>2<剪刀>3<>): 1
玩家选择了:石头 👊
电脑选择了:剪刀 ✌
游戏结果:玩家获胜
第1局结束
- - - - - - - - - - - - - - - - - - - -2局开始:
请输入你的选择(1<石头>2<剪刀>3<>): 1
玩家选择了:石头 👊
电脑选择了:布 👋
游戏结果:电脑获胜
第2局结束
- - - - - - - - - - - - - - - - - - - -3局开始:
请输入你的选择(1<石头>2<剪刀>3<>): 2
玩家选择了:剪刀 ✌
电脑选择了:布 👋
游戏结果:玩家获胜
第3局结束
- - - - - - - - - - - - - - - - - - - -4局开始:
请输入你的选择(1<石头>2<剪刀>3<>): 3
玩家选择了:布 👋
电脑选择了:布 👋
游戏结果:平局
第4局结束
- - - - - - - - - - - - - - - - - - - -5局开始:
请输入你的选择(1<石头>2<剪刀>3<>): 1
玩家选择了:石头 👊
电脑选择了:剪刀 ✌
游戏结果:玩家获胜
第5局结束
游戏最终结果:游戏玩家赢3场,计算机赢1场。

以上的部分代码是在[小蜜蜂AI][https://zglg.work]GPT问答获取,然后本人有做了一些修改。

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

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

相关文章

HiveSql中的函数家族(二)

一、窗口函数 1、什么是窗口函数 在 SQL 中&#xff0c;窗口函数&#xff08;Window Functions&#xff09;是一种特殊的函数&#xff0c;它允许在查询结果集的特定窗口&#xff08;通常是一组行&#xff09;上执行聚合、分析和计算操作&#xff0c;而无需聚合整个结果集。窗口…

FTP客户端Transmit 5 for Mac中文激活版

Transmit 5是一款功能强大的Mac FTP客户端软件&#xff0c;它由Panic公司开发&#xff0c;为用户提供简单、高效的文件传输体验。 Transmit 5 for Mac中文激活版下载 Transmit 5支持多种传输协议&#xff0c;如FTP、SFTP、WebDAV和Amazon S3等&#xff0c;满足用户不同的文件传…

【公司UI自动化学习】

公司课程链接&#xff1a;https://l.jd.com/student/project/project.du?project_id697509403 公司的课程&#xff0c;是给一个学习方向。 一、 PC自动化 1&#xff09;什么项目适合 2&#xff09;PC自动化介入时间点 3&#xff09;自动化率&#xff1a; 频繁改动的&…

不需要GPU就可以玩转模型,同时支持本地化部署

简单一款不需要GPU就可以在Win 机器跑的模型&#xff1a;Ollama&#xff1b;用于本地运行和部署大型语言模型&#xff08;LLMs&#xff09;的开源工具 关于Ollama的简要介绍 平台兼容性&#xff1a;Ollama支持多种操作系统&#xff0c;包括macOS、Linux和Windows&#xff0c;…

华为手机无法弹出wifi上网认证页面处理

华为手机无法弹出wifi上网认证页面 连wifi后跳到上图界面卡住&#xff0c;不跳转到单位的上网认证界面。 打开手机的设置应用&#xff0c;点击上面的WLAN选项。 点击上面的更多WLAN设置选项。 关闭WLAN安全检测就可以正常弹出上网认证界面&#xff0c; 正常弹出上网认证界面&a…

C++类和对象 中(六大默认成员函数)

前言 紧接着上一篇文章&#xff0c;接下来我们来认识下类的六大默认成员函数&#xff0c;如下图。之所以叫他默认成员函数&#xff0c;是因为即使我们不写&#xff0c;编译器会默认帮我们写&#xff0c;但只要我们自己显示的写了&#xff0c;编译器就不会帮我们生成对应的成员函…

第十五届蓝桥杯复盘python大学A组——试题C 数字诗意

思路 数字可以分为 有诗意的数字可以写成 (ij)(j-i1)/2 &#xff08; i、j都是正整数 &#xff09; ij 、j-i1 的奇偶性不同&#xff08;因为i、j都是正整数&#xff09; 因此&#xff0c; 如果一个数是奇数就一定有诗意 eg.312 ,523,734,945… 原因&#xff1a;根据上述分…

114 接口中幂等性的保证

前言 同样是 面试问题 如何确保接口的 幂等性 幂等是一个 较为抽象的概念, 多次重复访问, 不会导致业务逻辑的异常 这里从增删改查, 几个方面列一下 一般来说, 我们核心需要关注的就是 新增 和 更新 对于 增加元素, 首先针对唯一约束进行校验, 然后再处理新增的相关业…

Day09 React———— 第九天

ReactRoter 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候&#xff0c;path 对应的组件会在页面中进行渲染 基础用法 import { createBrowserRouter, RouterProvider } from "react-router-dom"; const router createBrowserRoute…

AI讲师人工智能讲师大模型培训讲师叶梓:突破大型语言模型推理效率的创新方法

大型语言模型&#xff08;LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;任务中展现出了前所未有的能力&#xff0c;但它们对计算资源的巨大需求限制了其在资源受限环境中的应用。SparQ Attention算法提出了一种创新的方法&#xff0c;通过减少注意力机制中的内存带…

探索Java世界中的七大排序算法(上)

文章目录 排序的概念直接插入排序希尔排序( 缩小增量排序)选择排序堆排序冒泡排序 在计算机科学中&#xff0c;排序算法是一类重要的算法&#xff0c;它们用于将一组元素按照一定的顺序进行排列。在Java编程中&#xff0c;我们经常需要对数组或集合进行排序操作。本文将介绍Jav…

驱动云创建保存自己的环境

驱动云创建保存自己的环境 制作镜像方法一方法二报错 上一篇link介绍了如何在驱动云上部署llama2以及驱动云在训练大模型的方便之处。也说到了可以直接使用驱动云现有的环境&#xff0c;免得自己配置环境。 但是有的时候免不了自己想要安装一些包。 驱动云的环境是这样的&…

电视音频中应用的音频放大器

电视机声音的产生原理是将电视信号转化为声音&#xff0c;然后通过扬声器将声音播放出来。当我们打开电视并选择频道时&#xff0c;电视机首先从天线或有线电视信号中获取声音信号。声音信号经过放大器放大之后&#xff0c;就能够通过扬声器发出声音。电视机声音的产生原理和音…

react中子父组件互相传值

在react中父子组件互相传值&#xff0c;除了使用类似于redux这样状态管理的工具&#xff0c;怎么实现&#xff1f;&#xff1f; 父传子(简单)父:子: 子传父(较麻烦)父&#xff1a;子&#xff1a; 父传子(简单) 父: 子: 子传父(较麻烦) 父&#xff1a; 子&#xff1a;

elementui中文官网

Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.eleme.cn/#/zh-CN/

一个 .net 8 + Azure 登录 + Ant Design Blazor 的基本后台框架

一个 .net 8 Azure 登录 Ant Design Blazor 的基本后台框架 主界面使用了 Ant Design Blazor 项目模板搭建 后台技术是 .net 8 Blazor run at server 模式 登录方式使用 Azure 实现了菜单导航和路由 此外实现了读取和修改本地Json文件的功能&#xff0c;不是必须的&#x…

[MySQL数据库] 索引与事务

1. 索引 1.1 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针.可以对表中的一列或多列创建索引,并指定索引的类型&#xff0c;各类索引有各自的数据结构实现. 1.2 作用 数据库中的表、数据、索引之间的关系&#xff0c;类似于书架上的图书、书籍…

【力扣】148. 排序链表

148. 排序链表 题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,…

深度学习架构(CNN、RNN、GAN、Transformers、编码器-解码器架构)的友好介绍。

一、说明 本博客旨在对涉及卷积神经网络 &#xff08;CNN&#xff09;、递归神经网络 &#xff08;RNN&#xff09;、生成对抗网络 &#xff08;GAN&#xff09;、转换器和编码器-解码器架构的深度学习架构进行友好介绍。让我们开始吧&#xff01;&#xff01; 二、卷积神经网络…

【观察】容器化部署“再简化”,云原生体验“再升级”

自2013年云原生概念被提出以来&#xff0c;云原生技术和架构在过去十多年得到了迅速的发展&#xff0c;并对数字基础设施、应用架构和应用构建模式带来了深刻的变革。根据IDC预测&#xff0c;到2024年&#xff0c;新增的生产级云原生应用在新应用的占比将从2020年的10%增加到60…