目录

第一章 Python基础

本章概要

本章将带你走进Python的世界,从零开始学习Python编程。我们将涵盖环境搭建、基本语法、变量和数据类型等核心概念,为你打下坚实的编程基础。

1.1 Python简介

1.1.1 什么是Python

Python是一种高级的、解释型的、通用的编程语言。它由Guido van Rossum于1991年创建,名称来源于英国喜剧团体Monty Python。

Python的设计哲学强调:

1.1.2 Python的特点

  1. 解释型语言:不需要编译,直接运行
  2. 动态类型:变量类型在运行时确定
  3. 自动内存管理:内置垃圾回收机制
  4. 丰富的标准库:“内置电池”理念
  5. 跨平台: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,分为社区版(免费)和专业版(付费)。

下载地址:https://www.jetbrains.com/pycharm/download/

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

规范:

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 标识符

标识符是变量、函数、类、模块等的名称。

命名规则:

# 有效的标识符
my_variable
private_var
MAX_SIZE
ClassName
function_name
_var2
 
# 无效的标识符
2var      # 以数字开头
my-var    # 包含连字符
my var    # 包含空格
class     # 关键字

命名规范(PEP 8):

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之禅