核心概念
Python 交互式模式深度解析
在 Day 1 中,我们简单接触了 Python 的交互式模式。实际上,Python 提供了多种交互方式,每种都有其适用场景。
交互式模式的优势:
IDLE:Python 的官方 IDE
IDLE(Integrated Development and Learning Environment)是 Python 自带的集成开发环境,非常适合初学者使用。
代码执行的基本单元
Python 程序由一系列语句(Statement)组成:
Python 注释的重要性
注释是代码中不会被 Python 执行的文字,用于:
没有注释的代码就像没有说明书的电器,你自己知道怎么用,但别人需要花费大量时间才能理解。
代码示例
示例 1:使用 IDLE 的交互式模式
# 启动 IDLE 后进入交互式 Shell# 在 >>> 提示符后输入以下代码:# 第一个数字计算>>> 100 + 200300# 字符串连接>>> ”Hello” + ” ” + ”World”'Hello World'# 使用变量存储中间结果>>> x = 10>>> y = 20>>> result = x * y>>> print(result)200# 多行输入(函数定义)>>> def greet(name):... return f”你好, {name}!”...>>> greet(”小明”)'你好, 小明!'
示例 2:你的第一个完整程序
# 文件: first_program.py# 这是你的第一个完整的 Python 程序# 单行注释:程序的说明print(”=” * 30)print(”我的第一个 Python 程序”)print(”=” * 30)# 变量定义和使用program_name = ”Python 学习系列”day_number = 2welcome_message = ”欢迎来到编程世界!”# 输出信息print(”程序名称:”, program_name)print(”当前进度:”, f”第 {day_number} 天”)print(welcome_message)# 多行注释”””这个程序展示了 Python 的基本功能:1. 字符串输出2. 变量使用3. 数据格式化”””print(”=” * 30)print(”程序执行完毕!”)print(”=” * 30)
示例 3:多行语句和代码块
# 文件: multiline.py# 演示 Python 的多行语句和代码块# 一行一条语句print(”语句1”)print(”语句2”)print(”语句3”)# 使用反斜杠续行(不推荐,了解即可)very_long_message = ”这是一条非常长的字符串,” + \ ”因为太长了所以需要换行,” + \ ”但 Python 把它们当作一行。”print(very_long_message)# 使用括号实现隐式续行(推荐方式)total = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10)print(”1 到 10 的总和:”, total)# 多行字符串long_text = ”””这是一个多行字符串。它可以直接包含换行符。非常适合写长段落的文本。”””print(long_text)
示例 4:程序执行流程演示
# 文件: execution_flows.py# 演示 Python 代码的执行顺序print(”=== 程序开始执行 ===”)print(”\n第1步:定义变量”)num1 = 10num2 = 20print(f”num1 = {num1}, num2 = {num2}”)print(”\n第2步:执行计算”)sum_result = num1 + num2print(f”{num1} + {num2} = {sum_result}”)print(”\n第3步:条件判断”)if sum_result > 20: print(”结果大于 20”)else: print(”结果不大于 20”)print(”\n第4步:循环操作”)for i in range(3): print(f” 循环第 {i+1} 次”)print(”\n第5步:函数调用”)def greet(name): print(f” 你好, {name}!”)greet(”Python 学习者”)print(”\n=== 程序执行完毕 ===”)
示例 5:注释的规范使用
# 文件: comments.py# 演示注释的各种用法# ========================================# 文件头部注释:说明这个程序的作用# 程序名称:注释规范示例# 作者:程序员# 创建日期:2024-06-26# ========================================import math# 导入数学库# 这个函数计算圆的面积def calculate_circle_area(radius): ””” 计算圆形的面积 参数: radius (float): 圆的半径(米) 返回: float: 圆的面积(平方米) 示例: >>> calculate_circle_area(1) 3.141592653589793 ”””# 使用数学库的 pi 常量 area = math.pi * radius ** 2# 面积公式:πr² return area# 主程序入口if __name__ == ”__main__”:# 获取用户输入 r = float(input(”请输入圆的半径: ”))# TODO: 添加输入验证,确保半径是正数# FIXME: 如果用户输入负数,程序会有异常# 计算并输出结果 area = calculate_circle_area(r) print(f”半径为 {r} 米的圆,面积是 {area:.2f} 平方米”)# 注意事项:# 1. 函数应该有清晰的文档字符串# 2. 复杂的计算需要注释说明# 3. TODO 标记待完成的功能# 4. FIXME 标记需要修复的问题
示例 6:使用 IDLE 编辑器编写程序
# 文件: idle_edit.py# 这个程序演示在 IDLE 编辑器中编写的完整程序# 第一步:导入需要的模块import random# 随机数模块import time# 时间模块(用于延时)# 第二步:定义函数def roll_dice(): ”””模拟掷骰子””” return random.randint(1, 6)def play_game(): ”””玩简单的猜数字游戏””” print(”欢迎来到猜数字游戏!”) print(”我会掷一个骰子,你需要猜出结果是几。”) print(”你有 3 次机会。\n”)# 掷骰子 dice = roll_dice()# 给玩家 3 次猜测机会 for attempt in range(1, 4): print(f”\n第 {attempt} 次尝试:”)# 获取玩家输入 guess = int(input(”请输入 1-6 之间的数字: ”))# 检查猜测是否正确 if guess == dice: print(f”\n恭喜你!猜对了!答案就是 {dice}!”) return True elif guess < dice: print(”猜小了!”) else: print(”猜大了!”)# 只在前两次尝试后显示提示 if attempt < 3: time.sleep(1)# 暂停 1 秒# 3 次都没猜对 print(f”\n很遗憾,3 次机会用完了。正确答案是 {dice}。”) return Falsedef main(): ”””主函数”””# 游戏循环 play_again = True while play_again:# 玩一局游戏 play_game()# 询问是否再玩一局 print(”\n” + ”=” * 40) choice = input(”要再玩一次吗?(y/n): ”).lower()# y 继续玩,其他键退出 if choice != 'y': play_again = False print(”\n感谢游玩,再见!”)# 第三步:启动程序if __name__ == ”__main__”: main()
趣味练习
练习 1:创建你的名字艺术
编写一个程序,用字符拼接出一个创意的名字图案:
# 文件: name_art.pyprint(””” P Y TTTTT H H OOO N N P Y T H H O O NN N P P P Y T HHHHH O O N N N P P Y T H H O O N NN P P Y T H H OOO N N”””)print(”\n Python 编程 ”)print(” 从零开始 ”)print(” 逐步深入 ”)
任务:修改上面的代码,用自己的名字创建一个类似的字符画效果。
练习 2:交互式计算器
创建一个可以连续执行多个计算任务的计算器:
# 文件: interactive_calculator.pyprint(”=== 交互式计算器 ===”)print(”支持的运算:+、-、*、/”)print(”输入 'q' 退出程序\n”)while True:# 获取用户输入 expression = input(”请输入表达式(如 5 + 3): ”)# 检查是否要退出 if expression.lower() == 'q': print(”感谢使用,再见!”) break try:# 解析表达式(简单版本) parts = expression.split() if len(parts) == 3: num1 = float(parts[0]) operator = parts[1] num2 = float(parts[2])# 执行计算 if operator == '+': result = num1 + num2 elif operator == '-': result = num1 - num2 elif operator == '*': result = num1 * num2 elif operator == '/': if num2 != 0: result = num1 / num2 else: print(”错误:除数不能为零!”) continue else: print(”错误:不支持的运算符!”) continue print(f”结果: {result}\n”) else: print(”错误:请输入正确的表达式(如 5 + 3)\n”) except: print(”错误:请输入有效的数字\n”)
任务:运行程序,测试各种运算,找出程序的不足之处。
练习 3:故事生成器
创建一个可以根据用户输入生成有趣故事的程序:
# 文件: story_generator.pyprint(”=== 故事生成器 ===\n”)# 收集用户输入name = input(”主角的名字: ”)place = input(”发生的地点: ”)animal = input(”遇到的动物: ”)food = input(”最喜欢的食物: ”)action = input(”最喜欢做的事: ”)# 生成故事print(”\n” + ”=” * 50)print(”你的故事开始了!”)print(”=” * 50)story = f”””从前,在 {place} 有一个叫 {name} 的孩子。有一天,{name} 在去 {action} 的路上,遇到了一只奇怪的 {animal}。这只 {animal} 并不害怕人类,反而主动靠近 {name},似乎在寻找什么。经过一番交流,{name} 发现这只 {animal}竟然最喜欢的食物是 {food}!于是 {name} 分享了自己的 {food} 给它。从此,他们成了最好的朋友。每天,{name} 都会和这只 {animal} 一起去 {action},在 {place} 度过了许多快乐的时光。”””print(story)print(”=” * 50)print(”故事结束!”)
任务:完善这个故事,加入更多的情节转折和角色对话。
知识点总结
今天我们深入学习了:
- 注注的三种形式:单行(
#)、多行("""三引号""")、文档字符串
下节预告
在 Day 3 中,我们将学习 Python 的核心概念之一——变量与数据类型:
- Python 的基本数据类型:整数、浮点数、字符串、布尔值
准备好了吗?让我们继续深入理解 Python 的基础!