目录
第一章 Python基础
本章概要
本章将带你走进Python的世界,从零开始学习Python编程。我们将涵盖环境搭建、基本语法、变量和数据类型等核心概念,为你打下坚实的编程基础。
1.1 Python简介
1.1.1 什么是Python
Python是一种高级的、解释型的、通用的编程语言。它由Guido van Rossum于1991年创建,名称来源于英国喜剧团体Monty Python。
Python的设计哲学强调:
- 可读性 - 代码应该容易被人类阅读
- 简洁性 - 用一种明显的方式来做一件事
- 明确性 - 面对歧义,拒绝猜测的诱惑
1.1.2 Python的特点
- 解释型语言:不需要编译,直接运行
- 动态类型:变量类型在运行时确定
- 自动内存管理:内置垃圾回收机制
- 丰富的标准库:“内置电池”理念
- 跨平台:Windows、macOS、Linux均可运行
1.2 环境搭建
1.2.1 安装Python
Windows系统
1. 访问 https://www.python.org/downloads/ 2. 下载最新版本的Python安装程序 3. 运行安装程序,**勾选"Add Python to PATH"** 4. 点击"Install Now" 5. 安装完成后,打开命令提示符,输入:
python --version
应显示Python版本号,如“Python 3.10.0”。
macOS系统
macOS通常预装了Python 2.7。建议安装Python 3:
1. 使用Homebrew安装(推荐):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python
2. 或从官网下载安装程序
Linux系统
大多数Linux发行版都预装了Python。检查版本:
python3 --version
如未安装,使用包管理器安装:
# Ubuntu/Debian sudo apt-get update sudo apt-get install python3 python3-pip # CentOS/RHEL/Fedora sudo dnf install python3 python3-pip # Arch Linux sudo pacman -S python python-pip
1.2.2 验证安装
打开终端或命令提示符,输入:
python3 --version # Linux/macOS python --version # Windows
然后启动Python交互式解释器:
python3 # Linux/macOS python # Windows
看到“»>“提示符,表示进入了Python交互式环境:
>>> print("Hello, Python!") Hello, Python!
输入 ``exit()`` 或按 ``Ctrl+D`` (Linux/macOS) / ``Ctrl+Z`` (Windows) 退出。
1.2.3 安装IDE
PyCharm
PyCharm是JetBrains开发的专业Python IDE,分为社区版(免费)和专业版(付费)。
VS Code
Visual Studio Code是微软开发的轻量级代码编辑器,通过安装Python插件可获得良好的Python开发体验。
下载地址:https://code.visualstudio.com/
安装Python插件:
1. 打开VS Code 2. 点击左侧扩展图标 3. 搜索"Python" 4. 安装Microsoft官方Python扩展
1.3 第一个Python程序
1.3.1 交互式编程
打开Python解释器,直接输入代码:
>>> print("Hello, World!") Hello, World! >>> 2 + 3 5 >>> name = "Alice" >>> print(f"Hello, {name}!") Hello, Alice!
交互式环境适合快速测试代码片段。
1.3.2 脚本式编程
将代码保存到文件中,然后执行。
创建文件 ``hello.py``:
# hello.py print("Hello, World!") print("这是我的第一个Python程序")
运行程序:
python hello.py
1.3.3 程序结构
一个完整的Python程序通常包含:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 程序的文档字符串(docstring) 说明程序的功能和用法 """ # 导入模块 import os import sys # 定义常量 MAX_COUNT = 100 # 定义函数 def greet(name): """打招呼函数""" return f"Hello, {name}!" # 主程序入口 if __name__ == "__main__": print(greet("Python"))
1.4 Python基础语法
1.4.1 缩进
Python使用缩进来表示代码块,而不是大括号。这是Python最显著的特点之一。
# 正确示例 if True: print("条件为真") print("继续执行") # 错误示例 - 缩进不一致 if True: print("条件为真") print("缩进错误") # IndentationError
规范:
- 使用4个空格作为一级缩进
- 不要使用Tab键
- 同一代码块的缩进必须一致
1.4.2 注释
注释用于解释代码,不会被程序执行。
单行注释
使用 ``#`` 符号:
# 这是单行注释 x = 10 # 这也是注释
多行注释
使用三个引号:
""" 这是多行注释 可以写多行文字 通常用于文档字符串 """ ''' 也可以用单引号 效果相同 '''
1.4.3 行与缩进
Python语句通常一行写一条:
print("第一行") print("第二行")
使用反斜杠 ``\`` 实现多行语句:
total = item_one + \
item_two + \
item_three
在括号内可以直接换行:
total = (item_one + item_two + item_three)
一行写多条语句(不推荐):
import sys; x = 'foo'; sys.stdout.write(x + '\n')
1.4.4 标识符
标识符是变量、函数、类、模块等的名称。
命名规则:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 区分大小写
- 不能使用Python关键字
# 有效的标识符 my_variable private_var MAX_SIZE ClassName function_name _var2 # 无效的标识符 2var # 以数字开头 my-var # 包含连字符 my var # 包含空格 class # 关键字
命名规范(PEP 8):
- 变量名:小写,下划线分隔 ``my_variable``
- 常量名:大写,下划线分隔 ``MAX_SIZE``
- 类名:驼峰命名法 ``MyClass``
- 函数名:小写,下划线分隔 ``my_function``
- 私有变量:以下划线开头 ``_private``
- 强私有变量:以双下划线开头 ``__very_private``
1.4.5 关键字
Python有35个关键字,不能用作标识符:
import keyword print(keyword.kwlist) # ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', # 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', # 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', # 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', # 'while', 'with', 'yield']
1.5 变量
1.5.1 什么是变量
变量是存储数据的容器。在Python中,变量不需要声明类型,直接赋值即可创建。
# 创建变量 name = "Alice" age = 25 is_student = True # 使用变量 print(name) # Alice print(age) # 25
1.5.2 变量赋值
基本赋值
x = 10 y = 3.14 name = "Python"
多重赋值
# 同时为多个变量赋值 a = b = c = 0 # 序列解包 x, y, z = 1, 2, 3 # 交换变量 a, b = b, a
动态类型
Python是动态类型语言,变量类型可以随时改变:
x = 10 # x是整数 x = "hello" # x变成字符串 x = [1, 2, 3] # x变成列表
1.5.3 变量的内存管理
# 多个变量引用同一对象 a = [1, 2, 3] b = a b[0] = 100 print(a) # [100, 2, 3] - a也被修改了 # 使用id()查看内存地址 print(id(a)) print(id(b)) # 与a相同
1.6 数据类型
Python有以下几个基本数据类型:
1.6.1 数字(Numbers)
整数(int)
# 整数 x = 10 y = -5 z = 0 # 不同进制 binary = 0b1010 # 二进制,等于10 octal = 0o17 # 八进制,等于15 hexadecimal = 0xFF # 十六进制,等于255 # 大整数(Python 3自动支持) big_number = 12345678901234567890
浮点数(float)
pi = 3.14159 temperature = -20.5 scientific = 1.5e10 # 科学计数法,等于15000000000.0
复数(complex)
z = 3 + 4j print(z.real) # 3.0 print(z.imag) # 4.0
数字运算
# 基本运算 print(10 + 3) # 加法: 13 print(10 - 3) # 减法: 7 print(10 * 3) # 乘法: 30 print(10 / 3) # 除法: 3.333... print(10 // 3) # 整除: 3 print(10 % 3) # 取模: 1 print(10 ** 3) # 幂运算: 1000 # 复合赋值 x = 10 x += 5 # x = x + 5 x -= 3 # x = x - 3 x *= 2 # x = x * 2 x /= 4 # x = x / 4
1.6.2 字符串(String)
字符串是字符的序列,用单引号、双引号或三引号表示。
# 创建字符串 single = 'Hello' double = "World" multi_line = """ 这是一个 多行字符串 """ # 转义字符 path = "C:\\Users\\Name" # 反斜杠转义 quote = 'It\'s a book' # 单引号转义
字符串操作
# 拼接 s1 = "Hello" s2 = "World" print(s1 + " " + s2) # Hello World # 重复 print("Hi! " * 3) # Hi! Hi! Hi! # 索引和切片 text = "Python" print(text[0]) # P print(text[-1]) # n print(text[0:3]) # Pyt print(text[::2]) # Pto # 字符串方法 print(text.upper()) # PYTHON print(text.lower()) # python print(text.replace('P', 'J')) # Jython print(len(text)) # 6 print(text.find('th')) # 2
字符串格式化
name = "Alice" age = 25 # % 格式化(旧式) print("My name is %s, I'm %d years old." % (name, age)) # str.format() 方法 print("My name is {}, I'm {} years old.".format(name, age)) print("My name is {0}, I'm {1} years old.".format(name, age)) print("My name is {n}, I'm {a} years old.".format(n=name, a=age)) # f-string(推荐,Python 3.6+) print(f"My name is {name}, I'm {age} years old.") print(f"Next year I'll be {age + 1} years old.")
1.6.3 布尔类型(Boolean)
t = True f = False # 布尔运算 print(True and False) # False print(True or False) # True print(not True) # False # 比较运算 print(5 > 3) # True print(5 == 5) # True print(5 != 3) # True
1.6.4 空值(None)
value = None print(value) # None print(type(value)) # <class 'NoneType'> # 检查None if value is None: print("值为空")
1.6.5 类型转换
# 转整数 print(int("10")) # 10 print(int(3.14)) # 3 print(int("1010", 2)) # 10(二进制转十进制) # 转浮点数 print(float("3.14")) # 3.14 print(float(10)) # 10.0 # 转字符串 print(str(123)) # "123" print(str(3.14)) # "3.14" print(str(True)) # "True" # 转布尔 print(bool(1)) # True print(bool(0)) # False print(bool("")) # False print(bool("hello")) # True
1.7 输入输出
1.7.1 输出(print)
# 基本输出 print("Hello") # 输出多个值 print("Name:", "Alice", "Age:", 25) # 自定义分隔符 print("a", "b", "c", sep="-") # a-b-c # 自定义结束符 print("Hello", end=" ") print("World") # Hello World # 输出到文件 with open("output.txt", "w") as f: print("写入文件", file=f)
1.7.2 输入(input)
# 基本输入(返回字符串) name = input("请输入你的名字: ") print(f"你好, {name}!") # 输入数字 age = int(input("请输入你的年龄: ")) print(f"你明年就 {age + 1} 岁了") # 输入多个值 x, y = input("请输入两个数字,用空格分隔: ").split() x, y = int(x), int(y) print(f"和: {x + y}")
1.8 运算符
1.8.1 算术运算符
| 运算符 | 描述 | 示例 |
| ——–+——+—— | ||
| + | 加 | 5 + 3 = 8 |
| - | 减 | 5 - 3 = 2 |
| * | 乘 | 5 * 3 = 15 |
| / | 除 | 5 / 3 = 1.666… |
| | 整除 | 5 3 = 1 | ||
| % | 取模 | 5 % 3 = 2 |
| | 幂 | 5 3 = 125 |
1.8.2 比较运算符
| 运算符 | 描述 | 示例 |
| ——–+——+—— | ||
| == | 等于 | 5 == 5 → True |
| != | 不等于 | 5 != 3 → True |
| > | 大于 | 5 > 3 → True |
| < | 小于 | 5 < 3 → False |
| >= | 大于等于 | 5 >= 5 → True |
| ⇐ | 小于等于 | 5 ⇐ 3 → False |
1.8.3 赋值运算符
| 运算符 | 描述 | 等效于 |
| ——–+——+——– | ||
| = | 赋值 | x = 5 |
| += | 加赋值 | x += 5 → x = x + 5 |
| -= | 减赋值 | x -= 5 → x = x - 5 |
| *= | 乘赋值 | x *= 5 → x = x * 5 |
| /= | 除赋值 | x /= 5 → x = x / 5 |
minutes = (total_seconds % 3600) 60 seconds = total_seconds % 60 print(f“{total_seconds}秒 = {hours}小时 {minutes}分钟 {seconds}秒”) print(f“格式化输出: {hours:02d}:{minutes:02d}:{seconds:02d}”) </code> ===== 本章小结 ===== 本章学习了Python编程的基础知识: * 环境搭建 - 安装Python和IDE * 基本语法 - 缩进、注释、标识符 * 变量 - 动态类型、多重赋值 * 数据类型 - 数字、字符串、布尔值、None * 运算符 - 算术、比较、逻辑、位、成员、身份运算符 * 输入输出 - print()和input() 掌握这些基础知识后,你已经可以编写简单的Python程序了。继续学习下一章,了解Python的控制流语句。 ===== 进一步阅读 ===== * Python官方教程 - 简介 * PEP 8 - Python代码风格指南 * PEP 20 - Python之禅
