继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python 程序设计入门与进阶

动漫人物
关注TA
已关注
手记
粉丝 18
获赞 71
1. Python 简介

Python 是一种高级、解释型、交互式、面向对象的编程语言,由 Guido van Rossum 于 1989 年底开始设计,第一个公开发行版发布于 1991 年。Python 拥有着简洁而清晰的语法,使得它成为一种适合初学者学习的编程语言,同时也能满足高级程序员的开发需求。

Python 语言支持多种编程范式,包括过程化(如 C 语言)、面向对象、函数式、命令式、反射式、元编程等。Python 的设计哲学是强调代码的可读性,具有高度的可扩展性,拥有庞大的标准库和第三方库,能够完成从网络开发到数据分析等多方面的任务。

1.1 Python 的特点

  • 简单易学:Python 语法简洁清晰,学习曲线较平缓。
  • 解释型语言:代码不需要编译,可以直接运行,便于测试和调试。
  • 动态类型:变量类型在运行时确定,代码更加灵活。
  • 跨平台:Python 可以在多种操作系统上运行,包括 Windows、Linux、macOS 等。
  • 丰富的库支持:Python 拥有庞大的标准库和第三方库,可以支持各种应用场景。
  • 可扩展性:Python 可以嵌入 C、C++ 等语言,也可以被其他语言调用。

1.2 Python 的应用领域

  • Web 开发:使用 Django、Flask 等框架进行网站开发。
  • 科学计算与数据分析:使用 NumPy、Pandas、SciPy 等库进行数据分析。
  • 人工智能与机器学习:使用 TensorFlow、PyTorch 等库进行机器学习。
  • 自动化运维:使用 Ansible、SaltStack 等工具进行系统管理。
  • 游戏开发:使用 Pygame 进行游戏开发。
  • 网络爬虫:使用 Scrapy 进行数据爬取。
2. Python 的安装与运行

安装 Python 可以通过官方网站下载相应版本的安装包。Python 官方提供了多个版本,建议使用最新稳定版(如 Python 3.9 或更高版本),并选择与操作系统匹配的安装包进行下载。

安装完成后,可以通过命令行工具(如 Windows 的 cmd、Linux 的终端)或集成开发环境(IDE)来运行 Python 代码。Python 代码通常使用 .py 作为文件扩展名。

2.1 运行 Python 代码

2.1.1 使用命令行

  1. 打开命令行工具。
  2. 输入 pythonpython3 命令启动 Python 解释器。
  3. 在命令行中输入 Python 代码进行测试。

示例代码:

print("Hello, World!")

2.1.2 使用集成开发环境(IDE)

常用的 Python IDE 有 PyCharm、VS Code、Sublime Text、Atom 等。以 PyCharm 为例:

  1. 安装 PyCharm。
  2. 打开 PyCharm,创建一个新的 Python 项目。
  3. 编写并运行 Python 代码。

示例代码:

print("Hello, World!")
3. 变量与类型

在 Python 中,变量是存储数据的容器,而类型则是变量所对应的值的数据结构。Python 中的变量类型包括但不限于整型(int)、浮点型(float)、字符串(str)、布尔型(bool)、列表(list)、元组(tuple)、字典(dict)等。

3.1 变量的定义与赋值

Python 中的变量不需要声明类型,直接使用变量名赋值即可。

示例代码:

# 整型
a = 5

# 浮点型
b = 3.14

# 字符串
c = "Hello, World!"

# 布尔型
d = True

# 列表
e = [1, 2, 3, 4, 5]

# 元组
f = (1, 2, 3, 4, 5)

# 字典
g = {"name": "Alice", "age": 25}

3.2 类型转换

Python 提供了内置函数可以进行类型转换。

示例代码:

# 整型转字符串
int_to_str = str(123)
print(int_to_str)  # 输出: "123"

# 字符串转整型
str_to_int = int("123")
print(str_to_int)  # 输出: 123

# 字符串转浮点型
str_to_float = float("3.14")
print(str_to_float)  # 输出: 3.14

# 列表转字符串
list_to_str = str([1, 2, 3])
print(list_to_str)  # 输出: "[1, 2, 3]"

3.3 数据类型的操作

3.3.1 整型操作

示例代码:

# 加法
a = 5
b = 3
sum = a + b
print(sum)  # 输出: 8

# 减法
difference = a - b
print(difference)  # 输出: 2

# 乘法
product = a * b
print(product)  # 输出: 15

# 除法
quotient = a / b
print(quotient)  # 输出: 1.6666666666666667

# 取模
remainder = a % b
print(remainder)  # 输出: 2

# 幂运算
power = a ** b
print(power)  # 输出: 125

3.3.2 浮点型操作

示例代码:

# 加法
a = 5.5
b = 3.14
sum = a + b
print(sum)  # 输出: 8.64

# 减法
difference = a - b
print(difference)  # 输出: 2.36

# 乘法
product = a * b
print(product)  # 输出: 17.33

# 除法
quotient = a / b
print(quotient)  # 输出: 1.750636942147341

# 取模
remainder = a % b
print(remainder)  # 输出: 2.36

# 幂运算
power = a ** b
print(power)  # 输出: 47.01107277777776

3.3.3 字符串操作

示例代码:

# 字符串拼接
a = "Hello"
b = "World"
c = a + " " + b
print(c)  # 输出: "Hello World"

# 字符串重复
d = a * 3
print(d)  # 输出: "HelloHelloHello"

# 字符串切片
e = "Hello, World!"
f = e[0:5]
print(f)  # 输出: "Hello"

# 字符串格式化
g = "I am %d years old." % 25
print(g)  # 输出: "I am 25 years old."

# 字符串格式化(f-string)
h = f"I am {25} years old."
print(h)  # 输出: "I am 25 years old."

3.3.4 列表操作

示例代码:

# 列表创建
a = [1, 2, 3, 4, 5]
print(a)  # 输出: [1, 2, 3, 4, 5]

# 列表索引
b = a[0]
print(b)  # 输出: 1

# 列表切片
c = a[1:4]
print(c)  # 输出: [2, 3, 4]

# 列表追加
d = a.append(6)
print(a)  # 输出: [1, 2, 3, 4, 5, 6]

# 列表插入
e = a.insert(1, 0)
print(a)  # 输出: [1, 0, 2, 3, 4, 5, 6]

# 列表删除
f = a.remove(0)
print(a)  # 输出: [1, 2, 3, 4, 5, 6]

# 列表排序
g = a.sort()
print(a)  # 输出: [1, 2, 3, 4, 5, 6]

3.3.5 元组操作

示例代码:

# 元组创建
a = (1, 2, 3, 4, 5)
print(a)  # 输出: (1, 2, 3, 4, 5)

# 元组索引
b = a[0]
print(b)  # 输出: 1

# 元组切片
c = a[1:4]
print(c)  # 输出: (2, 3, 4)

# 元组无法修改(不可变)
# a[0] = 0  # 这行代码会报错

3.3.6 字典操作

示例代码:

# 字典创建
a = {"name": "Alice", "age": 25}
print(a)  # 输出: {"name": "Alice", "age": 25}

# 字典索引
b = a["name"]
print(b)  # 输出: "Alice"

# 字典新增
c = a["gender"] = "female"
print(a)  # 输出: {"name": "Alice", "age": 25, "gender": "female"}

# 字典删除
d = a.pop("gender")
print(a)  # 输出: {"name": "Alice", "age": 25}
4. 控制流程语句

控制流程语句用于控制程序的执行顺序,包括条件语句和循环语句。

4.1 条件语句

条件语句用于判断程序中的条件是否满足,根据不同的条件执行不同的代码。

4.1.1 if 语句

示例代码:

a = 10
if a > 5:
    print("a 大于 5")
else:
    print("a 小于等于 5")

4.1.2 if-else 语句

示例代码:

a = 10
if a > 5:
    print("a 大于 5")
elif a == 5:
    print("a 等于 5")
else:
    print("a 小于 5")

4.1.3 嵌套 if 语句

示例代码:

a = 10
b = 5
if a > 5:
    if b > 5:
        print("a 和 b 都大于 5")
    else:
        print("a 大于 5,b 小于等于 5")
else:
    print("a 小于等于 5")

4.2 循环语句

循环语句用于重复执行一段代码,直到满足条件为止。

4.2.1 for 循环

示例代码:

for i in range(5):
    print(i)

4.2.2 while 循环

示例代码:

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

4.2.3 嵌套循环

示例代码:

for i in range(3):
    for j in range(3):
        print(i, j)
5. 函数

函数是一段可重复使用的代码块,用于完成特定的任务。Python 中使用 def 关键字定义函数。

5.1 定义函数

示例代码:

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

result = add(3, 5)
print(result)  # 输出: 8

5.2 默认参数

示例代码:

def greet(name, greeting="Hello"):
    return f"{greeting}, {name}"

print(greet("Alice"))  # 输出: "Hello, Alice"
print(greet("Bob", "Hi"))  # 输出: "Hi, Bob"

5.3 可变参数

Python 中支持可变参数,包括位置参数和关键字参数。

示例代码:

def print_info(*args, **kwargs):
    print("Positional arguments:", args)
    print("Keyword arguments:", kwargs)

print_info(1, 2, 3, name="Alice", age=25)

输出:

Positional arguments: (1, 2, 3)
Keyword arguments: {'name': 'Alice', 'age': 25}

5.4 匿名函数

Python 中使用 lambda 关键字定义匿名函数。

示例代码:

add = lambda a, b: a + b
result = add(3, 5)
print(result)  # 输出: 8
6. 模块与包

6.1 模块

模块是 Python 中的一组相关函数和变量的集合。模块可以被导入到其他文件中使用。

6.1.1 导入模块

示例代码:

import math

print(math.sqrt(16))  # 输出: 4.0

6.1.2 从模块中导入特定函数

示例代码:

from math import sqrt

print(sqrt(16))  # 输出: 4.0

6.1.3 导入全部模块内容

示例代码:

from math import *

print(sqrt(16))  # 输出: 4.0

6.2 包

包是模块的集合,通过 __init__.py 文件进行标识。包内部可以包含子包和模块。

6.2.1 创建包

示例代码:

创建一个包结构如下:

mypackage/
├── __init__.py
├── module1.py
└── module2.py

module1.py 内容:

def func1():
    print("module1 func1")

module2.py 内容:

def func2():
    print("module2 func2")

使用包:

import mypackage.module1
import mypackage.module2

mypackage.module1.func1()  # 输出: "module1 func1"
mypackage.module2.func2()  # 输出: "module2 func2"
7. 文件操作

文件操作是 Python 中最基础也是最常用的功能之一,包括文件的读写、创建、删除等。

7.1 文件读取

示例代码:

# 读取文件
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

7.2 文件写入

示例代码:

# 写入文件
with open("example.txt", "w") as file:
    file.write("Hello, World!")

7.3 文件追加

示例代码:

# 追加文件内容
with open("example.txt", "a") as file:
    file.write(" Hello again!")

7.4 文件操作模式

  • r: 读取文件,默认模式。
  • w: 写入文件,会覆盖原有内容。
  • a: 追加文件内容,不会覆盖原有内容。
  • r+: 读写模式,可以读取和写入文件。
  • w+: 写读模式,可以写入和读取文件,会覆盖原有内容。
  • a+: 追加读写模式,可以追加和读取文件。

示例代码:

# 读写模式
with open("example.txt", "r+") as file:
    content = file.read()
    print(content)
    file.write(" Hello again!")
8. 异常处理

异常处理是程序运行时可能出现错误情况的处理方式,可以捕获异常并进行相应的处理。

8.1 捕获异常

示例代码:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("除数不能为零")

8.2 多个异常处理

示例代码:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("除数不能为零")
except TypeError:
    print("类型错误")

8.3 捕获所有异常

示例代码:

try:
    result = 10 / 0
except Exception as e:
    print(f"发生错误: {e}")

8.4 异常抛出

示例代码:

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

try:
    result = calculate(10, 0)
except ValueError as e:
    print(f"发生错误: {e}")
9. 面向对象编程

面向对象编程(OOP)是基于对象和类的概念,通过封装、继承和多态实现程序设计。

9.1 类的定义

示例代码:

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.")

9.2 创建对象

示例代码:

person = Person("Alice", 25)
person.introduce()  # 输出: "My name is Alice, and I am 25 years old."

9.3 类的继承

示例代码:

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def introduce(self):
        super().introduce()
        print(f"I am in grade {self.grade}.")

student = Student("Bob", 20, 3)
student.introduce()  # 输出: "My name is Bob, and I am 20 years old. I am in grade 3."

9.4 类的方法重写

示例代码:

class Teacher(Person):
    def __init__(self, name, age, subject):
        super().__init__(name, age)
        self.subject = subject

    def introduce(self):
        super().introduce()
        print(f"I am a teacher of {self.subject}.")

teacher = Teacher("Charlie", 30, "Math")
teacher.introduce()  # 输出: "My name is Charlie, and I am 30 years old. I am a teacher of Math."

9.5 类的属性和方法

示例代码:

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def describe_car(self):
        print(f"This car is a {self.year} {self.make} {self.model}")

    def read_odometer(self):
        print(f"This car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")

    def increment_odometer(self, miles):
        self.odometer_reading += miles

my_car = Car("Toyota", "Corolla", 2020)
my_car.describe_car()  # 输出: "This car is a 2020 Toyota Corolla"
my_car.read_odometer()  # 输出: "This car has 0 miles on it."
my_car.update_odometer(23500)
my_car.read_odometer()  # 输出: "This car has 23500 miles on it."
my_car.increment_odometer(100)
my_car.read_odometer()  # 输出: "This car has 23600 miles on it."
10. 高级特性

10.1 列表推导式

列表推导式是一种简洁的创建列表的方法,通过一个表达式生成新列表。

示例代码:

squares = [x**2 for x in range(5)]
print(squares)  # 输出: [0, 1, 4, 9, 16]

10.2 生成器

生成器是一种特殊的迭代器,可以在需要时生成值,节省内存。

示例代码:

def countdown(n):
    while n > 0:
        yield n
        n -= 1

for i in countdown(5):
    print(i)
# 输出: 5 4 3 2 1

10.3 装饰器

装饰器是一种高级函数,可以在不修改原函数代码的情况下增加功能。

示例代码:

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()
# 输出: "Something is happening before the function is called."
#       "Hello!"
#       "Something is happening after the function is called."
11. 实用工具与库

Python 提供了丰富的第三方库,可以满足各种应用场景的需求。

11.1 NumPy

NumPy 是一个强大的科学计算库,支持多维数组和矩阵运算。

示例代码:

import numpy as np

# 创建数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 数组运算
c = a + b
print(c)  # 输出: [5 7 9]

# 数组方法
d = np.sum(a)
print(d)  # 输出: 6

11.2 Pandas

Pandas 是一个数据分析库,提供了数据结构和数据分析工具。

示例代码:

import pandas as pd

# 创建DataFrame
data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 20, 30]}
df = pd.DataFrame(data)

print(df)
# 输出:
#       Name  Age
# 0    Alice   25
# 1      Bob   20
# 2  Charlie   30

11.3 Matplotlib

Matplotlib 是一个绘制图表的库,支持多种图表类型。

示例代码:

import matplotlib.pyplot as plt

# 创建数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 绘制图表
plt.plot(x, y)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Simple Line Chart")
plt.show()

11.4 Scikit-learn

Scikit-learn 是一个机器学习库,提供了多种学习算法。

示例代码:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# 加载数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估
accuracy = model.score(X_test, y_test)
print(f"Accuracy: {accuracy:.2f}")
12. 总结

本文介绍了 Python 编程的基础知识,包括变量与类型、控制流程语句、函数、模块与包、文件操作、异常处理、面向对象编程、高级特性以及常用库的使用。Python 作为一种强大的编程语言,具有广泛的应用场景,通过不断学习和实践,可以掌握更多的高级功能和技术。希望本文能为初学者提供一个良好的入门指南,并帮助高级用户进一步提升编程技能。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP