Python 基本语法指南

目录

  1. 基本概念
  2. 变量与数据类型
  3. 运算符
  4. 控制结构
  5. 数据结构
  6. 函数
  7. 模块与包
  8. 面向对象编程
  9. 文件操作
  10. 异常处理

基本概念

注释

# 单行注释

"""
多行注释
可以写多行内容
"""

'''
也可以用单引号
'''

缩进

if True:
    print("缩进很重要")
    print("必须保持一致的缩进")

变量与数据类型

变量定义

# 变量不需要声明类型
name = "张三"
age = 25
height = 1.75
is_student = True

基本数据类型

# 数字类型
integer_num = 10          # 整数
float_num = 3.14          # 浮点数
complex_num = 1 + 2j      # 复数

# 字符串
string = "Hello"
string2 = 'World'
string3 = """多行字符串"""

# 布尔值
boolean = True
boolean2 = False

# None类型
none_value = None

运算符

算术运算符

# 基本运算符
a = 10
b = 3
print(a + b)  # 加法
print(a - b)  # 减法
print(a * b)  # 乘法
print(a / b)  # 除法
print(a // b) # 整除
print(a % b)  # 取余
print(a ** b) # 幂运算

比较运算符

# 比较运算符
a = 10
b = 20
print(a == b)  # 等于
print(a != b)  # 不等于
print(a > b)   # 大于
print(a < b)   # 小于
print(a >= b)  # 大于等于
print(a <= b)  # 小于等于

逻辑运算符

# 逻辑运算符
a = True
b = False
print(a and b)  # 与
print(a or b)   # 或
print(not a)    # 非

控制结构

条件语句

# if语句
score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
else:
    print("需要努力")

# 嵌套条件
age = 20
if age >= 18:
    if age >= 60:
        print("退休年龄")
    else:
        print("成年人")

循环语句

# for循环
for i in range(5):
    print(i)

# while循环
count = 0
while count < 5:
    print(count)
    count += 1

# break和continue
for i in range(10):
    if i == 5:
        break  # 跳出循环
    if i % 2 == 0:
        continue  # 跳过当前迭代
    print(i)

数据结构

列表(List)

# 创建列表
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]

# 访问元素
print(fruits[0])     # 第一个元素
print(fruits[-1])    # 最后一个元素

# 列表操作
fruits.append("葡萄")        # 添加元素
fruits.remove("香蕉")        # 删除元素
print(len(fruits))          # 获取长度
print(fruits[1:3])          # 切片操作

元组(Tuple)

# 创建元组
coordinates = (10, 20)
rgb_color = (255, 128, 0)

# 元组特性(不可变)
# coordinates[0] = 15  # 这会报错

字典(Dictionary)

# 创建字典
person = {
    "name": "张三",
    "age": 25,
    "city": "北京"
}

# 访问和修改
print(person["name"])     # 张三
person["age"] = 26        # 修改值

# 字典方法
keys = person.keys()      # 获取键
values = person.values()  # 获取值
items = person.items()    # 获取键值对

集合(Set)

# 创建集合
unique_numbers = {1, 2, 3, 4, 5}
colors = {"红色", "蓝色", "绿色"}

# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2)  # 交集: {3}
print(set1 | set2)  # 并集: {1, 2, 3, 4, 5}

# 集合操作
unique_numbers.add(6)    # 添加元素
unique_numbers.remove(3) # 删除元素

函数

定义函数

# 基本函数
def greet(name):
    return f"你好, {name}!"

# 带默认参数的函数
def introduce(name, age=18):
    return f"我是{name}, 今年{age}岁"

# 可变参数函数
def sum_all(*numbers):
    total = 0
    for num in numbers:
        total += num
    return total

# 关键字参数
def create_profile(**info):
    return info

# 调用函数
print(greet("李四"))
print(introduce("王五"))
print(sum_all(1, 2, 3, 4))
print(create_profile(name="赵六", age=20, city="上海"))

Lambda 函数

# 简单的匿名函数
square = lambda x: x ** 2
print(square(5))  # 输出: 25

# 常用于高阶函数
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # 输出: [1, 4, 9, 16, 25]

模块与包

导入模块

# 导入整个模块
import math
print(math.sqrt(16))

# 导入特定函数
from math import sqrt, pi
print(sqrt(16))
print(pi)

# 导入所有函数(不推荐)
from math import *

# 重命名导入
import numpy as np

创建自己的模块

# my_module.py
def hello():
    return "Hello from module!"

def add(a, b):
    return a + b

# main.py
import my_module
print(my_module.hello())

面向对象编程

类的定义

class Person:
    # 类变量
    species = "人类"
  
    # 构造函数
    def __init__(self, name, age):
        self.name = name  # 实例变量
        self.age = age
  
    # 方法
    def introduce(self):
        return f"我是{self.name},今年{self.age}岁"
  
    def __str__(self):
        return f"Person(name='{self.name}', age={self.age})"

# 创建对象
person1 = Person("张三", 25)
person2 = Person("李四", 30)

print(person1.introduce())
print(str(person1))

继承

class Student(Person):
    def __init__(self, name, age, school):
        super().__init__(name, age)  # 调用父类构造函数
        self.school = school
  
    def study(self):
        return f"{self.name}正在{self.school}学习"

student = Student("王五", 20, "大学")
print(student.introduce())
print(student.study())

文件操作

读取文件

# 读取整个文件
with open('file.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

# 逐行读取
with open('file.txt', 'r', encoding='utf-8') as file:
    for line in file:
        print(line.strip())  # strip()去除换行符

# 读取所有行
with open('file.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()

写入文件

# 写入文本
with open('output.txt', 'w', encoding='utf-8') as file:
    file.write("Hello World!\n")
    file.write("这是第二行\n")

# 追加写入
with open('output.txt', 'a', encoding='utf-8') as file:
    file.write("追加的内容\n")

异常处理

基本异常处理

try:
    number = int(input("请输入一个数字: "))
    result = 10 / number
    print(f"结果是: {result}")
except ValueError:
    print("输入的不是有效数字!")
except ZeroDivisionError:
    print("不能除以零!")
except Exception as e:
    print(f"发生错误: {e}")
else:
    print("没有发生异常")
finally:
    print("总是会执行的代码")

自定义异常

class CustomError(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(self.message)

def divide(a, b):
    if b == 0:
        raise CustomError("除数不能为零!")
    return a / b

try:
    result = divide(10, 0)
except CustomError as e:
    print(f"自定义错误: {e}")

Python 特性小结

列表推导式

# 简单列表推导式
squares = [x**2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]

# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]

字典推导式

# 字典推导式
squares_dict = {x: x**2 for x in range(5)}
print(squares_dict)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

集合推导式

# 集合推导式
unique_chars = {char for char in "hello"}
print(unique_chars)  # {'e', 'h', 'o', 'l'}

常用内置函数

数值函数

# 数值相关函数
numbers = [1, 2, 3, 4, 5]
print(max(numbers))   # 最大值
print(min(numbers))   # 最小值
print(sum(numbers))   # 求和
print(abs(-5))        # 绝对值
print(round(3.14159, 2))  # 四舍五入

序列函数

# 序列相关函数
fruits = ["苹果", "香蕉", "橙子"]
print(len(fruits))      # 长度
print(sorted(fruits))   # 排序
print(reversed(fruits)) # 反转

类型转换函数

# 类型转换
num_str = "123"
num_int = int(num_str)
num_float = float("3.14")

str_list = ["1", "2", "3"]
int_list = [int(x) for x in str_list]

print(type(num_int))   # <class 'int'>
print(type(str_list))  # <class 'list'>

实用技巧

字符串操作

# 字符串常用方法
text = "Hello World"
print(text.upper())        # 转大写
print(text.lower())        # 转小写
print(text.strip())        # 去除空白
print(text.replace("World", "Python"))  # 替换
print(text.split(" "))     # 分割

列表操作技巧

# 列表常用操作
numbers = [1, 2, 3, 4, 5]

# 复制列表
copy_numbers = numbers.copy()
copy_numbers = numbers[:]  # 切片复制

# 扩展列表
numbers.extend([6, 7])
numbers += [8, 9]  # 等价于extend

# 查找元素
index = numbers.index(3)  # 获取索引
count = numbers.count(3)  # 计数

文件处理最佳实践

# 安全的文件读取
def read_file_safe(filename):
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            return file.read()
    except FileNotFoundError:
        print(f"文件 {filename} 不存在")
        return None
    except Exception as e:
        print(f"读取文件时出错: {e}")
        return None

# 转换为列表
def read_file_lines(filename):
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            return [line.strip() for line in file.readlines()]
    except Exception as e:
        print(f"读取文件时出错: {e}")
        return []

这个完整的Python教程涵盖了编程的基础知识和进阶用法,适合初学者快速入门和进阶学习。通过实践这些代码示例,可以更好地理解和掌握Python编程的各个方面。