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

Python编程基础与实践

12345678_0001
关注TA
已关注
手记 240
粉丝 13
获赞 47
Python简介

Python是一种高级编程语言,因其简洁易读的语法和强大的功能而广受欢迎。Python支持多种编程范式,包括面向对象、函数式和过程式编程。Python的解释性语言特性使得它非常适合快速开发和原型设计,而其丰富的标准库和第三方库则覆盖了从Web开发到科学计算等众多领域。

Python最初由Guido van Rossum于1989年底开始开发,并于1991年发布第一个版本。如今,Python已经成为最受欢迎的编程语言之一,并在多个领域得到广泛应用。

Python的特点

  • 简洁易读:Python强调代码的可读性,使用少而清晰的语法规则。
  • 跨平台:Python可以在多个操作系统上运行,包括Windows、Linux和macOS。
  • 丰富的库支持:Python拥有大量的第三方库,如NumPy、Pandas、Matplotlib等,可以方便地进行科学计算、数据分析和可视化。
  • 动态类型系统:Python是一个动态类型的语言,允许在运行时修改变量的数据类型。
  • 解释型语言:Python的代码通常在运行时解释执行,不需要编译成机器码。
  • 面向对象:Python支持面向对象编程,可以方便地定义类和对象。

Python的应用领域

  • Web开发:如Flask和Django,用于构建后端服务器和API。
  • 科学计算:如NumPy、SciPy和SymPy,用于数值计算和符号计算。
  • 数据科学:如Pandas和Matplotlib,用于数据处理和可视化。
  • 机器学习:如Scikit-learn和TensorFlow,用于构建机器学习模型。
  • 网络爬虫:如BeautifulSoup和Scrapy,用于从网页中提取数据。
  • 自动化脚本:Python可以编写用于自动化任务的脚本,如文件操作、邮件发送等。

Python的安装

Python官方网站提供了不同版本的安装包供下载,包括最新版本和其他稳定版本。安装过程非常简单,按照安装向导进行即可。完成安装后,可以在命令行或终端中输入python --version来验证安装是否成功。

Python的基础语法

变量与类型

在Python中,你可以使用变量来存储和操作数据。Python的变量是动态类型的,这意味着你可以在运行时改变变量的数据类型。

变量声明

Python中声明变量不需要指定类型,直接赋值即可。例如:

x = 10
y = "Hello, World!"
z = 3.14

常用类型

  • 整型(int):表示整数,如10、0、-200。
  • 浮点型(float):表示小数,如3.14、0.001。
  • 字符串(str):表示文本序列,如"Hello, World!"。
  • 布尔型(bool):表示真或假的值,True或False。

变量的使用

x = 10
y = 20
z = x + y  # z现在是30
print(z)

控制结构

Python提供了多种控制结构,用于实现程序的分支和循环。

if-else语句

age = 20
if age >= 18:
    print("成年人")
else:
    print("未成年人")

for循环

for i in range(5):
    print(i)  # 输出0到4

while循环

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

函数定义

在Python中,你可以定义自己的函数来封装代码逻辑。

def greet(name):
    print(f"你好,{name}!")

greet("Alice")  # 输出:你好,Alice!

数据结构

Python提供了多种内置的数据结构,包括列表、字典、集合等。

列表(List)

fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 输出apple

字典(Dictionary)

person = {"name": "Alice", "age": 20}
print(person["name"])  # 输出Alice

集合(Set)

numbers = {1, 2, 3, 4, 5}
print(3 in numbers)  # 输出True
Python的文件操作

Python提供了丰富的文件操作功能,可以方便地进行文件的读写。

文件的打开与关闭

在Python中,使用内置的open()函数来打开文件,并使用close()函数来关闭文件。

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

文件的读写

Python提供了多种方法来读写文件。

读取文件

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

写入文件

file = open("example.txt", "w")
file.write("你好,Python!")
file.close()

追加文件

file = open("example.txt", "a")
file.write("\n这是新的一行")
file.close()

文件的上下文管理

Python提供了一种更安全的方式来处理文件,即使用with语句。这样可以自动管理文件的打开和关闭,无需显式调用close()

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
Python的异常处理

异常类型

Python有多种异常类型,如ValueErrorTypeErrorNameError等。

常见异常类型

  • ValueError:传入无效的参数。
  • TypeError:类型错误。
  • NameError:引用未定义的变量。
  • ZeroDivisionError:除数为零。
  • IOError:输入输出错误。

异常的处理

Python使用tryexceptfinally等语句来处理异常。

try:
    x = int(input("请输入一个数字: "))
    print(x / 0)  # 会引发ZeroDivisionError
except ValueError:
    print("输入的不是数字")
except ZeroDivisionError:
    print("除数不能为零")
finally:
    print("异常处理结束")

自定义异常

你可以通过继承Exception类来定义自己的异常类型。

class MyException(Exception):
    pass

try:
    raise MyException("这是一个自定义异常")
except MyException as e:
    print(e)
Python的模块与包

模块

Python的模块是包含Python代码的文件,通常以.py为扩展名。模块可以包含函数、类、变量等。

导入模块

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

从模块导入特定内容

from math import sqrt
print(sqrt(9))  # 输出3.0

定义和使用自己的模块

创建一个名为my_module.py的文件,内容如下:

def greet(name):
    return f"你好,{name}!"

在另一个文件中,导入并使用该模块:

import my_module
print(my_module.greet("Alice"))  # 输出你好,Alice!

Python的包是包含模块和子包的目录。包通常包含一个__init__.py文件,该文件可以为空,也可以包含包的初始化代码。

创建和使用包

创建一个包结构如下:

my_package/
  __init__.py
  module1.py
  module2.py

module1.py中定义一个函数:

def func1():
    return "这是module1的func1"

module2.py中定义另一个函数:

def func2():
    return "这是module2的func2"

在主程序中导入并使用这些模块:

from my_package.module1 import func1
from my_package.module2 import func2

print(func1())  # 输出这是module1的func1
print(func2())  # 输出这是module2的func2
Python的Web开发

Python在Web开发领域非常流行,主要有两种流行的框架:Flask和Django。

Flask

Flask是一个轻量级的Web框架,适合小型项目和API开发。

创建一个简单的Flask应用

安装Flask:

pip install flask

创建一个简单的Flask应用:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return '你好,世界!'

if __name__ == '__main__':
    app.run(debug=True)

运行应用:

python app.py

Django

Django是一个全功能的Web框架,适合大型项目。

创建一个Django项目

安装Django:

pip install django

创建一个新的Django项目:

django-admin startproject mysite
cd mysite

创建一个新的应用:

python manage.py startapp myapp

myapp/views.py中添加一个视图:

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse('你好,世界!')

myapp/urls.py中配置URL:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.hello_world, name='home'),
]

mysite/urls.py中包含应用的URL:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

运行开发服务器:

python manage.py runserver
Python的数据可视化

Python提供了多种库来实现数据可视化,如Matplotlib、Seaborn、Plotly等。

Matplotlib

Matplotlib是一个用于绘制二维图表的库,广泛用于科学计算和数据分析。

创建简单的图表

安装Matplotlib:

pip install matplotlib

创建一个简单的折线图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('简单折线图')
plt.show()

Seaborn

Seaborn是基于Matplotlib的高级绘图库,提供了更简洁的API和更美观的默认样式。

创建简单的散点图

安装Seaborn:

pip install seaborn

创建一个简单的散点图:

import seaborn as sns
import pandas as pd

data = {'x': [1, 2, 3, 4, 5], 'y': [2, 3, 5, 7, 11]}
df = pd.DataFrame(data)

sns.scatterplot(x='x', y='y', data=df)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('简单散点图')
plt.show()

Plotly

Plotly是一个交互式可视化库,支持多种图表类型,包括折线图、散点图、柱状图等。

创建简单的柱状图

安装Plotly:

pip install plotly

创建一个简单的柱状图:

import plotly.express as px

data = {'x': [1, 2, 3, 4, 5], 'y': [2, 3, 5, 7, 11]}
df = pd.DataFrame(data)

fig = px.bar(df, x='x', y='y')
fig.show()
Python的数据分析

Python在数据分析领域非常流行,主要通过NumPy、Pandas、Matplotlib等库来实现。

NumPy

NumPy是一个处理多维数组的库,提供了大量的数学函数来操作这些数组。

创建和操作数组

安装NumPy:

pip install numpy

创建一个简单的数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)  # 输出[1 2 3 4 5]

# 数组操作
print(arr + 2)  # 输出[3 4 5 6 7]
print(arr * 2)  # 输出[ 2  4  6  8 10]

Pandas

Pandas是一个处理结构化数据的库,提供了DataFrame和Series等数据结构。

创建和操作DataFrame

安装Pandas:

pip install pandas

创建一个简单的DataFrame:

import pandas as pd

data = {'x': [1, 2, 3, 4, 5], 'y': [2, 3, 5, 7, 11]}
df = pd.DataFrame(data)

print(df)  # 输出
#    x   y
# 0  1   2
# 1  2   3
# 2  3   5
# 3  4   7
# 4  5  11

数据的读取和写入

Pandas可以方便地读取和写入多种数据格式,如CSV、Excel、JSON等。

读取CSV文件

df = pd.read_csv('data.csv')
print(df)

写入CSV文件

df.to_csv('output.csv', index=False)
Python的机器学习

Python在机器学习领域非常流行,主要通过Scikit-learn、TensorFlow、PyTorch等库来实现。

Scikit-learn

Scikit-learn是一个简单易用的机器学习库,提供了多种算法和工具。

创建简单的线性回归模型

安装Scikit-learn:

pip install scikit-learn

创建一个简单的线性回归模型:

from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=1, noise=0.1)

model = LinearRegression()
model.fit(X, y)

print(model.coef_)  # 输出回归系数
print(model.intercept_)  # 输出截距

TensorFlow

TensorFlow是一个由Google开发的机器学习库,广泛用于深度学习。

创建简单的神经网络模型

安装TensorFlow:

pip install tensorflow

创建一个简单的神经网络模型:

import tensorflow as tf
from tensorflow.keras import layers

model = tf.keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=(10,)),
    layers.Dense(64, activation='relu'),
    layers.Dense(10)
])

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

PyTorch

PyTorch是一个由Facebook开发的机器学习库,广泛用于深度学习。

创建简单的神经网络模型

安装PyTorch:

pip install torch

创建一个简单的神经网络模型:

import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc = nn.Linear(10, 1)

    def forward(self, x):
        return self.fc(x)

model = Net()
print(model)
Python的网络爬虫

Python在Web爬虫领域非常流行,主要通过BeautifulSoup、Scrapy等库来实现。

BeautifulSoup

BeautifulSoup是一个解析HTML和XML的库,提供了方便的数据提取功能。

创建简单的Web爬虫

安装BeautifulSoup:

pip install beautifulsoup4
pip install requests

创建一个简单的Web爬虫:

import requests
from bs4 import BeautifulSoup

url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

title = soup.find("title").get_text()
print(title)

Scrapy

Scrapy是一个强大的Web爬虫框架,支持高效的数据抓取和处理。

创建简单的Scrapy项目

安装Scrapy:

pip install scrapy

创建一个新的Scrapy项目:

scrapy startproject myproject
cd myproject

创建一个新的爬虫:

scrapy genspider example example.com

spiders/example.py中定义爬虫逻辑:

import scrapy

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['example.com']
    start_urls = ['https://www.example.com']

    def parse(self, response):
        title = response.css('title::text').get()
        print(title)

运行爬虫:

scrapy crawl example
Python的数据库操作

Python提供了多种库来操作数据库,如SQLite、MySQL、PostgreSQL等。

SQLite

SQLite是一个轻量级的嵌入式数据库,广泛用于小型项目。

创建和操作SQLite数据库

安装SQLite:

pip install sqlite3

创建一个简单的SQLite数据库:

import sqlite3

conn = sqlite3.connect('example.db')

c = conn.cursor()
c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')

c.execute("INSERT INTO stocks VALUES ('2020-01-01','BUY','RHAT',100,35.14)")

conn.commit()
conn.close()

MySQL

MySQL是一个流行的开源关系型数据库,广泛用于Web开发。

创建和操作MySQL数据库

安装MySQL库:

pip install mysql-connector-python

创建一个简单的MySQL数据库:

import mysql.connector

conn = mysql.connector.connect(
    host='localhost',
    user='root',
    password='password',
    database='testdb'
)

cursor = conn.cursor()
cursor.execute("CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)")

cursor.execute("INSERT INTO stocks VALUES ('2020-01-01','BUY','RHAT',100,35.14)")

conn.commit()
conn.close()

PostgreSQL

PostgreSQL是一个功能强大的开源关系型数据库,广泛用于企业级应用。

创建和操作PostgreSQL数据库

安装PostgreSQL库:

pip install psycopg2

创建一个简单的PostgreSQL数据库:

import psycopg2

conn = psycopg2.connect(
    host='localhost',
    user='postgres',
    password='password',
    database='testdb'
)

cursor = conn.cursor()
cursor.execute("CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)")

cursor.execute("INSERT INTO stocks VALUES ('2020-01-01','BUY','RHAT',100,35.14)")

conn.commit()
conn.close()
Python的最佳实践

代码风格与规范

Python有一个官方的代码风格指南,称为PEP 8。遵循PEP 8可以提高代码的可读性和可维护性。

PEP 8的基本规则

  • 使用4个空格作为缩进。
  • 不要使用Tab。
  • 每行代码不超过80个字符。
  • 尽量使用小写字母和下划线组成变量名,如my_variable
  • 类名使用驼峰命名法,如MyClass
  • 函数和变量名使用小写字母和下划线,如my_function
  • 常量使用大写字母,如MY_CONSTANT
  • 避免使用单字母变量名,除非是循环变量。

单元测试

单元测试是确保代码质量的重要手段。Python提供了多种单元测试框架,如unittest和pytest。

使用unittest进行单元测试

import unittest

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

class TestAddFunction(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(1, 2), 3)

if __name__ == '__main__':
    unittest.main()

使用pytest进行单元测试

安装pytest:

pip install pytest

创建一个简单的单元测试文件:

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

def test_add():
    assert add(1, 2) == 3

运行单元测试:

pytest test_file.py

版本控制与Git

Git是一个流行的分布式版本控制系统,广泛用于软件开发。

创建一个新的Git仓库

git init

添加文件到仓库

git add .
git commit -m "Initial commit"

推送到远程仓库

git remote add origin https://github.com/username/repo.git
git push -u origin master

模块化编程

模块化编程是指将代码分解成独立的模块,每个模块负责一个特定的功能。

创建简单的模块化程序

创建一个名为utils.py的模块:

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

def subtract(a, b):
    return a - b

在主程序中使用这些模块:

import utils

print(utils.add(1, 2))  # 输出3
print(utils.subtract(2, 1))  # 输出1

数据库连接池

数据库连接池是数据库编程中常见的优化技术,可以减少数据库连接的创建和销毁次数。

使用数据库连接池

安装SQLAlchemy:

pip install sqlalchemy

创建一个简单的数据库连接池:

from sqlalchemy import create_engine
from sqlalchemy.pool import QueuePool

engine = create_engine('sqlite:///example.db', poolclass=QueuePool)

with engine.connect() as conn:
    result = conn.execute("SELECT * FROM stocks")
    for row in result:
        print(row)

代码重构

代码重构是指对现有代码进行修改,使其更清晰、更简洁,而不改变其功能。

使用重构工具

安装Black:

pip install black

使用Black格式化代码:

black your_code.py
总结与展望

Python作为一种广泛使用的编程语言,其简洁易读的语法和强大的功能使其在众多领域得到广泛应用。通过本章的介绍,读者应该对Python的基础语法、模块化编程、异常处理、数据库操作等有了基本的了解。未来,随着技术的发展,Python将继续保持其领先地位,并在更多的领域得到应用。对于Python开发者来说,了解和掌握Python的最新特性和最佳实践是非常重要的。

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