Python入门学习
一、学习目标
掌握Python基础编程知识,能够使用Python进行简单的程序开发,如数据处理、脚本编写等。
二、学习准备
(一)安装Python环境
从Python官方网站(www.python.org/downloads/ )下载适合你操作系统的Python 3版本安装包,然后按照安装向导进行安装。安装过程中注意勾选“Add Python to PATH”选项,以便在命令行中可以直接使用Python。
(二)选择开发工具
- IDLE:Python自带的集成开发环境,适合初学者入门使用。
- PyCharm:功能强大的Python集成开发环境,提供代码编辑、调试、版本控制等丰富功能。
- VS Code:轻量级的代码编辑器,通过安装Python扩展可以支持Python开发。
三、学习内容与安排
(一)基础语法入门(第1 - 2周)
1. 了解Python语言
- 学习Python的发展历史、特点和应用领域。
- 熟悉Python的基本编程规范和代码风格。
2. 安装与环境配置
- 安装Python解释器,配置开发环境。
- 学习使用命令行工具运行Python脚本。
3. 第一个Python程序
# 使用print()函数输出信息
print('Hello, World!')
解析:print() 是Python内置的函数,用于将括号内的内容输出到控制台。这里将字符串 'Hello, World!' 输出。
4. 变量与数据类型
# 定义整数变量
num = 10
# 定义浮点数变量
float_num = 3.14
# 定义字符串变量
str1 = 'Hello'
# 定义布尔变量
bool_var = True
# 定义空值变量
none_var = None
# 输出变量的值
print(num)
print(float_num)
print(str1)
print(bool_var)
print(none_var)
解析:在Python中,变量不需要提前声明类型。通过赋值语句可以直接定义变量。这里分别定义了整数、浮点数、字符串、布尔值和空值类型的变量,并使用 print() 函数输出它们的值。
5. 运算符与表达式
# 算术运算符
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) # 幂运算
# 比较运算符
print(a == b) # 等于
print(a != b) # 不等于
print(a > b) # 大于
print(a < b) # 小于
print(a >= b) # 大于等于
print(a <= b) # 小于等于
# 逻辑运算符
c = True
d = False
print(c and d) # 逻辑与
print(c or d) # 逻辑或
print(not c) # 逻辑非
解析:
- 算术运算符:用于执行基本的数学运算,如加、减、乘、除等。
- 比较运算符:用于比较两个值的大小关系,返回布尔值。
- 逻辑运算符:用于组合多个布尔表达式,
and表示逻辑与,or表示逻辑或,not表示逻辑非。
6. 条件语句
# if-elif-else语句
score = 85
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 60:
print('及格')
else:
print('不及格')
解析:条件语句根据条件的真假来决定执行哪一段代码。if 后面跟一个条件表达式,如果条件为真,则执行 if 块中的代码;如果条件为假,则继续判断 elif 条件;如果所有 elif 条件都不满足,则执行 else 块中的代码。
7. 循环语句
for循环
# 遍历列表
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
解析:for 循环用于遍历可迭代对象(如列表、元组、字符串等)。每次循环,fruit 变量会依次取列表中的一个元素,并执行循环体中的代码。
while循环
# 计算1到10的和
sum = 0
i = 1
while i <= 10:
sum += i
i += 1
print(sum)
解析:while 循环会在条件为真时不断执行循环体中的代码。这里通过 while 循环计算1到10的和,每次循环将 i 的值累加到 sum 中,并将 i 加1,直到 i 大于10。
(二)数据结构与函数(第3 - 4周)
1. 列表(list)
# 创建列表
my_list = [1, 2, 3, 4, 5]
# 访问列表元素
print(my_list[0]) # 访问第一个元素
# 修改列表元素
my_list[0] = 10
print(my_list)
# 添加元素
my_list.append(6)
print(my_list)
# 删除元素
my_list.remove(3)
print(my_list)
解析:列表是Python中常用的可变序列。可以使用方括号创建列表,通过索引访问和修改列表元素。append() 方法用于在列表末尾添加元素,remove() 方法用于删除列表中指定的元素。
2. 元组(tuple)
# 创建元组
my_tuple = (1, 2, 3)
# 访问元组元素
print(my_tuple[0])
解析:元组是不可变的序列,使用圆括号创建。可以通过索引访问元组元素,但不能修改元组中的元素。
3. 字典(dict)
# 创建字典
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
# 访问字典元素
print(my_dict['name'])
# 修改字典元素
my_dict['age'] = 26
print(my_dict)
# 添加键值对
my_dict['job'] = 'Engineer'
print(my_dict)
# 删除键值对
del my_dict['city']
print(my_dict)
解析:字典是无序的键值对集合,使用花括号创建。可以通过键来访问、修改和删除字典中的值。
4. 集合(set)
# 创建集合
my_set = {1, 2, 3, 4, 5}
# 添加元素
my_set.add(6)
print(my_set)
# 删除元素
my_set.remove(3)
print(my_set)
# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2) # 交集
print(set1 | set2) # 并集
print(set1 - set2) # 差集
解析:集合是无序且元素唯一的容器,使用花括号创建。add() 方法用于添加元素,remove() 方法用于删除元素。集合支持交集(&)、并集(|)和差集(-)等运算。
5. 函数定义与调用
# 定义函数
def add_numbers(a, b):
"""计算两个数的和"""
return a + b
# 调用函数
result = add_numbers(3, 5)
print(result)
解析:使用 def 关键字定义函数,函数名后面跟括号,括号内可以定义参数。return 语句用于返回函数的结果。调用函数时,将实际参数传递给函数,并接收返回值。
6. 函数的作用域
# 全局变量
global_var = 10
def test_function():
# 局部变量
local_var = 20
print(global_var) # 可以访问全局变量
# 使用global关键字修改全局变量
global global_var
global_var = 30
print(global_var) # 输出10
test_function()
print(global_var) # 输出30
解析:全局变量在函数外部定义,可以在整个程序中访问。局部变量在函数内部定义,只能在函数内部访问。使用 global 关键字可以在函数内部修改全局变量。
7. 匿名函数(lambda)
# 定义匿名函数
add = lambda a, b: a + b
# 调用匿名函数
print(add(3, 5))
解析:lambda 关键字用于创建匿名函数,它是一种简洁的函数定义方式。这里定义了一个简单的加法匿名函数,并调用它计算两个数的和。
(三)模块与文件操作(第5 - 6周)
1. 模块的概念与使用
# 导入math模块
import math
# 使用math模块的函数
print(math.sqrt(16))
解析:使用 import 关键字导入模块,导入后可以使用模块中的函数和变量。这里导入了 math 模块,并使用 sqrt() 函数计算16的平方根。
2. 自定义模块
假设我们有一个自定义模块 my_module.py,内容如下:
# my_module.py
def greet(name):
return f'Hello, {name}!'
在另一个文件中使用该模块:
# 导入自定义模块
import my_module
# 调用模块中的函数
print(my_module.greet('John'))
解析:自定义模块是一个包含Python代码的文件。可以使用 import 语句导入自定义模块,并使用模块名作为前缀来调用模块中的函数。
3. 文件操作
# 写入文件
with open('test.txt', 'w') as file:
file.write('Hello, World!')
# 读取文件
with open('test.txt', 'r') as file:
content = file.read()
print(content)
解析:使用 open() 函数打开文件,'w' 表示写入模式,'r' 表示读取模式。with 语句用于自动管理文件的打开和关闭,确保文件操作完成后资源被正确释放。write() 方法用于向文件中写入内容,read() 方法用于读取文件的全部内容。
(四)面向对象编程(第7 - 8周)
1. 面向对象编程的基本概念
- 了解面向对象编程的概念,包括类、对象、封装、继承和多态。
- 学习类的定义和使用,掌握类的属性和方法的定义。
2. 类的定义与实例化
# 定义类
class Person:
def __init__(self, name, age):
# 初始化属性
self.name = name
self.age = age
def introduce(self):
# 定义方法
print(f'My name is {self.name} and I am {self.age} years old.')
# 创建对象
person = Person('John', 25)
# 调用方法
person.introduce()
解析:使用 class 关键字定义类,__init__() 是类的构造函数,用于初始化对象的属性。self 参数表示对象本身,在类的方法中必须作为第一个参数。通过类名后面跟括号并传递参数来创建对象,然后可以调用对象的方法。
3. 继承与多态
# 定义父类
class Animal:
def speak(self):
print('Animal speaks')
# 定义子类
class Dog(Animal):
def speak(self):
# 重写父类方法
print('Dog barks')
# 创建对象
animal = Animal()
dog = Dog()
# 调用方法
animal.speak()
dog.speak()
解析:子类可以继承父类的属性和方法。通过在子类中重新定义父类的方法,可以实现方法的重写,从而实现多态。这里 Dog 类继承自 Animal 类,并重写了 speak() 方法。
4. 封装与访问控制
class BankAccount:
def __init__(self, balance):
# 私有属性
self.__balance = balance
def deposit(self, amount):
self.__balance += amount
def withdraw(self, amount):
if amount <= self.__balance:
self.__balance -= amount
else:
print('Insufficient funds')
def get_balance(self):
return self.__balance
# 创建对象
account = BankAccount(1000)
account.deposit(500)
account.withdraw(200)
print(account.get_balance())
解析:以双下划线开头的属性和方法是私有成员,只能在类的内部访问。通过提供公共的方法(如 deposit()、withdraw() 和 get_balance())来间接访问和修改私有属性,实现了封装和访问控制。
(五)异常处理与常用第三方库(第9 - 10周)
1. 异常处理
try:
# 可能会引发异常的代码
result = 10 / 0
print(result)
except ZeroDivisionError:
# 捕获并处理异常
print('除数不能为零')
解析:try 块中包含可能会引发异常的代码,except 块用于捕获并处理特定类型的异常。这里捕获了 ZeroDivisionError 异常,并输出错误信息。
2. 常用第三方库
requests 库
import requests
# 发送GET请求
response = requests.get('https://www.example.com')
# 输出响应内容
print(response.text)
解析:requests 库用于发送HTTP请求。get() 方法用于发送GET请求,返回一个响应对象。通过 text 属性可以获取响应的文本内容。
pandas 库
import pandas as pd
# 创建DataFrame
data = {'Name': ['John', 'Jane', 'Bob'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
# 输出DataFrame
print(df)
解析:pandas 库是用于数据分析和处理的强大工具。DataFrame 是 pandas 中常用的数据结构,类似于表格。这里创建了一个包含姓名和年龄信息的 DataFrame 并输出。
matplotlib 库
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制折线图
plt.plot(x, y)
plt.show()
解析:matplotlib 库用于数据可视化。np.linspace() 用于生成一组等间距的数据,np.sin() 用于计算正弦值。plt.plot() 用于绘制折线图,plt.show() 用于显示图形。
个人自学笔记,如有不对欢迎大家指出改正