当前位置: 首页 > news >正文

Python入门:6个好用的Python代码,快来收藏!

文章目录

  • 1.类有两个方法,一个是 new,一个是 init,有什么区别,哪个会先执行呢?
  • 2.map 函数返回的对象
  • 3.正则表达式中 compile 是否多此一举?
  • 4.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
  • 5.一行代码将字符串 "->" 插入到 "abcdefg"中每个字符的中间
  • 6.zip 函数
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道


在这里插入图片描述

1.类有两个方法,一个是 new,一个是 init,有什么区别,哪个会先执行呢?

class test(object):​​​    def __init__(self):​​​        print("test -> __init__")​​​    def __new__(cls):​​​        print("test ->__new__")​​​        return super().__new__(cls)​​​​​a = test()

运行结果如下:

test ->__ new__​​​test -> __ init__

再来看另一个例子:

class test2(object):​​​    def __init__(self):​​​        print("test2 -> __init__")​​​ ​​​    def __new__(cls):​​​        print("test2 ->__new__")​​​        return object()​​​ ​​​b = test2()

运行结果如下:

test2 ->__ new__

这里给出官方的解释:init 作用是类实例进行初始化,第一个参数为 self,代表对象本身,可以没有返回值。new 则是返回一个新的类的实例,第一个参数是 cls 代表该类本身,必须有返回值。很明显,类先实例化才能产能对象,显然是 new 先执行,然后再 init,实际上,只要 new 返回的是类本身的实例,它会自动调用 init 进行初始化。但是有例外,如果 new 返回的是其他类的实例,则它不会调用当前类的 init。

下面我们分别输出下对象 a 和对象 b 的类型

print( type(a))​​​#<class '__main__.test'>​ ​​print( type(b))​​​#<class 'object'>

可以看出,a 是 test 类的一个对象,而 b 就是 object 的对象。

2.map 函数返回的对象

map()函数第一个参数是 fun,第二个参数是一般是 list,第三个参数可以写 list,也可以不写,作用就是对列表中 list 的每个元素顺序调用函数 fun 。

>>> b=map(lambda x:x*x,[1,2,3])​​​>>> [i for i in b]​​​[1, 4, 9]​​​>>> [i for i in b]​​​[]​​​>>>

有没有发现,第二次输出 b 中的元素时,发现变成空了。原因是 map() 函数返回的是一个迭代器,并用对返回结果使用了 yield,这样做的目的在于节省内存。

举个例子:

#encoding:UTF-8  ​​​def yield_test(n):  ​​​    for i in range(n):  ​​​        yield call(i)  ​​​    #做一些其它的事情      ​​​ ​def call(i):  ​​​    return i*2  ​​​ ​​#使用for循环  ​​​x = yield_test(5)​​​print([i for i in x])​​​print([i for i in x])

执行结果为:

[0, 2, 4, 6, 8]​​​ []

这里如果不用 yield,那么在列表中的元素非常大时,将会全部装入内存,这是非常浪费内存的,同时也会降低效率。

3.正则表达式中 compile 是否多此一举?

比如现在有个需求,对于文本

中国,用正则匹配出标签里面的“中国”,其中 class 的类名是不确定的。

有两种方法,代码如下:

>>> import re​​>>> text = '<div class="nam">中国</div>'​​​>>> #方法一​​​...​​​>>> re.findall('<div class=".*">(.*)</div>',text)​​​['中国']​​​>>> #方法二​​​...​​​>>> regex='<div class=".*">(.*)</div>'​​​>>> pattern = re.compile(regex)​​​>>> re.findall(pattern,text)​​​['中国']​​​>>>

这里为什么要用 compile 多写两行代码呢? 原因是 compile 将正则表达式编译成一个对象,加快速度,并重复使用。

4.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

>>> [j for i in [[1,2],[3,4],[5,6]] for j in i]​​​[1, 2, 3, 4, 5, 6]​​​>>>

5.一行代码将字符串 “->” 插入到 "abcdefg"中每个字符的中间

>>> "->".join("abcdef")​​​'a->b->c->d->e->f'​​​>>>

这里也建议多使用 os.path.join() 来拼接操作系统的文件路径。

6.zip 函数

zip() 函数在运算时,会以一个或多个序列(可迭代对象)做为参数,返回一个元组的列表。同时将这些序列中并排的元素配对。zip() 参数可以接受任何类型的序列,同时也可以有两个以上的参数;当传入参数的长度不同时,zip 能自动以最短序列长度为准进行截取,获得元组。

>>> a=[1,2]​​​>>> b=(3,4)​​​>>> zip(a,b)​​​<zip object at 0x000001A20201AA08>​​​>>> for i in zip(a,b):​​​...     print(i)​​​...​​​(1, 3

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

相关文章:

Python入门:6个好用的Python代码,快来收藏!

文章目录 1.类有两个方法&#xff0c;一个是 new,一个是 init,有什么区别&#xff0c;哪个会先执行呢&#xff1f;2.map 函数返回的对象3.正则表达式中 compile 是否多此一举&#xff1f;4.[[1,2],[3,4],[5,6]]一行代码展开该列表&#xff0c;得出[1,2,3,4,5,6]5.一行代码将字符…...

Linux常用指令(二)——文件管理

Linux文件管理 2.1 创建文件 touch2.2 复制文件 cp2.3 删除文件 rm2.4 移动文件 mv2.5 重命名文件 rename2.6 查看文件 cat2.7 查看文件的类型 file2.8 编辑文件 vim2.9 打印文件内容 cat2.10 变更文件所有者 chown2.11 修改文件权限 chmod 更加完整的Linux常用指令 2.1 创建文…...

AI开源 - LangChain UI 之 Flowise

原文&#xff1a;AI开源 - LangChain UI 之 Flowise 一、Flowise 简介 Flowise 是一个为 LangChain 设计的用户界面(UI)&#xff0c;使得使用 LangChain 变得更加容易&#xff08;低代码模式&#xff09;。 通过拖拽可视化的组件&#xff0c;组建工作流&#xff0c;就可以轻…...

java的集合类中哪些可以添加不同类型数据,哪些不可以?

在Java的集合类中&#xff0c;有些可以添加不同类型的数据&#xff0c;而有些则要求元素类型必须一致。以下是一些常见的Java集合类及其对元素类型的要求&#xff1a; 1、ArrayList ArrayList可以添加不同类型的数据&#xff0c;因为它使用了泛型&#xff0c;可以存储任何类型…...

基于51单片机的烟雾和温湿度检测控制系统仿真(智能防火系统,火灾报警灭火系统)

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;单片机防火 获取完整源码源文件仿真源文件论文报告说明文档等 基于51单片机的光照及温湿度检测报警控制系统 由STC89C52单片机LCD1602液晶显示屏ADC0832模块蜂鸣器DHT11温湿度传感器 烟雾传感器LED按键构成 具体功能&…...

【多线程】静态代理

当使用静态代理模式时&#xff0c;我们会有一个真实的对象&#xff08;RealSubject&#xff09;&#xff0c;一个代理对象&#xff08;ProxySubject&#xff09;&#xff0c;代理对象将请求转发给真实对象&#xff0c;并可以在请求前后执行额外的操作。 真实对象和代理对象要实…...

线性代数 第二章 矩阵

一、概念 个数排成的m行n列的表格 二、运算法则 三、初等变换 &#xff08;1&#xff09;用非零常数k乘矩阵的某一行&#xff08;列&#xff09;&#xff1b; &#xff08;2&#xff09;互换矩阵某两行&#xff08;列&#xff09;的位置&#xff1b; &#xff08;3&#…...

vue实现自定义字体

1、字体资源查找 网址 https://eng.m.fontke.com/ 选择想要的字体之后下载 获取文件夹内的.ttf文件 2 、字体引入 在项目根目录下新建font文件夹&#xff0c;将ttf文件放在里面 3、相应的页面vue文件中引入 在style标签中加上 font-face { font-family: ‘ZCOOLXiaoWei’…...

Selenium安装WebDriver Chrome驱动(含 116/117/118/119/120/)

1、确认浏览器的版本 在浏览器的地址栏&#xff0c;输入chrome://version/&#xff0c;回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号&#xff08;只看大版本&#xff09;下载对应文件 2.2 116版本…...

springboot的安全机制

一.jwt Spring Boot是一个用于开发Java应用程序的开源框架,它提供了一种快速、简单和可扩展的方式来构建独立的、生产级别的应用程序。在最新的版本Spring Boot 2.5中,引入了对JWT(JSON Web Token)的支持。本文将介绍如何在Spring Boot 2.5中使用JWT,并提供一个简单的示例…...

学习c++的第四天

目录 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 运算符优先级 运算符 算术运算符 算术运算符是 C 中用于执行基本算术操作的运算符。 加法运算符 ()&#xff1a;将两个操作数相加。例如&#xff0c;A B 将得到 30&#xff0c;因为 …...

BIOS开发笔记 – 显示

UEFI启动流程跑完前三阶段,UEFI环境的准备基本完成,到BDS阶段的任务就是准备引导OS。在此之前还需要使一些必要的硬件工作起来,比如键盘设备,屏幕等,怎么让屏幕工作呢?简单的说就是执行其相关的UEFI驱动。要注意一下的是,这里所说的驱动并不是屏幕的驱动,而是GPU的驱动…...

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表&#xff0c;其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一…...

k8s-调度约束

目录 工作机制 调度过程 指定调度节点 亲和性 键值运算关系 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 维护操作 故障排除步骤 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了…...

C++设计模式_26_设计模式总结

本篇为C++设计模式的总结课,此篇再回到原帮助大家梳理一下。 文章目录 1. 一个目标2. 两种手段3. 八大原则4. 重构技法5. 从封装变化角度对模式分类6. C++对象模型7. 关注变化点和稳定点8. 什么时候不用模式9. 经验之谈10. 设计模式成长之路1. 一个目标 管理变化,提高复用!…...

解锁AI语言模型的秘密武器 - 提示工程

文章目录 一、LLM概念1.1 什么是LLMs1.2 LLMs类别1.3 如何构建LLM 二、提示工程简介2.1 基础提示2.2 使用提示词的必要性 三、 提示3.1 如何写好提示词3.1.1 使用分隔符3.1.2 结构化输出3.1.3 风格信息3.1.4 给定条件3.1.5 给出示例3.1.6 步骤分解3.1.7 不断迭代 3.2 提示工程3…...

qt手撕菜单栏

最近有个项目需要手写菜单栏。 就写了一个简单的程序,供大家参考! #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include...

UE5——网络——RPC

RPC&#xff08;这个是官方文档的资料&#xff09; 要将一个函数声明为 RPC&#xff0c;您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如&#xff0c;若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC&#xff0c;您可以…...

基于ASP.NET MVC + Bootstrap的仓库管理系统

基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用&#xff0c;含有简单的说明文档。 适合单仓库&#xff0c;基本的仓库入库管理&#xff0c;出库管理&#xff0c;盘点&#xff0c;报损&#xff0c;移库&#xff0c;库位等管理&#xff0c;有着可视化图表。 系统采用Bo…...

Jetson NX FFmpeg硬件编解码实现

最近在用Jetson Xavier NX板子做视频处理&#xff0c;但是CPU进行视频编解码&#xff0c;效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看&#xff0c;发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改&#xff0c;因此需…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...