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

引言

在Python入门到精通(一)中,我们了解了Python安装,基本数据类型及条件判断和循环的控制流。

现在编写两个小游戏对基本数据类型、条件判断、循环控制语句进行简单应用,巩固基础,加深理解。

文章目录

一、基础计算器

功能:实现两个数字的基本运算(加减乘除)

思路:输入一个数字,输入一个运算符,再输入一个数字,打印结果

异常控制:输入的非数字,则循环输入

解析:

1)异常控制需要循环输入,使用while、continue、break

2)判断是否数字,可考虑type、isinstance、类型转换float()

3)运算符是否在范围内,使用not in

代码如下:

python 复制代码
# 定义一个函数
def simple_calculator():
    print("=== 基础计算器 ===")
    # 输入第一个数字
    while True:
        try:
            num1 = input("请输入一个数字: ")
            num1 = float(num1)  # 尝试将输入转换为浮点数
            break  # 成功转换,退出循环
        except ValueError:
            pass #占位,不做任何处理

    # 输入运算符
    operation = input("选择操作 (+, -, *, /): ")
    # 检查:输入的运算符是否正确,不正确则循环输入
    while operation not in ['+', '-', '*', '/']:
        operation = input("请正确选择操作 (+, -, *, /): ")
    
    # 输入第二个数字
    while True:
        try:
            num2 = input("请输入一个数字: ")
            num2 = float(num2)  # 尝试将输入转换为浮点数
            break  # 成功转换,退出循环
        except ValueError:
            pass
    
    # 根据运算符计算结果
    if operation == '+':
        result = num1 + num2
    elif operation == '-':
        result = num1 - num2
    elif operation == '*':
        result = num1 * num2
    elif operation == '/':
        result = num1 / num2 if num2 != 0 else "错误: 除数不能为0"
    else:
        result = "无效操作"
    
    # 打印结果
    print(f"结果: {result}")

# 运行计算器
simple_calculator()

运行结果如下图:

二、猜数字

功能:实现猜测一个数的基本逻辑

思路:随机生成一个目标数,用户输入一个数,输入数跟目标数对比,给出太大或太小结论,直至猜测正确

异常控制:输入非数时提示并重新输,输入的超范围提示且不计算

解析:

1)未猜中需要循环输入,使用while、continue、break

2)判断是否数字,可考虑type、isinstance、类型转换int()

3)数字是否在范围内使用or and

4)数字猜测情况使用if/elseif/else来判断分支

python 复制代码
# 引入random库
import random

# 定义一个函数
def guess_number_game():
    print("=== 猜数字游戏 ===")
    # 随机获取一个1-100间数字
    target = random.randint(1, 100)
    # 尝试次数归0
    attempts = 0
    
    while True:
        try:
            guess = int(input("猜一个1-100之间的数字: "))
            # 检查:输入的数字是否符合范围,不符合则重新输入
            if guess < 1 or guess > 100:
                print("请输入1-100之间的数字!")
                continue # 跳出当前循环

            # 猜题次数+1
            attempts += 1
            if guess < target:
                print("太小了!")
            elif guess > target:
                print("太大了!")
            else:
                print(f"🎉 恭喜!你用了{attempts}次猜中了数字{target}")
                break #跳出整体循环
                
        except ValueError:
            print("请输入有效数字!")

# 运行游戏
guess_number_game()

结果如下:

相关推荐
梯度下降者18 分钟前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc3 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读3 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
外收内放3 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下4 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐4 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程
触底反弹4 小时前
🚀 FastAPI 五大重难点深度剖析:从 500 报错到彻底搞懂 Depends、Pydantic 与 SQLAlchemy
python·fastapi
cpolar技术支持4 小时前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
小嘉丶学长4 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节