Python入门学习

232 阅读9分钟

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 库是用于数据分析和处理的强大工具。DataFramepandas 中常用的数据结构,类似于表格。这里创建了一个包含姓名和年龄信息的 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() 用于显示图形。

个人自学笔记,如有不对欢迎大家指出改正