Python基本语法及高级特性总结

1. Python基本语法

1.1 变量和数据类型

在Python中,变量不需要预先声明,可以直接赋值。Python是一种动态类型语言,变量的类型会根据赋值的对象自动确定。例如:

a = 10  # a是整数类型变量  
b = 3.14  # b是浮点数类型变量  
c = "Hello, world!"  # c是字符串类型变量  
d = True  # d是布尔类型变量

1.2 控制结构

Python支持if-else、while循环和for循环等控制结构。if-else语句用于根据条件执行不同的代码块,while循环和for循环则用于重复执行一段代码。例如:

if a > b:  print("a is greater than b")  
else:  print("b is greater than or equal to a")  for i in range(5):  print(i)  # 输出0到4

1.3 函数和模块

Python支持函数和模块的使用。函数是一段可重复使用的代码块,可以通过函数名来调用。模块是一组函数的集合,可以单独编译和测试。例如:

def add(x, y):  return x + y  # 定义一个名为add的函数,接受两个参数x和y,返回它们的和  import math  # 导入math模块,该模块包含许多数学函数和常量  
print(math.sqrt(16))  # 输出4.0,调用math模块中的sqrt函数计算16的平方根

1.4 异常处理

Python支持异常处理,可以通过try-except语句来捕获和处理异常。例如:

try:  1 / 0  # 会抛出ZeroDivisionError异常  
except ZeroDivisionError:  print("Cannot divide by zero!")  # 捕获ZeroDivisionError异常并输出错误信息

2. Python高级特性

2.1 装饰器

装饰器是Python中的一种高级功能,它可以修改或增强其他函数的行为。装饰器是一个接受函数作为参数的函数,并返回一个新的函数。通过使用装饰器,我们可以轻松地修改函数的行为,而无需修改函数本身的代码。例如:

def my_decorator(func):  def wrapper():  print("Before function call.")  func()  print("After function call.")  return wrapper  @my_decorator  
def say_hello():  print("Hello!")  say_hello()  # 输出"Before function call."、"Hello!"和"After function call."

2.2 上下文管理器(with语句)

Python中的with语句是一种上下文管理器,它用于确保代码块在执行前和执行后执行一些操作。with语句通常用于处理资源密集型操作,如文件操作、线程锁等。例如:

with open("file.txt", "r") as f:  # 使用with语句打开文件file.txt,并以只读模式读取文件内容  content = f.read()  # 读取文件内容并存储到content变量中  
print(content)  # 输出文件内容到控制台中

2.3 生成器和迭代器

生成器和迭代器是Python中处理数据的强大工具。生成器可以用于创建自己的迭代器,而迭代器则提供了遍历数据结构(如列表、元组和字典)的接口。通过使用生成器和迭代器,我们可以轻松地处理大量数据,而无需将所有数据存储在内存中。例如:

def my_generator():  yield 1  yield 2  yield 3  for i in my_generator():  print(i)  # 输出1、2和3

2.4 闭包和装饰器工厂

闭包是Python中的一个强大特性,它可以用于创建具有状态保持功能的函数。闭包可以用于实现函数工厂、高阶函数等高级功能。装饰器工厂则是装饰器的扩展,它可以用于创建可重用的装饰器。例如:

def counter(start=0):  def counter_func(f):  def wrapper(*args, **kwargs):  wrapper.count += 1  # 增加计数器的值  return f(*args, **kwargs)  # 调用被装饰的函数,并返回其结果  wrapper.count = start  # 初始化计数器的值  return wrapper  # 返回包装函数,作为装饰器工厂的返回值  return counter_func  # 返回装饰器工厂的返回值,即包装函数(闭包)的引用

2.5 列表推导式

列表推导式是Python中的一种简洁的语法结构,用于创建和操作列表。通过使用列表推导式,我们可以轻松地生成新的列表,而无需使用循环或映射函数。例如:

numbers = [1, 2, 3, 4, 5]  
squares = [x**2 for x in numbers]  # 使用列表推导式生成一个包含数字平方的新列表  
print(squares)  # 输出[1, 4, 9, 16, 25]

2.6 多线程和多进程

Python支持多线程和多进程编程,可以用于实现并发和并行计算。通过使用threading和multiprocessing模块,我们可以轻松地创建和管理多个线程和进程。例如:

import threading  def print_numbers():  for i in range(10):  print(i)  t1 = threading.Thread(target=print_numbers)  # 创建一个新线程,并将print_numbers函数作为目标函数  
t2 = threading.Thread(target=print_numbers)  # 创建另一个新线程,并将print_numbers函数作为目标函数  t1.start()  # 启动第一个线程  
t2.start()  # 启动第二个线程  t1.join()  # 等待第一个线程执行完毕  
t2.join()  # 等待第二个线程执行完毕

2.7 异常处理和日志记录

Python提供了强大的异常处理和日志记录功能,可以用于捕获和处理程序中的错误和异常。通过使用try-except语句和logging模块,我们可以轻松地记录错误信息并调试程序。例如:

import logging  logging.basicConfig(filename='example.log', level=logging.DEBUG)  # 配置日志记录器,将日志记录到文件example.log中,并设置日志级别为DEBUG  try:  result = 10 / 0  # 执行一个会抛出ZeroDivisionError异常的操作  
except ZeroDivisionError as e:  # 捕获ZeroDivisionError异常,并将异常对象赋值给变量e  logging.error('Caught an exception:', exc_info=True)  # 记录错误信息到日志中,并输出到控制台中

2.8 网络编程和Web开发

Python支持网络编程和Web开发,可以用于构建Web应用程序和Web服务。通过使用socket、http、urllib等模块和Django、Flask等Web框架,我们可以轻松地实现网络通信、HTTP请求处理、Web页面渲染等功能。例如:

from http.server import BaseHTTPRequestHandler, HTTPServer  
import urllib.parse  class MyServer(BaseHTTPRequestHandler):  # 创建一个自定义的HTTP请求处理程序类,继承自BaseHTTPRequestHandler类  def do_GET(self):  # 实现do_GET方法,用于处理GET请求  query = urllib.parse.urlparse(self.path).query  # 解析请求路径中的查询字符串,并存储到query变量中  self.send_response(200)  # 发送HTTP响应状态码200(OK)给客户端  self.end_headers()  # 结束HTTP响应头部信息的发送,准备发送HTTP响应主体内容给客户端  self.wfile.write(bytes(query, 'utf-8'))  # 将查询字符串作为HTTP响应主体内容发送给客户端,使用utf-8编码将字符

2.9 数据分析与科学计算

Python在数据分析与科学计算领域也表现出色。我们可以使用pandas、numpy、scipy等库进行数据处理、统计分析、数值计算等。例如:

import pandas as pd  
import numpy as np  # 使用pandas读取数据  
data = pd.read_csv('data.csv')  # 使用numpy进行数值计算  
a = np.array([1, 2, 3, 4, 5])  
b = np.array([2, 3, 4, 5, 6])  
c = a + b  
print(c)  # 输出[3 5 7 9 11]

2.10 机器学习与深度学习

Python在机器学习和深度学习领域也非常流行。我们可以使用scikit-learn、TensorFlow、PyTorch等库进行模型训练、预测等。例如:

from sklearn.datasets import load_iris  
from sklearn.model_selection import train_test_split  
from sklearn.ensemble import RandomForestClassifier  # 加载数据集  
iris = 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)  # 训练模型  
clf = RandomForestClassifier(n_estimators=100)  
clf.fit(X_train, y_train)  # 预测测试集结果  
y_pred = clf.predict(X_test)  
print(y_pred)  # 输出预测结果

2.11 数据库操作

Python提供了多种数据库操作库,如sqlite3、psycopg2、pymysql等,可以用于连接和操作数据库。通过使用这些库,我们可以轻松地执行SQL查询、插入、更新和删除等操作。例如:

import sqlite3  # 连接数据库  
conn = sqlite2.connect('example.db')  # 执行SQL查询  
c = conn.cursor()  
c.execute('SELECT * FROM table_name')  
rows = c.fetchall()  
for row in rows:  print(row)  # 输出查询结果  # 关闭数据库连接  
conn.close()

2.12 Web框架与Web开发

Python提供了多种Web框架,如Django、Flask、Pyramid等,可以用于构建Web应用程序。这些框架提供了丰富的功能和工具,如路由、模板引擎、ORM等,可以简化Web开发过程。通过使用这些框架,我们可以轻松地构建出功能强大的Web应用程序。例如:

from flask import Flask, render_template  app = Flask(__name__)  @app.route('/')  
def index():  return render_template('index.html')  # 渲染index.html模板,并返回给客户端  if __name__ == '__main__':  app.run()  # 启动Web应用程序

2.13 正则表达式与文本处理

Python提供了re模块,可以用于处理正则表达式和文本处理。通过使用正则表达式,我们可以轻松地匹配、查找和替换文本中的特定模式。例如:

import re  text = 'Hello, world! This is a test.'  
pattern = 'world'  
match = re.search(pattern, text)  
if match:  print('Match found!')  # 输出"Match found!",因为text中包含"world"字符串

2.14 文件操作与文件处理

Python提供了多种文件操作和文件处理库,如os、shutil、io等。通过使用这些库,我们可以轻松地读取、写入、复制、移动和压缩文件。例如:

import os  
import shutil  
with open('file.txt', 'r') as f:  # 打开文件file.txt,并以只读模式读取文件内容到变量f中  content = f.read()  # 从变量f中读取文件内容到变量content中  
print(content)  # 输出文件内容到控制台中  
shutil.copy('file.txt', 'backup.txt')  # 将文件file.txt复制到backup.txt中

2.15 图形绘制与可视化

Python提供了多种图形绘制和可视化库,如matplotlib、seaborn、plotly等。通过使用这些库,我们可以轻松地绘制各种类型的图表,如折线图、柱状图、散点图等。这些库还提供了丰富的样式和功能,可以定制化我们的图表。例如:

import matplotlib.pyplot as plt  # 创建数据  
x = [1, 2, 3, 4, 5]  
y = [2, 3, 5, 7, 11]  # 绘制折线图  
plt.plot(x, y)  
plt.title('Example Plot')  
plt.xlabel('X-axis')  
plt.ylabel('Y-axis')  
plt.show()  # 显示图表

2.16 多线程与多进程并行计算

Python支持多线程和多进程并行计算,可以用于提高程序的执行效率。通过使用threading和multiprocessing模块,我们可以创建多个线程或进程,并分配不同的任务给它们。这些模块还提供了同步和通信机制,可以方便地管理多个线程或进程之间的协作。例如:

import threading  
import time  def worker():  print('Worker thread is running')  time.sleep(2)  print('Worker thread finished')  # 创建线程并启动  
t = threading.Thread(target=worker)  
t.start()  
print('Main thread is running')  
time.sleep(2)  
print('Main thread finished')  
t.join()  # 等待线程执行完毕

2.17 网络编程与网络爬虫

Python在网络编程和网络爬虫领域也有广泛的应用。通过使用socket、requests、beautifulsoup等库,我们可以轻松地编写网络通信程序和网络爬虫。例如:

import requests  
from bs4 import BeautifulSoup  # 发送HTTP请求并获取响应内容  
response = requests.get('https://www.example.com')  
soup = BeautifulSoup(response.text, 'html.parser')  
# 查找页面中的特定元素并提取信息  
title = soup.title.string  # 获取页面标题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于OHTPPS实现网站HTTPS访问

前言 笔者近期为网站配置HTTPS的域名,查找了大量方案,最近寻得一个不错的解决方式,通过OHTTPS获取免费的证书并部署到阿里云服务器上。 步骤 到OHTTPS官网注册账号 官方地址如下,读者可以先行到官网注册一下账号,笔…

第三十四课 电商控制台商品订单详情的整合

增删改查四个接口统一的规范 有5个接口 Add增 Delete 删除 Update 更新 查 按id查某个商品 findOne 查询所有 findAll 实现类实现5个接口 反射技术,反射到java bean当中的每一个属性。 Class.forName() 获取属性方法:getDeclaredFields() 构建增 删 查…

基于级联式逆残差网络的遥感图像轻量目标检测算法

源自:电子学报 作者:陈立 张帆 郭威 黄赟 李继中 “人工智能技术与咨询” 发布 摘 要 遥感场景下的高实时目标检测任务具有重要的研究价值与应用意义. 针对当前遥感图像目标检测模型由于目标多角度、排列密集以及背景复杂从而导致检测速度慢的…

Science Robotics封面文章:瑞士洛桑联邦理工学院研制仿生鳄鱼和仿生巨蜥机器人,走进非洲尼罗河

动物表现出多种多样的形态和大小,通常与它们所处的介质有关。它们可以游泳、爬行、行走、奔跑、跳跃、飞行和滑翔等。进化使它们复杂而有效地结合不同类型的运动来逃避捕食者、交配或寻找食物 。作为科学家去研究如此丰富的动物运动,可以了解自然界的一些…

外汇天眼:ACY Securities口碑爆炸疯狂滑点,你中枪了吗?

都说判断一个平台是否值得信赖投资,除了看它的监管牌照、创建年限,就是看它的口碑、声誉怎么样,因为即使平台拥有了正规的监管牌照、平台创立年限久远,同样会存在很多交易安全隐患,特别是平台出现大量客诉却一直不正面…

ubuntu 20.04 安装与切换多个版本cmake,安装多个版本gcc

1.安装多版本cmake 1)查看当前系统自带cmake版本及安装位置: ~$: cmake --version 如: cmake version 3.16.3 ~$: which cmake 如: /opt/cmake/cmake-3.16.3 2)下载对应的cmake,如: https://cmake.org/files/…

在vue3代码中,进行if判断的时候,使用值的时候忘记使用.value而导致的问题

问: 回答: 所以,我的代码中进行isAndroid的值的判断的时候,判断它是否是false的时候,需要加上isAndroid.value才能获取到,否则获取不到, 然而写法错误,却还是进入了安卓的判断, 问: 回答:

vue配置path路径别名

// vue.config.js const path require(path);//引入path模块 function resolve(dir) {return path.join(__dirname, dir) }默认代表src configureWebpack: {resolve: {extensions: [.js, .vue, .json],alias: {: resolve(src),~: process.cwd(),public: resolve(public),compo…

Chart 9 Adreno GPU的 OpenCL 扩展

文章目录 前言9.1 OS-dependent vendor extensions9.1.1 Performance hint (cl_qcom_perf_hint)9.1.2 Priority hint for context creation (cl_qcom_priority_hint)9.1.3 Recordable command queue (cl_qcom_recordable_queues)9.1.4 cl_qcom_protected_context9.1.5 cl_qcom_…

深入理解网络 I/O 多路复用:Epoll

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

Odoo:行业领先的免费开源供应链管理系统

先进且开源的供应链管理系统和全球供应链协作优化方案 为满足复杂的供应链和库存管理要求,如今绝大多数企业都不得不部署多个供应链管理软件和库存管理系统软件。如何利用一个库存管理与供应链管理软件,跨地区、跨时区地管理现代供应链?Odoo…

Cocos Creator:坐标系

Cocos Creator:坐标系 坐标系节点位置坐标转换v3.8 实现原理(不想了解可以直接跳过)简单示例:(干货or解决方案在这里!) 锚点缩放和旋转 总结心得 在 Cocos Creator 3.8 中,节点坐标系…

使用入耳耳机对耳朵有损害吗?入耳耳机和骨传导耳机哪款更值得入手?

由于入耳式耳机的传声原理,长时间使用是会对耳朵造成损害的,骨传导耳机相比与入耳耳机,不用入耳佩戴,还能在一定程度上保护听力,所以骨传导耳机更值得入手。 一、入耳耳机和骨传导耳机有什么不同 人的听觉系统分为搜…

lammps编译(2Aug2023、intel2020、rtx4070ti)

说明: [rootnode101 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootnode101 ~]# gcc -v Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-lin…

修复漏洞:Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

1、背景 在安全检测流程中,发现爆出这个漏洞 2、修复方案 echo "kexalgorithms curve25519-sha256,curve25519-sha256libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521" >> /etc/ssh/sshd_configsystemctl restart sshd

Vmd+lstm代码详解 完整代码数据可直接运行

项目视频讲解:Vmd+lstm时间序列预测分类回归预测代码详解 完整代码可直接运行_哔哩哔哩_bilibili 项目演示效果: 代码详解: # -*- coding: utf-8 -*- # 导入库pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple import pandas as pd import numpy as np fr…

QVTK 可视化

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <vtkNew.h> // 智能指针 #include <QVTKOpenGLNativeWidget.h> #include <vtkCylinderSource.h> // 圆柱#include <vtkPolyDataMapper.h&g…

OpenHarmony应用开发——在标准OpenHarmony上运行应用-标准OpenHarmony工程设置

一、前言 前面我们创建了一个工程并使其在HarmonyOS系统上运行&#xff0c;本文我们来阐述一下如何在标准的OpenHarmony开发板或系统上运行。 二、详细步骤 1.下载并配置OpenHarmony SDK 首先&#xff0c;打开Settings. 将SDK选择为OpenHarmony&#xff0c;第一次选择路径应该…

Modbus RTU和Modbus TCP的区别 深入篇

目录 1 传输方式不同 2 硬件接口不同 3 校验码不同 4 指令内容不同 4.1 Modbus RTU 4.1.1 功能码为03&#xff0c;表示读寄存器 4.1.2 功能码为10&#xff0c;表示写多个寄存器 4.2 Modbus TCP 4.2.1 功能码为03&#xff0c;表示读寄存器 4.2.2 回复异常报文 5 传输速…

【软考:系统集成项目管理】之 项目管理一般知识

文章目录 1. 项目1.1 项目定义1.2 项目目标 2. 信息系统集成项目3. 项目管理3.1 项目管理的定义 1. 项目 1.1 项目定义 项目是为达到特定的目的&#xff0c;使用一定资源&#xff0c;在确定的期间内&#xff0c;为特定发起人提供独特的产品、服务或成果而进行的一系列相关关联…