Python编程基础4

模块:模块支持从逻辑上组织Python代码,当代码量变得非常大的时候,最好把代码分成一些有组织的代码段。代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类、函数、变量。
搜索路径:模块的导入需要一个叫做‘路径搜索’的过程。Python在文件系统‘预定义区域’中查找要调用的模块。搜索路径在sys.path中定义,也可以通过PYTHONPATH环境变量引入自定义目录。
当匹配搜索到模块就会停止匹配(匹配即停止)
当在/tmp/mylibs中创建.py文件导入该模块就会失败,因为sys.path中没有该路径
使用PYTHONPATH环境变量导入该路径,此时就能成功导入该模块了
hashlib模块:hashlib用来替换md5和sha模块,并使他们的API一致,专门提供hash算法包括md5、sha1、sha224、sha256、sha384、sha512,使用非常简单、方便
分批计算
计算大文件的md5值
tarfile模块:tarfile模块允许创建、访问tar文件同时支持gzip、bzip2格式
解包
面向对象编程基础(oop):面向过程:是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。面向对象:是一种以“对象"为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
面向对象是更大的封装,根据职责在一个对象中封装多个方法和属性。
类和对象:
类:是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用。特征被称为属性。行为被称为方法。类就相当于制造飞机时的图纸,是一个模板,是负责创建对象的
对象:是由类创建出来的一个具体存在,可以直接使用由哪一个类创建出来的对象,就拥有在哪一个类中定义的:属性、方法。对象就相当于图纸制造的飞机。
类和对象的关系:类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。类只有一个,而对象可以有很多个。不同的对象之间属性可能会各不相同。类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少
面向对象的三大特性:1、封装:根据职责将属性和方法封装到一个抽象的类中。2、继承:实现代码的重用,相同的代码不需要重复的编写。3、多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度
创建类:使用class语句来创建一个新类,class 之后为类的名称并以冒号结尾。
构造器方法:当实例化类的对象是,构造器方法默认自动调用实例本身作为第一个参数,传递给self
练习:编写游戏
创建游戏角色类,游戏人物角色拥有名字、武器等属性,游戏人物具有攻击和行走的方法,武器通过武器类实现
添加武器类
继承:子类拥有父类的所有方法和属性。子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发。子类中应该根据职责,封装子类特有的属性和方法
class 类名(父类名):
        pass
重写
多继承:根据就近原则调用父类的方法。
__str__方法:打印/显示实例时调用方法,返回字符串
__call__方法:用于创建可调用的实例
正则表达式及re模块:
\d:匹配任意数字,与[0-9]同义
\s:匹配空白字符
{n}:匹配前面出现的正则表达式至少n次
^:匹配字符串的开始
$:匹配字符串的结尾
\b:匹配单词的边界
():对正则表达式分组
match函数:尝试用正则表达式模式从字符串的开头匹配,如果匹配成功,则返回一个匹配对象;否则返回None。span:索引区间,group函数:获取匹配的值
search函数:在字符串中查找正则表达式模式的第一次出现,如果匹配成功,则返回一个匹配对象;否则返回None
findall函数:在字符串中查找正则表达式模式的所有(非重复)出现;返回一个匹配对象的列表
finditem函数:和findall()函数有相同的功能,但返回的不是列表而是迭代器;对于每个匹配,该迭代器返回一个匹配对象
split函数:根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表。字符串也有类似的方法,但是正则表达式更加灵活
sub函数:把字符串中所有匹配正则表达式的地方替换成新的字符串
compile函数:对正则表达式模式进行编译,返回一个正则表达式对象不是必须要用这种方式,但是在大量匹配的情况下,可以提升效率
练习:分析apache访问日志
统计每个客户端访问apache服务器的次数,将统计信息通过字典的方式显示出来,分别统计客户端是Firefox和MSIE的访问次数
创建日志文件
什么是进程:计算机程序只不过是磁盘中可执行的、二进制(或其它类型)的数据。进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间、内存以及其它记录其运行轨迹的辅助数据。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间。
什么是线程:线程(有时被称为轻量级进程)跟进程有些相似。不同的是,所有的线程运行在同一个进程中,共享相同的运行环境。一个进程中的各个线程之间共享同一片数据空间,所以线程之间可以比进程之间更方便地共享数据以及相互通讯。
进程是争夺CPU、内存等资源的最小单位,线程是程序执行的最小单位
多线程工作原理:在多线程(MT)编程出现之前,电脑程序的运行由一个执行序列组成,执行序列按顺序在主机的中央处理器(CPU)中运行。无论是任务本身要求顺序执行还是整个程序是由多个子任务组成,程序都是按这种方式执行的。即使子任务相互独立,互相无关(即,一个子任务的结果不影响其它子任务的结果)时也是这样。如果并行运行这些相互独立的子任务可以大幅度地提升整个任务的效率。它们本质上就是异步的,需要有多个并发事务。各个事务的运行顺序可以是不确定的,随机的,不可预测的这样的编程任务可以被分成多个执行流,每个流都有一个要完成的目标
根据应用的不同,这些子任务可能都要计算出一个中间结果,用于合并得到最后的结果。
threading模块:提供线程类
使用多线程会同时进行该函数
传递参数
练习:编写ping函数
用于测试远程主机的连通性
在Python中使用pip来下载安装模块(相当于Linux的yum)
list:查看所有的模块
安装模块pip3 install 模块名。从公网上下载paramiko模块的软件包
在安装pymysql模块
卸载为pip3 uninstall 模块名
使用国内镜像站点,配置pip.conf文件
在root下创建pip隐藏目录。配置国内镜像源,index-ur1指定国内镜像源路径,trusted-host信任该镜像网站,否则无法使用22222654

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MacOS 安装C语言版TensorFlow

文章目录 安装C语言版TensorFlow解压归档环境变量c_api.hC语言示例 安装C语言版TensorFlow 官方文档:https://tensorflow.google.cn/install/lang_c?hlzh-cnTensorFlow 提供了一个 C API,该 API 可用于为其他语言构建绑定。该 API 在 c_api.h 中定义&a…

个人博客搭建

liupengs blogs 环境搭建 版本环境:hexo3.8.0 node12.17.0 https://www.cnblogs.com/fengxiongZz/p/7707219.html 搭建 https://www.cnblogs.com/fengxiongZz/p/7707568.html 进阶 https://www.cnblogs.com/chengxs/p/7496265.html https://www.cnbl…

《Windows API每日一练》

2.2.8 第15练:处理WM_CLOSE消息 /*------------------------------------------------------------------------ 015 编程达人win32 API每日一练 第15个例子WM_CLOSE.C:回调函数---处理WM_CLOSE消息 WM_CLOSE消息 DestroyWindow函数 注意&#xf…

Qt5/6使用SqlServer用户连接操作SqlServer数据库

网上下载SQLServer2022express版数据库,这里没啥可说的,随你喜欢,也可以下载Develop版本。安装完后,我们可以直接连接尝试, 不过一般来说,还是下载SQLServer管理工具来连接数据更加方便。 所以直接下载ssms, 我在用的时候,一开始只能用Windows身份登录。 所以首先,我…

判断经纬度是否在某个城市内

一、从高德获取指定城市边界经纬度信息 通过apifox操作&#xff1a; 二、引入第三方jar包&#xff1a; maven地址&#xff1a;https://mvnrepository.com/ maven依赖&#xff1a; <dependency><groupId>org.locationtech.jts</groupId><artifactId>…

(论文翻译)Coordinate Attention for Efficient Mobile Network Design(坐标注意力 CVPR2021)

Coordinate Attention for Efficient Mobile Network Design&#xff08;CVPR2021&#xff09; 文章目录 Coordinate Attention for Efficient Mobile Network Design&#xff08;CVPR2021&#xff09;摘要1.引言2.相关工作3.方法&#xff1a;Coordinate Attention3.1.Revisit …

Golang | Leetcode Golang题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; func wordBreak(s string, wordDict []string) bool {wordDictSet : make(map[string]bool)for _, w : range wordDict {wordDictSet[w] true}dp : make([]bool, len(s) 1)dp[0] truefor i : 1; i < len(s); i {for j : 0; j < i;…

DBeaver连接MySQL提示“Public Key Retrieval is not allowed“问题的解决方式

问题描述 客户端root用户连接数据库出现出现Public Key Retrieval is not allowed 原因分析&#xff1a; 加上allowPublicKeyRetrievalfalse&#xff1a; 解决方案&#xff1a; allowPublicKeyRetrievaltrue&#xff1a;

ICLR24大模型提示(8) | 退一步思考:在大型语言模型中通过抽象引发推理

【摘要】我们提出了一种简单的提示技术&#xff0c;即后退提示法&#xff0c;它使 LLM 能够进行抽象&#xff0c;从包含特定细节的实例中得出高级概念和第一原理。通过使用概念和原理来指导推理&#xff0c;LLM 显著提高了遵循正确推理路径解决问题的能力。我们使用 PaLM-2L、G…

Go微服务: 分布式之通过可靠消息实现最终一致性

通过可靠消息实现最终一致性 可靠消息&#xff0c;就是靠普消息&#xff0c;还是基于之前的这个案例 比如这个订单服务&#xff0c;无论你是先发送消息&#xff0c;还是先新建订单&#xff0c;它其实都是发送的不可靠消息就是说如果这个消息&#xff0c;像mysql事务那样&#…

一维信号循环平移小波降噪方法(MATLAB R2021b)

循环平移算法由Coifman和Donoho最先提出&#xff0c;其基本原理是将信号进行循环平移&#xff0c;将平移后的信号降噪后再做逆循环平移&#xff0c;改变平移位数&#xff0c;多次重复上述运算&#xff0c;将获得的所有结果求平均&#xff0c;得到最后的结果。 在理想情况下&am…

【C++】深入理解decltype和decltype(auto)

深入理解decltype和decltype&#xff08;auto&#xff09; 一、decltype语法介绍二、decltype的推导规则1. expr不加括号2. expr加上括号 三、关于decltype的CV属性推导四、 decltype(auto) 的使用 一、decltype语法介绍 decltype关键字是C11新标准引入的关键字&#xff0c;它…

html--酷炫背景引导主页

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>ZZVIPS酷炫背景引导主页</title><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1,user-scala…

社区贡献者分享 | OpenVINO™ 代码贡献助力我的开源之路

点击蓝字 关注我们,让开发变得更有趣 作者 | 占俊坚 排版 | 李擎 摘要 在 OpenVINO™ 2024.1 release 版本中&#xff0c;我为 OpenVINO™ 添加了 TensorFlow 中的 Rint operation 以及 PyTorch 中的 aten::bucketize operation 的支持&#xff0c;在此分享我的实现过程&#x…

最快的开源UDP传输工具:Kcptun

Kcptun&#xff1a;极速网络隧道&#xff0c;让数据传输飞起来&#xff01;- 精选真开源&#xff0c;释放新价值。 概览 kcptun 是一个轻量级、高性能的TCP/UDP网络加速工具&#xff0c;由xtaci开发并托管在GitHub上。它通过使用kcp协议&#xff0c;为网络数据传输提供了一个快…

深度解析:AI Prompt 提示词工程的兴起、争议与未来发展

PART1: 提示词工程的兴起 在人工智能领域中&#xff0c;一个新的领域——提示词工程&#xff08;prompt engineering&#xff09;——开始显露头角。 这个领域的核心在于精心设计输入&#xff0c;以引导AI模型产生特定的、期望的输出。 随着AI技术的飞速发展&#xff0c;特别…

移除重复节点---链表

面试题 02.01. 移除重复节点 - 力扣&#xff08;LeetCode&#xff09; 链表指针p和curr 与head指向同一块空间&#xff1b; p和head来比较相同的值&#xff0c;遇到一样的值、就改变这个空间里面struct的成员变量next指针指向的地址&#xff0c;跳向next的next再比较&#xf…

深度网络学习笔记(二)——Transformer架构详解(包括多头自注意力机制)

Transformer架构详解 前言Transformer的整体架构多头注意力机制&#xff08;Multi-Head Attention&#xff09;具体步骤1. 步骤12. 步骤23. 步骤34. 步骤4 Self-Attention应用与比较Self-Attention用于图像处理Self-Attention vs. CNNSelf-Attention vs. RNN Transformer架构详…

Kimichat使用案例010:快速识别出图片中的表格保存到Excel

文章目录 一、介绍二、图片信息三、输入内容四、输出内容五、markdown提示词六、markdown输出一、介绍 如果有一张图片格式的表格,想要快速复制到Excel表格中,那么一般要借助于OCR工具。之前试过不少在线OCR工具,识别效果差强人意。其实,kimichat就可以非常好的完成这个任务…

为什么需要在微服务中使用链路追踪?Spring Cloud 可以选择哪些微服务链路追踪方案?

引言&#xff1a;在当今的软件开发领域中&#xff0c;微服务架构已经成为了构建大型应用程序的主流方式之一。随着微服务数量的增加和服务之间复杂性的提高&#xff0c;对于了解和监控服务之间的调用关系变得越来越重要。而链路追踪技术的出现&#xff0c;为解决这一难题提供了…