【Python 千题 —— 基础篇】猜数字小游戏
题目描述
题目描述
猜数字。利用 random 函数随机生成一个1~100之间的数并存储在变量中,然后使用条件判断以及循环方式编写一个猜数字的环节:
- 如果输入的数字大于随机生成的数字,则输出“猜大了”
- 如果输入的数字小于随机生成的数字,则输出“猜小了”
- 如果输入的数字等于随机生成的数字,则输出“猜中了”,并退出循环
示例
示例 ①
输入输出:
猜数字游戏开始!
请输入一个1~100之间的整数:50
猜小了
请输入一个1~100之间的整数:75
猜大了
请输入一个1~100之间的整数:63
猜小了
请输入一个1~100之间的整数:69
猜中了!
猜数字游戏结束!
代码讲解
下面是本题的代码:
import random# 描述: 猜数字。利用random函数随机生成一个1~100之间的数并存储在变量中,然后使用条件判断以及循环方式编写一个猜数字的环节。
# 输入: 无
# 输出: 无# 随机生成一个1~100之间的数字
target_number = random.randint(1, 100)print("猜数字游戏开始!")# 循环进行猜数字游戏
while True:# 输入一个1~100之间的整数user_guess = int(input("请输入一个1~100之间的整数:"))# 判断用户猜测的大小if user_guess > target_number:print("猜大了")elif user_guess < target_number:print("猜小了")else:print("猜中了!")breakprint("猜数字游戏结束!")
思路讲解
下面是这个Python编程习题的思路讲解,适用于初学者:
-
随机生成目标数字:
- 我们使用
random模块中的randint()函数随机生成一个1~100之间的整数,并将其存储在变量target_number中。
target_number = random.randint(1, 100) - 我们使用
-
猜数字游戏主循环:
- 使用
while True构建一个无限循环,直到用户猜中了目标数字才退出循环。
while True: - 使用
-
获取用户输入:
- 在循环内,使用
input()函数获取用户输入的整数。
user_guess = int(input("请输入一个1~100之间的整数:")) - 在循环内,使用
-
判断用户猜测:
- 使用条件判断判断用户猜测的大小,并输出相应的提示信息。
if user_guess > target_number:print("猜大了") elif user_guess < target_number:print("猜小了") else:print("猜中了!")break如果用户猜中了,就输出“猜中了”并使用
break语句退出循环。 -
游戏结束提示:
- 最后,当循环退出后,输出“猜数字游戏结束”。
print("猜数字游戏结束!") -
运行程序:
- 最后,保存你的代码并运行程序。程序将随机生成一个目标数字,然后进入猜数字的游戏环节,直到用户猜中为止。
这个习题涵盖了使用 random 模块生成随机数、循环、条件判断和用户输入的基本知识点。它有助于学习者理解如何使用这些基本概念构建简单的猜数字游戏。
相关知识点
Python中的random模块详解
在Python中,random模块提供了生成伪随机数的功能。这些随机数在大多数情况下是足够的,但请注意,它们并不是真正的随机数,而是伪随机数,因为它们是通过确定性的算法生成的。本文将详细介绍random模块的使用,包括生成随机数、随机种子、洗牌等功能。
1. 生成随机数
使用random模块可以轻松生成各种类型的随机数。以下是一些常用的随机数生成函数:
1.1 random()
random()函数返回0到1之间的浮点数。
import randomrand_num = random.random()
print(rand_num)
1.2 randint(a, b)
randint(a, b)函数返回[a, b]范围内的整数。
import randomrand_int = random.randint(1, 10)
print(rand_int)
1.3 uniform(a, b)
uniform(a, b)函数返回[a, b]范围内的浮点数。
import randomrand_float = random.uniform(1.0, 5.0)
print(rand_float)
2. 随机种子
为了使生成的伪随机数可重复,可以使用随机种子。通过在程序开始时调用random.seed()函数,可以确保每次运行程序时都生成相同的随机数序列。
import randomrandom.seed(42) # 设置随机种子为42
rand_num_1 = random.random()
rand_num_2 = random.random()print(rand_num_1, rand_num_2)
3. 序列操作
random模块还提供了对序列进行随机操作的功能,如洗牌(shuffle)和选择(choice)。
3.1 shuffle(sequence)
shuffle(sequence)函数用于将序列中的元素随机打乱顺序。
import randommy_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)
3.2 choice(sequence)
choice(sequence)函数用于从序列中随机选择一个元素。
import randommy_list = [1, 2, 3, 4, 5]
random_element = random.choice(my_list)
print(random_element)
4. 高级随机数生成
random模块还提供了其他一些高级的随机数生成函数,如正态分布(gauss)、指数分布(expovariate)等,这些函数在特定的应用场景中非常有用。
import random# 生成符合正态分布的随机数
normal_distribution = random.gauss(0, 1)
print(normal_distribution)# 生成符合指数分布的随机数
exponential_distribution = random.expovariate(1.0)
print(exponential_distribution)
总的来说,random模块为Python程序员提供了生成伪随机数的丰富工具。通过灵活运用这些函数,你可以在各种应用中轻松地引入随机性。无论是模拟、游戏开发还是数据处理,random模块都是一个强大的函数。
这个习题适合初学者,因为它涵盖了Python编程的基础知识,包括循环、条件语句、随机数生成和基本语法。希望这个模板对你有所帮助,如果有任何问题,随时提出!
| 作者信息 作者 : 繁依Fanyi CSDN: https://techfanyi.blog.csdn.net 掘金:https://juejin.cn/user/4154386571867191 |
相关文章:
【Python 千题 —— 基础篇】猜数字小游戏
题目描述 题目描述 猜数字。利用 random 函数随机生成一个1~100之间的数并存储在变量中,然后使用条件判断以及循环方式编写一个猜数字的环节: 如果输入的数字大于随机生成的数字,则输出“猜大了”如果输入的数字小于随机生成的数字&#x…...
Android Media3 ExoPlayer 如何正确设置缓存大小
在播放音视频时,如何开启 Android Media3 ExoPlayer 缓存,请参考笔者另外一篇文章: Android Media3 Exoplayer 开启缓存功能 笔者在设置 ExoPlayer 的缓存大小时,遇到一个非常奇怪的问题,例如,设置最大缓存…...
WPF实现右键选定TreeViewItem
在WPF中,TreeView默认情况是不支持右键选定的,也就是说,当右键点击某节点时,是无法选中该节点的。当我们想在TreeViewItem中实现右键菜单时,往往希望在弹出菜单的同时选中该节点,以使得菜单针对选中的节点生…...
蓝桥杯 java 重复字符串
题目描述 * 如果一个字符串S恰好可以由某个字符串重复K次得到,我们就称S是K次重复字符串。 * 例如 abcabcabc 可以看作是 abc重复3次得到,所以 abcabcabc 是3次重复字符串。 * 同理 aaaaaa 既是2次重复字符串、又是3次重复字符串和6次重复字符串。 * 现在…...
Vue实战:两种方式创建Vue项目
文章目录 一、实战概述二、实战步骤(一)安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 (二)命令行方式构建…...
不同打包工具下的环境变量配置方式对比
本文作者为 360 奇舞团前端开发工程师 天明 前言 在现代的JavaScript应用程序开发中,环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置,例如开发、测试和生产环境。最常见的需求是根据不同的环境,配置如是否开启sour…...
5个99%的人可能不知道的实用程序库!
前言 作为一名前端开发者,这些 JavaScript 库极大地提高了我的工作效率,如格式化日期、处理 URL 参数和调试移动网页。朋友们,我想和你们分享这些库。 1. 使用 “Day.js” 来格式化日期和时间 链接 作为开发者,我已经厌倦了在 JavaScript 中操作日期和时间,因为它太麻烦了。…...
shell脚本,ADB
Linux命令行命令是系统内置的命令或用户自定义的脚本(shell 脚本,.sh扩展名结尾),可以通过终端输入命令来执行。这些命令通常存储在Linux系统的/bin、/usr/bin、/sbin、/usr/sbin等目录下,也可以在$PATH环境变量中指定…...
微服务治理:微服务安全详解
微服务安全旨在保护微服务架构中每一个独立的服务。与传统单体应用程序不同,它们在单点应用安全措施,微服务由于其独立性,需要分布式安全方法。 为何关注微服务安全? 攻击面扩大: 更多服务暴露在外,意味着攻击者拥有…...
迅为RK3588开发板编译 Buildroot单独编译图形化界面三
第三步:编译 Recovery 首先在 linux 源码目录下输入以下命令进入编译的 UI 界面,进入之后如下所示: ./build.sh 然后将光标移动到第四个 recovery,点击回车即可开始 recovery 的编译,编译过程如下所示: 编…...
yum仓库及NFS共享
目录 一.yum仓库的基本原理 1.Yum概述: 2.Yum实现过程: 二. yum配置文件及命令: 1. 主配置文件: 2. 仓库设置文件: 3 .日志文件: 编辑4.yum命令详解: 三. 搭建仓库的方式: …...
【Web】CTFSHOW PHP特性刷题记录(全)
知其然知其所以然,尽量把每种特性都详细讲明白。 目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web…...
[Docker] Docker为什么出现
Docker为什么出现 一款产品: 开发–上线 -->两套环境 | 应用配置 开发即运维! 环境配置十分麻烦,每一个机器都要部署环境(Redis, ES, Hadoop) 费时费力 项目带上配置环境安装打包。 传统: 开发jar&…...
小程序基础学习(页面跳转传参)
目录 正向传参 原理:直接在url里面拼接参数即可 接受参数 编辑 已经跳转到的页面用onLoad函数来接受即可然后写回页面展示即可 逆向传参 原理:通过使用 getCurrentPages()这个方法来获取返回页面列表,然后再用页面.setDataÿ…...
面试经典150题(85-87)
leetcode 150道题 计划花两个月时候刷完,今天(第四十三天)完成了3道(85-87)150: 85.(77. 组合)题目描述: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可…...
【C++】“Hello World!“
🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 2024.1.14 纪念一下自己编写的第一个C程序 #include<iostream>int main() {/*我的第一个C程序*/std::cout << "Hello world!:>" <<std::endl;ret…...
系统性学习vue-vue中的ajax
vue中的ajax 配置代理常用发送Ajax请求方式跨域方式一方式二 vue-resource插槽默认插槽具名插槽作用域插槽 配置代理 常用发送Ajax请求方式 xhr new XMLHttpRequest() 在真正开发中不常用,比较麻烦jQuery 封装了xhraxios 封装了xhr 与jQuery相比优势是:…...
【PGSQL】date_trunc 函数
date_trunc 函数用于在 PostgreSQL 中将日期或时间戳值截断(向下取整)到指定的精度级别。当您想要忽略较小的时间单位(例如,小时、分钟、秒),专注于较大的单位(例如,天、月、年&…...
使用composer生成的DMG和PKG格式软件包有何区别
在使用Composer从包源构建软件包时候,有两种不同类型的包:PKG和DMG。你知道两者之间的区别吗? 以及如何选取吗? 每种格式都有各自的优势具体取决于软件包的预期用途以及用于部署软件包的工具。下面我们来了解一下PKG和DMG格式的区别和用途。…...
Linux 压缩解压
.tar (注:tar是打包,不是压缩!) 解包:tar xvf FileName.tar -C DirName打包:tar cvf FileName.tar DirName .gz 解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...
