第1章:起步(Getting Started)
一、导读
1.1 本章学习目标
第1章是《Python编程:从入门到实践》的开篇之作,它将带你完成Python开发环境的搭建,并运行你的第一个Python程序。Python以简洁、优雅的语法著称,是目前最受欢迎的编程语言之一。本章的核心学习目标包括:
- 了解Python的发展历史和特点:Python是谁创造的?为什么它如此流行?
- 掌握Python的安装和环境配置:如何在你的系统上安装Python?
- 学会使用Python交互式解释器:如何在终端中直接运行Python代码?
- 编写和运行第一个Python脚本:如何创建
.py文件并执行它? - 理解Python的缩进规则:Python用缩进而非花括号来定义代码块
- 选择合适的开发工具:VS Code、PyCharm等IDE各有什么特点?
1.2 为什么第一章如此重要
万事开头难,但Python的开头特别简单。本章的价值在于让你快速建立起对Python的第一印象:这门语言到底有多简洁?开发环境如何搭建?第一个程序如何运行?这些基础问题解决了,后续学习才能顺畅。
Python的设计哲学强调代码的可读性和简洁性。正如"Python之禅"所说:"Beautiful is better than ugly. Simple is better than complex."(优美胜于丑陋,简洁胜于复杂)。这种设计哲学使得Python成为入门编程的理想选择,同时也是专业开发者的得力工具。
1.3 核心问题引导
在阅读本章时,请带着以下问题思考:
Python 2和Python 3有什么区别?为什么应该选择Python 3?
Python是解释型语言还是编译型语言?它的执行方式和C++有什么不同?
什么是REPL(读取-求值-打印循环)?交互式解释器有什么优势?
Python的缩进规则为什么如此重要?它和C/Java的花括号有什么区别?
虚拟环境(virtual environment)是什么?为什么需要它?
PEP 8代码风格指南包含哪些核心规则?
二、核心概念详解
2.1 Python简介
Python由Guido van Rossum于1989年圣诞节期间开始开发,1991年发布第一个版本。Python的名字来源于英国喜剧团体"Monty Python",而非蟒蛇。
Python的核心特点:
- 简洁易读:Python的语法接近自然语言,代码即文档
- 解释型语言:不需要编译,直接运行
- 动态类型:变量不需要声明类型
- 丰富的标准库: batteries included(自带电池)
- 跨平台:Windows、macOS、Linux通用
- 广泛的应用领域:Web开发、数据科学、人工智能、自动化脚本、科学计算
Python的版本选择非常重要。目前Python 2已于2020年停止维护,所有新项目都应该使用Python 3。截至本书出版时,Python 3.12是最新的稳定版本。
2.2 Python环境搭建
2.2.1 安装Python
在Windows上,从 python.org 下载安装程序,安装时务必勾选"Add Python to PATH"选项。在macOS上,可以使用Homebrew安装:
brew install python在Linux上,大多数发行版已经预装了Python 3:
sudo apt update
sudo apt install python3 python3-pip2.2.2 验证安装
安装完成后,在终端中验证:
python3 --version
# 输出:Python 3.12.x2.2.3 交互式解释器
Python的交互式解释器(REPL)是学习和测试代码的利器。在终端中输入 python3 即可进入:
>>> 2 + 3
5
>>> print("Hello, World!")
Hello, World!
>>> name = "Python"
>>> print(f"Hello, {name}!")
Hello, Python!
>>> exit()交互式解释器的优势在于即时反馈:你输入一行代码,Python立即执行并显示结果。这对于学习语法、测试小段代码非常方便。
2.3 第一个Python程序
2.3.1 Hello World
创建文件 hello.py:
print("Hello, World!")运行:
python3 hello.py就这么简单!对比C++的Hello World程序,Python只需要一行代码。这就是Python简洁性的体现。
2.3.2 变量和基本运算
# 变量不需要声明类型
message = "Hello, Python!"
print(message)
# 数字运算
x = 10
y = 3
print(x + y) # 加法:13
print(x / y) # 除法:3.333...
print(x // y) # 整除:3
print(x % y) # 取余:1
print(x ** y) # 幂运算:1000
# 字符串操作
name = "Alice"
age = 20
print(f"My name is {name} and I am {age} years old.")2.3.3 多行输出和格式化
# 多行输出
print("Line 1")
print("Line 2")
print("Line 3")
# 使用换行符
print("Line 1\nLine 2\nLine 3")
# 使用制表符
print("Name\tAge\tCity")
print("Alice\t20\tBeijing")
print("Bob\t25\tShanghai")2.4 Python的代码风格
2.4.1 缩进规则
Python使用缩进来定义代码块,而不是像C/Java那样使用花括号。这是Python语法的核心特点之一。标准缩进是4个空格。
# 正确的缩进
if True:
print("This is indented")
print("This too")
print("This is not indented")
# 错误的缩进会导致 IndentationError
# if True:
# print("Wrong!") # IndentationError2.4.2 注释
# 这是单行注释
"""
这是多行注释
(实际上是字符串字面量)
可以跨越多行
"""
x = 42 # 行尾注释2.4.3 PEP 8代码风格指南
PEP 8是Python官方推荐的代码风格指南,核心规则包括:
- 使用4个空格缩进
- 每行代码不超过79个字符
- 函数和类之间空两行
- 方法之间空一行
- 导入放在文件顶部
- 使用有意义的变量名
- 函数和变量名使用小写字母和下划线(snake_case)
- 类名使用驼峰命名法(CamelCase)
2.5 开发工具选择
2.5.1 VS Code
Visual Studio Code是微软开发的免费编辑器,通过Python扩展可以提供强大的开发体验:
- 智能代码补全(IntelliSense)
- 代码格式化(Black、autopep8)
- 调试支持
- 集成终端
- Git集成
2.5.2 PyCharm
PyCharm是JetBrains开发的Python专用IDE,分为免费的Community版和付费的Professional版。它提供了开箱即用的Python开发环境,包括代码分析、重构、数据库工具等。
2.5.3 Jupyter Notebook
Jupyter Notebook是数据科学领域最受欢迎的工具,它允许你在浏览器中创建包含代码、文本和可视化的笔记本。非常适合数据分析和教学。
2.6 Python的执行模型
Python是解释型语言,代码的执行方式与C/C++有本质区别:
源代码(.py文件)
↓
Python解释器读取源代码
↓
编译为字节码(.pyc文件,自动管理)
↓
Python虚拟机(PVM)逐行执行字节码这种执行模型意味着:
- 不需要显式编译步骤
- 跨平台性好(只要有Python解释器)
- 运行速度比编译型语言慢(但有C扩展等优化手段)
- 开发效率高,适合快速原型开发
三、实战案例
3.1 简单的个人信息程序
# 收集并展示用户信息
print("=== Personal Info ===")
name = input("Enter your name: ")
age = input("Enter your age: ")
city = input("Enter your city: ")
print(f"\n--- Summary ---")
print(f"Name: {name}")
print(f"Age: {age}")
print(f"City: {city}")
print(f"Next year, {name} will be {int(age) + 1} years old!")运行效果:
=== Personal Info ===
Enter your name: Alice
Enter your age: 20
Enter your city: Beijing
--- Summary ---
Name: Alice
Age: 20
City: Beijing
Next year, Alice will be 21 years old!3.2 简单的数学练习程序
import random
print("=== Math Practice ===")
print("Solve the following problems:\n")
score = 0
total = 5
for i in range(total):
a = random.randint(1, 20)
b = random.randint(1, 20)
answer = int(input(f"Question {i+1}: {a} + {b} = "))
if answer == a + b:
print("Correct!\n")
score += 1
else:
print(f"Wrong! The answer is {a + b}\n")
print(f"Game Over! Your score: {score}/{total}")
if score == total:
print("Perfect! You're a math genius!")
elif score >= 3:
print("Good job! Keep practicing!")
else:
print("Don't give up! Practice makes perfect!")3.3 文件操作入门
# 写入文件
with open("notes.txt", "w") as file:
file.write("My Python Notes\n")
file.write("=" * 30 + "\n")
file.write("1. Python uses indentation\n")
file.write("2. Variables are dynamic\n")
file.write("3. Lists are versatile\n")
# 读取文件
with open("notes.txt", "r") as file:
content = file.read()
print(content)四、本章小结
第1章完成了Python开发环境的搭建,并运行了第一个程序:
Python的特点:简洁、易读、解释型、动态类型、丰富的标准库。Python的设计哲学强调代码可读性和简洁性。
环境搭建:安装Python 3,配置PATH环境变量,选择合适的IDE。
交互式解释器:Python的REPL是学习和测试代码的利器,可以即时看到代码执行结果。
代码风格:Python使用缩进定义代码块,遵循PEP 8规范可以写出更可读的代码。
执行模型:Python是解释型语言,源代码先编译为字节码,再由Python虚拟机执行。
本章最重要的启示是:Python的简洁性不是偶然的设计,而是刻意的哲学选择。"Readability counts"(可读性很重要)是Python之禅的核心原则之一。在后续的学习中,你会发现Python的这种设计让程序员能够专注于解决问题,而不是和语法搏斗。
五、思考与练习
思考题
Python是解释型语言还是编译型语言?为什么说这个问题没有简单的答案?
为什么Python使用缩进而非花括号来定义代码块?这种设计有什么优缺点?
print(f"Hello, {name}") 中的 f 前缀是什么意思?这种字符串格式化方式有什么优势?
Python的变量和C++的变量有什么本质区别?
为什么Python社区强调"Pythonic"的写法?什么是Pythonic?
编程练习
编写一个程序,让用户输入名和姓,然后输出格式化后的完整姓名和姓名长度。
编写一个程序,让用户输入一个温度值(摄氏度或华氏度),然后转换为另一种单位输出。
编写一个程序,读取一个文本文件,统计其中的行数、单词数和字符数。