第9节:综合案例

在最后一节内容,我们结合之前学过的知识点,做一个综合性案例。

在制作综合案例之前,我们先了解几个用户与程序交互的方法。

1. 获取用户输入:input() 函数

input() 函数会暂停程序的执行,等待用户在终端/命令行中输入一些文本,然后按下 Enter 键。用户输入的内容会以字符串的形式返回给程序。

基本用法:

## 程序会在这里暂停,等待用户输入
user_input = input()
print("你输入的内容是:", user_input)
print("输入内容的类型是:", type(user_input)) # 注意,总是 <class 'str'>

添加提示信息:

为了让用户知道应该输入什么,我们可以在 input() 函数的括号里放一个字符串作为提示语 (Prompt)

name = input("请输入你的名字: ") # 显示提示语
print("你好, " + name + "!")

age_str = input("请输入你的年龄: ") # 提示用户输入年龄
print("你输入的年龄是: " + age_str)

重要:input() 返回的是字符串!

请特别注意,无论用户输入的是数字还是文字,input() 函数总是将其作为字符串返回。如果你需要将用户的输入当作数字来处理(例如进行数学运算),就必须进行类型转换

  • int(字符串):将字符串转换为整数。
  • float(字符串):将字符串转换为浮点数。
age_str = input("请输入你的年龄: ")
## print(age_str + 1) # 这会报错 TypeError,因为字符串不能直接和整数相加

## 需要先转换类型
age_int = int(age_str) # 将输入的字符串转换为整数
next_year_age = age_int + 1
print("明年你就 " + str(next_year_age) + " 岁了。") # 输出时再转回字符串拼接

## ---

price_str = input("请输入商品价格: ")
quantity_str = input("请输入购买数量: ")

price_float = float(price_str) # 转为浮点数
quantity_int = int(quantity_str) # 转为整数

total_cost = price_float * quantity_int
print("总价是:", total_cost)

2. 猜数字游戏

现在,让我们把前面几章学到的知识(变量、input()、类型转换、while 循环、if-elif-else 条件判断、random 模块)整合起来,编写一个经典的“猜数字”小游戏。

游戏规则:

  1. 程序随机生成一个 1 到 100 之间的整数。
  2. 让用户反复输入猜测的数字。
  3. 如果用户猜的数字比目标数字大,提示“太大了!”。
  4. 如果用户猜的数字比目标数字小,提示“太小了!”。
  5. 如果用户猜对了,提示“恭喜你猜对了!”,并结束游戏。
import random # 需要用到随机数生成

## 1. 生成目标数字
target_number = random.randint(1, 100)
print("我已经想好了一个 1 到 100 之间的整数。")

## 游戏主循环
while True: # 使用一个无限循环,直到猜对才退出
    # 2. 获取用户猜测 (注意输入的是字符串)
    guess_str = input("请输入你猜的数字: ")

    # 尝试将输入转换为整数 (简单的错误处理)
    try:
        guess_int = int(guess_str)
    except ValueError:
        print("请输入有效的整数!")
        continue # 如果输入无效,跳过本次循环,让用户重新输入

    # 3. 比较猜测和目标数字
    if guess_int > target_number:
        print("太大了!")
    elif guess_int < target_number:
        print("太小了!")
    else: # 猜对了!
        # 5. 提示猜对并结束游戏
        print("恭喜你猜对了!目标数字就是", target_number)
        break # 跳出 while 循环,结束游戏

print("游戏结束!")

上面代码用了一个简单的 try...except ValueError 来处理用户输入无效整数的情况,这是异常处理的基础,可以防止程序因用户错误输入而崩溃。

尝试运行这个游戏,体验一下! 你可以思考如何对其进行改进,比如:

  • 限制猜测次数。
  • 记录用户猜了多少次。
  • 增加难度,扩大数字范围。

3. 总结

经过了前面九节知识点的学习,您已经对Python这门语言有了初步的掌握,此文档是专门为学习AI准备的Python教程,所以知识点并不全面,如果想要扩展其他方向的学习,可以参考一下路径。

  1. Python 进阶:

    • 数据结构: 深入学习列表、字典的更多方法,了解元组 (Tuple)、集合 (Set)。
    • 文件操作: 学习如何读取和写入文件 (.txt, .csv 等)。
    • 面向对象编程 (OOP): 理解类 (Class) 和对象 (Object) 的概念,这是构建大型程序的基石。
    • 异常处理: 学习更健壮的 try...except...finally 结构来处理程序运行时可能出现的错误。
  2. 特定应用领域:

    • Web 开发: 学习 Flask 或 Django 框架来构建网站和 Web 应用。
    • 数据科学与分析: 学习 NumPy, Pandas, Matplotlib, Scikit-learn 等库进行数据处理、分析和可视化。
    • 自动化脚本: 利用 Python 编写脚本自动完成日常任务(文件管理、数据处理、系统操作等)。
    • 网络爬虫: 学习 requestsBeautifulSoupScrapy 来从网页抓取信息。
    • 图形用户界面 (GUI): 学习 Tkinter, PyQt, Kivy 等库来创建带有窗口和按钮的桌面应用程序。

感谢您对晓舟的支持,本章内容到此结束,接下来我们进入大语言模型的学习。