【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压…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...