Python简介
Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它具有简洁易读的语法,强大的社区支持和丰富的库,广泛应用于Web开发、数据分析、人工智能、科学计算等领域。
特点
- 易学易用:直观的语法,适合初学者。
- 跨平台:可以在多种操作系统上运行。
- 丰富的库:包括数据科学、Web开发、图像处理等多种库。
免费GPT工具
- https://ai-to.cn/url/?u=kimi
- https://turbodesk.xfyun.cn/home?channelid=gj3
- https://ibiling.cn/?from=tomyres
环境搭建
1. 安装Python
从Python官网下载并安装最新版本。
2. 配置IDE
推荐使用以下IDE:
- PyCharm:功能强大,适合大型项目。
- VSCode:轻量级,扩展丰富。
- Jupyter Notebook:适合数据分析和可视化。
3. 创建虚拟环境
使用venv
创建独立的开发环境,避免库冲突。
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows
myenv\Scripts\activate
# Mac/Linux
source myenv/bin/activate
基础语法
数据类型
- 数字:整数(
int
)、浮点数(float
)、复数(complex
) - 字符串:字符序列,支持多种操作
- 布尔:
True
或False
# 示例
int_var = 42
float_var = 3.14
complex_var = 1 + 2j
string_var = "Hello, Python!"
bool_var = True
变量
Python中的变量不需要声明,直接赋值即可。命名规则:字母、数字、下划线组成,不能以数字开头。
name = "Alice"
age = 30
运算符
- 算术运算符:
+
,-
,*
,/
,//
,%
,**
- 比较运算符:
==
,!=
,>
,<
,>=
,<=
- 逻辑运算符:
and
,or
,not
result = (5 > 3) and (10 < 15) # True
控制结构
- 条件语句:
if age >= 18:print("Adult")
elif age >= 13:print("Teenager")
else:print("Child")
- 循环结构:
for i in range(5):print(i)while age > 0:age -= 1
函数
使用def
定义函数,支持参数和返回值。
def greet(name):return f"Hello, {name}!"message = greet("Alice")
注释
使用#
进行单行注释,使用'''
或"""
进行多行注释。
# 这是一个单行注释"""
这是一个多行注释
可以写很多内容
"""
数据结构
列表
列表是可变的序列,可以存储多个元素,并支持索引。
fruits = ['apple', 'banana', 'cherry']
fruits.append('orange') # 添加元素
print(fruits[1]) # 输出: banana
元组
元组是不可变的序列,使用小括号。
coordinates = (10.0, 20.0)
print(coordinates[0]) # 输出: 10.0
集合
集合是无序且不重复的元素集合。
unique_numbers = {1, 2, 3, 3} # {1, 2, 3}
unique_numbers.add(4) # 添加元素
字典
字典是键值对的数据结构,支持快速查找。
person = {"name": "Alice", "age": 30}
print(person["name"]) # 输出: Alice
遍历数据结构
使用for
循环遍历列表、元组、字典和集合。
# 遍历列表
for fruit in fruits:print(fruit)# 遍历字典
for key, value in person.items():print(key, value)
模块与包
自定义模块
创建.py文件作为模块,使用import
导入。
# my_module.py
def hello():return "Hello, World!"# main.py
import my_module
print(my_module.hello())
标准库
Python内置了丰富的标准库,如math
、os
、sys
等。
import math
print(math.sqrt(16)) # 输出: 4.0
文件操作
读写文本文件
# 写入文件
with open('file.txt', 'w') as f:f.write("Hello, World!\n")# 读取文件
with open('file.txt', 'r') as f:content = f.read()print(content)
读写CSV文件
使用csv
模块处理CSV文件。
import csv# 写入CSV文件
with open('data.csv', 'w', newline='') as csvfile:writer = csv.writer(csvfile)writer.writerow(['Name', 'Age'])writer.writerow(['Alice', 30])writer.writerow(['Bob', 25])# 读取CSV文件
with open('data.csv', 'r') as csvfile:reader = csv.reader(csvfile)for row in reader:print(row)
读写JSON文件
使用json
模块处理JSON格式的数据。
import json# 写入JSON文件
data = {"name": "Alice", "age": 30}
with open('data.json', 'w') as jsonfile:json.dump(data, jsonfile)# 读取JSON文件
with open('data.json', 'r') as jsonfile:loaded_data = json.load(jsonfile)print(loaded_data)
异常处理
使用try
和except
进行异常处理,确保代码的健壮性。
try:result = 10 / 0
except ZeroDivisionError as e:print(f"Error occurred: {e}")
finally:print("Execution completed.")
面向对象编程
类与对象
Python支持面向对象编程,可以创建类和实例化对象。
class Dog:def __init__(self, name):self.name = name # 实例属性def bark(self):return f"{self.name} says woof!"dog = Dog("Buddy")
print(dog.bark()) # 输出: Buddy says woof!
构造方法
__init__
是构造方法,用于初始化对象属性。
class Person:def __init__(self, name, age):self.name = nameself.age = agejohn = Person("John", 25)
print(john.name, john.age) # 输出: John 25
继承
支持类的继承,可以重用和扩展已有的类。
class Animal:def speak(self):return "Animal speaks"class Cat(Animal):def speak(self):return "Meow"cat = Cat()
print(cat.speak()) # 输出: Meow
多态
通过父类引用调用子类的方法,实现多态性。
def make_sound(animal):print(animal.speak())make_sound(dog) # 输出: Buddy says woof!
make_sound(cat) # 输出: Meow
私有属性与方法
使用双下划线前缀定义私有属性和方法。
class Account:def __init__(self, balance):self.__balance = balance # 私有属性def __private_method(self): # 私有方法return "This is a private method."def get_balance(self):return self.__balanceaccount = Account(1000)
print(account.get_balance()) # 输出: 1000
# print(account.__private_method()) # 会报错
函数式编程
匿名函数
使用lambda
关键字创建匿名函数。
add = lambda x, y: x + y
print(add(5, 3)) # 输出: 8
高阶函数
接受函数作为参数或返回一个函数。
def apply_function(func, x, y):return func(x, y)result = apply_function(add, 5, 3) # 输出: 8
map、filter 和 reduce
map
:对可迭代对象的每个元素应用函数。filter
:过滤可迭代对象中的元素。reduce
:对可迭代对象中的元素进行累积计算(需导入functools
模块)。
from functools import reducenumbers = [1, 2, 3, 4, 5]# 使用map
squared = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25]# 使用filter
even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]# 使用reduce
sum_result = reduce(lambda x, y: x + y, numbers) # 15
常用标准库
- os:与操作系统交互。
- sys:与Python解释器交互。
- datetime:处理日期和时间。
- math:数学运算。
- random:生成随机数。
- re:正则表达式处理。
- requests:发送HTTP请求。
第三方库
- requests:简化HTTP请求。
- numpy:高效数组计算。
- pandas:数据分析与处理。
- matplotlib:数据可视化。
安装第三方库:
pip install requests
常见问题与解决
- 找不到模块:确保已安装并激活虚拟环境。
- 版本冲突:检查库的版本要求,使用
pip install
指定版本。 - 语法错误:仔细检查代码中的拼写和缩进。
- 运行时错误:使用
try...except
捕捉并处理异常。
学习资源
- Python官方文档
- LeetCode - 编程练习
- Coursera - 在线课程
- Codecademy - 交互式学习平台
- Kaggle - 数据科学与机器学习竞赛平台
- YouTube - 查找Python学习相关视频教程
希望这份详细的Python3自学笔记能帮助你更好地学习和掌握Python编程!如果有任何问题,欢迎随时提问。