news 2026/6/24 10:38:04

Python实战小游戏(一):基础计算器 和 猜数字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python实战小游戏(一):基础计算器 和 猜数字

引言

在Python入门到精通(一)中,我们了解了Python安装,基本数据类型及条件判断和循环的控制流。
现在编写两个小游戏对基本数据类型、条件判断、循环控制语句进行简单应用,巩固基础,加深理解。

文章目录

  • 引言
  • 一、基础计算器
  • 二、猜数字

一、基础计算器

功能:实现两个数字的基本运算(加减乘除)
思路:输入一个数字,输入一个运算符,再输入一个数字,打印结果
异常控制:输入的非数字,则循环输入

解析:
1)异常控制需要循环输入,使用while、continue、break
2)判断是否数字,可考虑type、isinstance、类型转换float()
3)运算符是否在范围内,使用not in

代码如下:

# 定义一个函数defsimple_calculator():print("=== 基础计算器 ===")# 输入第一个数字whileTrue:try:num1=input("请输入一个数字: ")num1=float(num1)# 尝试将输入转换为浮点数break# 成功转换,退出循环exceptValueError:pass#占位,不做任何处理# 输入运算符operation=input("选择操作 (+, -, *, /): ")# 检查:输入的运算符是否正确,不正确则循环输入whileoperationnotin['+','-','*','/']:operation=input("请正确选择操作 (+, -, *, /): ")# 输入第二个数字whileTrue:try:num2=input("请输入一个数字: ")num2=float(num2)# 尝试将输入转换为浮点数break# 成功转换,退出循环exceptValueError:pass# 根据运算符计算结果ifoperation=='+':result=num1+num2elifoperation=='-':result=num1-num2elifoperation=='*':result=num1*num2elifoperation=='/':result=num1/num2ifnum2!=0else"错误: 除数不能为0"else:result="无效操作"# 打印结果print(f"结果:{result}")# 运行计算器simple_calculator()

运行结果如下图:

二、猜数字

功能:实现猜测一个数的基本逻辑
思路:随机生成一个目标数,用户输入一个数,输入数跟目标数对比,给出太大或太小结论,直至猜测正确
异常控制:输入非数时提示并重新输,输入的超范围提示且不计算

解析:
1)未猜中需要循环输入,使用while、continue、break
2)判断是否数字,可考虑type、isinstance、类型转换int()
3)数字是否在范围内使用or and
4)数字猜测情况使用if/elseif/else来判断分支

# 引入random库importrandom# 定义一个函数defguess_number_game():print("=== 猜数字游戏 ===")# 随机获取一个1-100间数字target=random.randint(1,100)# 尝试次数归0attempts=0whileTrue:try:guess=int(input("猜一个1-100之间的数字: "))# 检查:输入的数字是否符合范围,不符合则重新输入ifguess<1orguess>100:print("请输入1-100之间的数字!")continue# 跳出当前循环# 猜题次数+1attempts+=1ifguess<target:print("太小了!")elifguess>target:print("太大了!")else:print(f"🎉 恭喜!你用了{attempts}次猜中了数字{target}")break#跳出整体循环exceptValueError:print("请输入有效数字!")# 运行游戏guess_number_game()

结果如下:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:58:47

【办公类-39-07】20251217通义万相动物图(万相2.6 数字人-对口型)

背景需求 20251217&#xff0c;给了免费的150分&#xff0c;给我们做功能测试&#xff0c;日后不一定有这么多&#xff0c;我先把昨天的30分用掉 插入图片 插入音频 只能15秒 删减文字 图片音频30分&#xff0c;15秒 即使支付30分&#xff0c;生成也要10分钟 生成失败&#xf…

作者头像 李华
网站建设 2026/6/23 2:54:45

cursor-free-vip终极指南:一键突破AI工具限制的完整方案

cursor-free-vip终极指南&#xff1a;一键突破AI工具限制的完整方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…

作者头像 李华
网站建设 2026/6/22 22:54:00

MTK设备启动保护机制绕过实用教程:高效解锁工具深度解析

MTK-bypass/bypass_utility是一款专为MediaTek芯片设备设计的开源解锁工具&#xff0c;能够有效禁用设备启动时的启动保护机制。通过这款工具&#xff0c;用户可以为后续的系统调试、刷机操作和开发工作提供便利。 【免费下载链接】bypass_utility 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/6/23 18:36:24

20、毫米波(mmWave)介质访问控制综述

毫米波(mmWave)介质访问控制综述 1. 引言 在无线和计算网络中,介质访问控制(MAC)的基本作用之一是“冲突和干扰管理”。像载波侦听多址接入/冲突避免(CSMA/CA)就是无线网络中著名且成功的随机接入方案,它通过避免冲突的概念来协调无线介质访问。 然而,在毫米波(mm…

作者头像 李华
网站建设 2026/6/23 18:38:52

42、LINQ查询表达式与.NET集合类型详解

LINQ查询表达式与.NET集合类型详解 1. 查询表达式介绍 查询表达式是一种强大的工具,它为开发者提供了一种类似于SQL的语法来处理集合数据。在查询表达式中, select 子句可以定义匿名类型。例如,它可以将 IGrouping<TKey, TElement>.Key 重命名为 IsContextualK…

作者头像 李华
网站建设 2026/6/23 12:41:00

vue+springboot社区外来务工人员管理系统_数据分析可视化大屏系统10vz9c0a_jz119

目录已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&…

作者头像 李华