目录
Python简介
Python是一种高级、解释型、通用型编程语言,由Guido van Rossum于1991年首次发布。Python强调代码的可读性和简洁性,使用缩进来划分代码块,而不是像许多其他编程语言那样使用大括号或关键字。
Python的特点
- 易学易用:Python的语法简单明了,适合初学者。
- 可读性强:Python代码易于阅读和理解。
- 跨平台:Python可以在Windows、macOS、Linux等多种操作系统上运行。
- 丰富的库:Python拥有大量的标准库和第三方库,可以实现各种功能。
- 应用广泛:从Web开发、数据分析、人工智能到自动化脚本,Python都有广泛应用。
Python 2 vs Python 3
Python有两个主要版本:Python 2和Python 3。Python 2已于2020年1月1日停止维护,所以本指南将专注于Python 3。
Python环境搭建
下载与安装
- 访问Python官网(python.org)。
- 下载适合您操作系统的Python 3最新版本。
- 运行安装程序,并勾选"Add Python to PATH"选项。
- 完成安装后,打开命令行/终端,输入
python --version
或python3 --version
来验证安装是否成功。
集成开发环境(IDE)
虽然可以使用简单的文本编辑器编写Python代码,但使用IDE可以提高开发效率。以下是一些流行的Python IDE:
- PyCharm:功能全面的专业IDE。
- Visual Studio Code:轻量级编辑器,配合Python扩展使用。
- Jupyter Notebook:适合数据分析和科学计算的交互式环境。
- IDLE:Python自带的简单IDE。
基础语法
Python程序结构
Python程序由模块、语句、表达式和对象组成。
- 模块:Python文件,以
.py
为扩展名。 - 语句:完成特定任务的代码行。
- 表达式:产生某个值的代码。
- 对象:Python中的数据和功能的基本单位。
缩进
Python使用缩进来表示代码块,通常使用4个空格。缩进不正确会导致语法错误。
# 正确的缩进
if True:
print("这是正确的缩进")
print("这也是正确的缩进")
# 错误的缩进
if True:
print("这是正确的缩进")
print("这是错误的缩进") # 会导致IndentationError
注释
Python支持单行注释和多行注释。
# 这是单行注释
"""
这是多行注释
可以跨越多行
通常用作文档字符串(docstring)
"""
数据类型
Python有几种内置的数据类型,包括数字、字符串、列表、元组、字典和集合。
数字
Python支持整数、浮点数和复数。
# 整数
a = 10
# 浮点数
b = 3.14
# 复数
c = 1 + 2j
# 数学运算
print(a + b) # 13.14
print(a * b) # 31.4
print(a / 3) # 3.3333...
print(a // 3) # 3(整除)
print(a % 3) # 1(取余)
print(a ** 2) # 100(幂运算)
字符串
字符串是由一系列字符组成的不可变序列。
# 字符串定义
s1 = 'Hello'
s2 = "World"
s3 = '''这是一个
多行字符串'''
# 字符串操作
print(s1 + " " + s2) # Hello World(连接)
print(s1 * 3) # HelloHelloHello(重复)
print(len(s1)) # 5(长度)
print(s1[0]) # H(索引)
print(s1[1:3]) # el(切片)
# 字符串方法
print(s1.upper()) # HELLO(转大写)
print(s1.lower()) # hello(转小写)
print(" hello ".strip()) # hello(去除前后空格)
print("hello world".split()) # ['hello', 'world'](分割)
print("hello".replace("h", "H")) # Hello(替换)
列表
列表是可变的有序序列,可以包含不同类型的元素。
# 列表定义
fruits = ['apple', 'banana', 'orange']
mixed = [1, 'hello', 3.14, [1, 2, 3]]
# 列表操作
print(fruits[0]) # apple(索引)
print(fruits[-1]) # orange(负索引,从末尾开始)
print(fruits[1:]) # ['banana', 'orange'](切片)
fruits.append('grape') # 添加元素
print(fruits) # ['apple', 'banana', 'orange', 'grape']
fruits.insert(1, 'pear') # 在指定位置插入元素
print(fruits) # ['apple', 'pear', 'banana', 'orange', 'grape']
fruits.pop() # 删除并返回最后一个元素
print(fruits) # ['apple', 'pear', 'banana', 'orange']
fruits.remove('pear') # 删除指定元素
print(fruits) # ['apple', 'banana', 'orange']
print(len(fruits)) # 3(长度)
元组
元组是不可变的有序序列,定义后不能修改。
# 元组定义
coordinates = (10, 20)
person = ('Alice', 25, 'Engineer')
# 元组操作
print(coordinates[0]) # 10(索引)
print(person[1:]) # (25, 'Engineer')(切片)
print(len(person)) # 3(长度)
# 元组解包
name, age, job = person
print(name, age, job) # Alice 25 Engineer
# 尝试修改元组会导致错误
# coordinates[0] = 30 # TypeError: 'tuple' object does not support item assignment
字典
字典是无序的键值对集合,键必须是不可变类型。
# 字典定义
student = {'name': 'Alice', 'age': 20, 'grade': 'A'}
empty_dict = {}
# 字典操作
print(student['name']) # Alice(通过键访问值)
student['gender'] = 'Female' # 添加新键值对
print(student) # {'name': 'Alice', 'age': 20, 'grade': 'A', 'gender': 'Female'}
student['age'] = 21 # 修改值
print(student) # {'name': 'Alice', 'age': 21, 'grade': 'A', 'gender': 'Female'}
student.pop('grade') # 删除键值对
print(student) # {'name': 'Alice', 'age': 21, 'gender': 'Female'}
print('name' in student) # True(检查键是否存在)
print(student.get('height', 'Not found')) # Not found(安全地获取值,键不存在时返回默认值)
print(student.keys()) # dict_keys(['name', 'age', 'gender'])(所有键)
print(student.values()) # dict_values(['Alice', 21, 'Female'])(所有值)
print(student.items()) # dict_items([('name', 'Alice'), ('age', 21), ('gender', 'Female')])(所有键值对)
集合
集合是无序的不重复元素集合。
# 集合定义
fruits = {'apple', 'banana', 'orange'}
numbers = set([1, 2, 3, 2, 1]) # 使用列表创建集合,重复元素会被自动去除
# 集合操作
print(numbers) # {1, 2, 3}(自动去除重复元素)
fruits.add('grape') # 添加元素
print(fruits) # {'apple', 'banana', 'orange', 'grape'}
fruits.remove('banana') # 删除元素
print(fruits) # {'apple', 'orange', 'grape'}
print('apple' in fruits) # True(检查元素是否存在)
# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # {1, 2, 3, 4, 5}(并集)
print(set1 & set2) # {3}(交集)
print(set1 - set2) # {1, 2}(差集)
print(set1 ^ set2) # {1, 2, 4, 5}(对称差集)
变量与运算符
变量
Python中的变量不需要声明,赋值时自动创建。变量名区分大小写,应以字母或下划线开头,可以包含字母、数字和下划线。
# 变量赋值
x = 10
name = "Alice"
is_valid = True
# 多重赋值
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3
# 交换变量值
a, b = b, a
print(a, b) # 2 1
命名规则
- 变量名只能包含字母、数字和下划线,不能以数字开头。
- 关键字不能用作变量名。
- 驼峰命名法(camelCase&#x