python核心编程速记【笔记迁移】

news2024/11/25 0:44:05

笔记速记

1.python非常注重缩进,这是它的显著特征之一。

2.import相当于头文件声明模块。

3.利用type函数 type(a)可以查看当前变量类型。 isinstance可以比较两个数据类型并返回一个布尔值。

4.这里面的可直接使用and和or作为一个函数

5.python的算法比较贴合实际,其除法‘/ ’可以直接进行分数运算,要使用整除整舍小数的除法可以用‘// ’同时提供了‘**’ 如 3**2就表示3的平方。

6.python可以直接表达 if 5>=a>3: 不用像c一样5>=a&&a>3 并且它简化了 else if 的表达,可利用elif代替

7.python是直接使用变量,在使用时就要进行赋值,变量名不可以数字开头。

*7.python的文件名有时会与系统有些冲突,这是一个小细节,如命名为random.py就会出现bug

*7.另一个小细节是,想在print中引入’ 如想写出let’s go就要使用转义字符,即print(“let’s go”)

*7.对上一条的优化处理是可以引入 原始字符串,即在变量赋值时加入一个’r’ 如str=r’C:\now’,它可以自动忽略里面的歧义,仅仅当作字符串。(即不会出现\n的换行)

8.当字符串跨越多行时可以利用三引号,这样输出时会保留原格式输出 即"“” “”"

9.for 与range常常配合,用法与c有较大区别。 尤其for的变量更像一个指针,range范围不包括尾部,同时最后一个分支逗号表示间隔。

*9.在数组中的许多函数都是先指定对象,或者说是数组当中的分支函数,一般都是 数组名.函数(函数操作)切勿单独使用!

10.python里的数组更加强大,一般变量可表示数组,中括号初始化,并且元素类型可以混合,用append添加单个元素,extend添加另一个列表(可直接书写列表或者表达式),insert可加入至指定位置(从0计顺序)(可用len函数测量长度)

11.在初始化数组以后,可以之间变量名+[]进行访问,可以完成交换等等操作。

12.删除数组中的元素 可用 remove(直接移除目标) del(全局函数) 后跟要删除的位置,如del a[1]

*12.这里要提到一个较为重要的类似“删除”的函数 叫做’pop’这里译为“弹出”。即对数组使用这个分函数时会弹出(取出)你需要的元素,可以直接进行赋值操作,同时数组里被取出来的值消失。

13.可以对数组进行“切片”,即取一部分数组元素进行使用,原数组不变。 就是 a[上界:下界] 不算末尾值,从0计数 这里可以提到一个小技巧,使用a[:]可以的到原列表的拷贝,即可以在不变化原列表的同时对列表进行操作(仅此方法可以操作,简单的赋值会导致改变,因为在python中数组是通过指针来工作的)

13*这里提到一个函数split()括号中用关键字符进行切割,利用数组的方式访问[-1]表示最末尾的一个元素

14.c语言中对二维数组的访问 如a[1][1],这里是表示访问列表中的列表元素 即层层递进的关系

15.在python中不用再重复的书写逆序,排序,索引,计数操作了。计数:count(计数对象) 索引:index(索引对象,索引范围上界,索引范围下界) 逆序:reverse() 排序:sort(从小到大正序/逆序) 正序:sort() 逆序:sort(reverse=True)

16.这里有一个重要的东西叫做“元组” 元组很像const型的数组,无法改变,书写特征为逗号,一般加上括号表示范围 a=1,2,3 a就为元组。加乘与数组一样 加法拼凑,乘法重复 字符串便可理解为一个元组

17.对于在c语言中学的字符串格式,这里仍旧发挥一定作用,如%d %c %s 等等 我们可以利用这一点对字符串进行处理(格式化) 即可以让字符串在整型,浮点型等等之间转化,% 表示转化操作,具体见例子,同时这里要提到format函数进行对应格式输出(与c语言十分类似)

18.利用help(想要注释的内容) 或者hanshu._doc_来获得英文解释与帮助

19.书写函数可以在形参中使用默认参数,'='赋予默认值即可,实参可以使用特征值参数(就无视了顺序) 函数调用(形参名称=实际参数)

20.lambda是一个很简介舒适的函数定义,可以直接指定参数和函数内容,简介地进行调用 g=lambda x,y: x+y g(1,3)

21.字典当中用copy进行拷贝,b=a.copy(), 它会指向不同的地址(与赋值不同) 字典.clear()来清除字典内容 取字典中的对应内容最好使用get函数 这样不会出现越界报错

22.大括号并不是字典的专利,它可以使用在集合中

23.对于文件的操作,有几个可以连着记。如mkdir(path) 它会创建一级目录,当没有指定全部目录时是当前目录下创建。 makedirs(path)可以创建多级目录 rmdir(path)移除单层目录 目录非空会抛出异常 removedirs(path)多层删除

24.这里介绍一个很有趣的pickle函数 它可以进行‘腌制泡菜’ 对于过大的数据包,便可以进行‘腌制’ 让后续的访问和操作更加容易和优雅 之后便可以理解为一个数据包,通过open+load的形式便可以引用

25.在class中的分支函数要引入参数 self,这相当于区别普通的函数,表示可以通过自身调用该类下的分支函数。在类的方法内使用类的属性变量要使用 self.变量名=…

26.在类的纵向关系中,使用继承来保持一定的常规特征。类的横向关系中,使用"拾遗"(组合)来表示它们之间的一些所属或者横向关系

27.issubclass用于判断是否有类中的继承关系 isinstant用于判断是否为该类下的实例对象

28.(进阶必备)
python中的魔法方法,魔法之处就在于它能够在合适的时候被调用,并不是直接调用访问,一定注意区分,
实例创建和销毁:__init__可以设置该类的一定属性,解决该类的“需求”,一般以self.x=xxx self.y=xxx出现,同时它返回的是null 定义该类的实例化对象时自动调用(传入参数)
__new__一般不会重写,但在继承相关类且想进行一定更改时尤为重要,它会自动 return str.new(cla,string) 同时执行进行修改的操作
__del__所有的实例及引用都被del之后才会自动执行里面的操作
当我们再次审视int list等类时 它们相加时是对象之间的加减 这也就是说我们在书写class时和基本类是一样的 我们可以自定义相关的运算:
与运算符相关的魔法方法:__add__等等 即是在加法时调用,return +相关操作 来进行修改(同时不要在return中出现加法 防止递归) 注意类和魔法方法需要的数据 要正确书写
__setattr__设置类中的属性,__getattr__试图调用不存在的属性的行为,__getattribute__调用已存在属性的时候的行为

29.这里要提到一个其他面向对象的语言中常见的“容器” python中的容器要使用“协议” (与其他编程语言的接口很类似)protocol 在python中没那么正式,更像是“指南”

30.在爬虫中,在urllib.request.urlopen中更改data参数,可以以post的形式进行连接访问,而data的数据就要基于 请求正文中 的date数据,对应相应的格式,基本方法是使用urllib.parse.urlencode()格式

31.更加详细的爬虫 解密还有待学习,还有一个编码

32.更加好的使用爬虫,我们已有了隐藏用户名(head),延迟提交时间(time time.sleep), 代理(ddos的雏形?)

33.从这里开始讲下requests库,requests里的函数十分简洁,基础包括requests.get(对应网页中的get) requests.post(对应网页中的post) requests.delete(对应网页的delete) requests.put(对应网页的put) requests.head(获取网页头信息)

34.get操作完成后可以查看该网页的属性 如:r.text(相应内容的字符串形式) r.headers r.status_code(200/404)(用raise_for_status可以直接判断) r.encoding(返回从header中猜测的编码格式) r.apparent_encoding(返回通过内容猜测的编码格式,更加准确,当encoding不能正确解码时,就用这个) r.content(网页的相应二进制形式)

35.BeautifulSoup可以对网页进行解析,首先要理解网页中的标签树,最基本的soup=BeautifulSoup(‘html’,‘html.pareser()’)可以进行基本的网页解析(用函数prettify打印,可以使用加入.后缀来进行标签的prettify),然后里面还有tag,name,attribute,navigablestring,comment 直接进行属性访问即可 soup.title等等,attrs会返回一个字典,查看字符就soup.string即可

36.对于一个html界面,它由标签树构造,我们要进行上行,下行,平行遍历,详情见tagbianli

37.在网页中信息的标记同样重要,对于一定的信息要进行分类

*37.这里简单介绍一下,html xml json yaml
html:超文本连接,将视频 音效等嵌入文本之中
xml:与html十分相似 同样以<>符号进行数据展示,可以说是html的通用形式
json:javascript object notation即javascript语言面向对象的数据储存方式 是有类型的键值对的表达,与字典比较相似(无法使用注释) 一般用于云端和节点的信息通信
yaml:它是无类型的键值对的表达,利用缩进来进行表达,注意与json的区分 一般为各类系统的配置文件

38.在常规的网页分析上面,我们要灵活应用形式解析及搜索方法 这里使用soup.find_all(name,attrs,recursive,string) 它可以返回一个列表类型 同时传递参数时,若想对一个参数赋予多值,请利用列表传参 直接使用.find_all(True),利用简单的迭代就可以打印所有标签

*38在实际操作中,find_all函数可以省略,即soup(‘a’),直接进行查找

39.接下来是正则表达式,它是一种通用的字符串表达框架,可以表达有一定特征的字符串,同时它非常简洁,同样它可以判断字符串是否符合某种特征, 其用到的re库也是python的标准库,无需额外安装

40.原始字符串是Python中一类比较特殊的字符串,以大写字母R或者小写字母r开始。在原始字符串中,字符“\” 不再表示转义字符的含义。
原始字符串是为正则表达式设计的,也可以用来方便地表示Windows系统下的路径,不过,如果路径以"" 结尾那么会出错。

41.具体的正则表达式语法放在相关图片中。这里额外补充什么是’match’对象,常用的属性有group(0)(返回所以匹配结果),span(表组的开始与结束位置)

*41.这里额外介绍一个函数,叫re.compile(‘正则表达式字符串形式’,flag),它可以对一开始的字符结构进行编译,其结果就是正则表达式对象,可以直接使用re库的各种操作

42.在正则表达式匹配的过程中,可能会出现一个字符串多次匹配,这里默认会是使用’贪婪匹配’(即匹配最长的字符串) 对能够延长字符串的元素进行拓展才能进行最小匹配(如’??‘,’*?‘,’+?',{m,n}?)

43.现在要聊到scrapy框架,不是简单的函数库,它是与request截然不同的两种技术路线,但它们都在爬虫上有着非常好的函数,可用性很强,这里顺便要提到的是,它们都没有应对验证码,提交表单等功能,需要额外拓展。

43*.scrapy可以算是网站级别的爬取,可以批量进行操作,它基于异步结构设计,并发性好,性能高

44.这里对yield函数进行补充,它作为一个生成器要与循环搭配使用,它不会在函数中普通地返回值,在使用一次后会冻结,同时python也鼓励将带yield的函数与for搭配,作为一个生成器,在scrapy中能够生成一系列url链接且占用资源较少

了解更多

请添加图片描述

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

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

相关文章

如何改善食品饮料包装生产企业的OEE?

食品饮料这类商品在我们的日常生活中十分常见&#xff0c;它们存在于各类商店、超市或路边的小店里。而食品饮料的包装是吸引人们购买该产品的一个重要因素。为了在这个市场中脱颖而出并提高盈利能力&#xff0c;企业需要关注设备的综合效率&#xff0c;即OEE&#xff08;Overa…

SpringBoot测试类启动web环境-上篇

1.坐标修改 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 2.测试类测试 说明&#xff1a;SpringBootTest()中的webEnvironment值的说明&#xff1b; 2.1不启…

vue项目js原生属性IntersectionObserver实现图片懒加载

vue项目js原生属性IntersectionObserver实现图片懒加载 IntersectionObserver 使用js原生属性IntersectionObserver实现观察img元素是否处于游览器视口中 懒加载原理&#xff1a;给img设置一个默认url图片&#xff0c;观察图片处于视口内以后&#xff0c;动态改变img的url为自己…

机组 CPU

控制器&#xff1a;协调并控制计算机各部件执行程序的指令序列&#xff0c;其基本功能是取指令、分析指令和执行指令 功能 CPU 必须具有控制程序的顺序执行&#xff08;指令控制&#xff09;、产生完成每条指令所需的控制命令&#xff08;操作控制&#xff09;、对各种操作加…

原神游戏干货分享:探索璃月的宝箱秘密,提高游戏资源获取效率!

《原神》是一款备受玩家喜爱的开放世界冒险游戏&#xff0c;而在游戏中获取资源是提升角色实力的重要途径。在这篇实用干货分享中&#xff0c;我们将介绍一些探索璃月地区的宝箱秘密&#xff0c;帮助你提高游戏资源获取的效率。 首先&#xff0c;璃月地区的宝箱分为普通宝箱和精…

Leetcode刷题详解—— 找出所有子集的异或总和再求和

1. 题目链接&#xff1a;1863. 找出所有子集的异或总和再求和 2. 题目描述&#xff1a; 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果&#xff1b;如果数组为 空 &#xff0c;则异或总和为 0 。 例如&#xff0c;数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 1 。…

基于QT使用OpenGL,加载obj模型,进行鼠标交互

目录 功能分析&#xff08;需求分析&#xff09;技术点分析OpenGL立即渲染模式可编程渲染管线模式 QOpenGLWidget派生类 glwidget逻辑glwidget.hglwidget.cpp 鼠标交互功能obj格式介绍 效果bunnyCayman_GT 功能分析&#xff08;需求分析&#xff09; 基于QT平台&#xff0c;使…

【被面试官吊打系列】啥,你没说面试要考智力题呀 (上) ?

你好&#xff0c;我是安然无虞。 文章目录 1. 二进制问题分金条问题毒药问题 2. 先手必胜问题轮流拿石子抢30的必胜策略Nim游戏 3. 水桶问题5L和6L的水桶怎么量出3L的水&#xff1f;3L和5L的水桶怎么量出4L的水&#xff1f;一个装了10L水的桶&#xff0c;一个7L的空桶还有一个…

2.【自动驾驶与机器人中的SLAM技术】左乘模型推导ESKF

目录 1. 证明题 证明&#xff1a;若某个高斯随机变量为零均值&#xff0c;协方差为对角线矩阵且大小相同&#xff08;各向同性&#xff09;&#xff0c;那么在乘任意旋转矩阵以后&#xff0c;其均值仍为零&#xff0c;且协方差不变&#xff1b; 2. 代码实现运动方程将F矩阵…

FreeRTOS_内存管理

目录 1. 内存管理简介 2. 内存碎片 3. heap_1 内存分配方法 3.1 分配方法简介 4. heap_2 内存分配方法 4.1 分配方法简介 4.2 内存块详解 5. heap_4 内存分配方法 6. FreeRTOS 内存管理实验 6.1 实验程序 内存管理是一个系统基本组成部分&#xff0c;FreeRTOS 中大量…

计算机考研408有多难?25考研经验贴,开个好头很有必要

前言 大家好&#xff0c;我是陈橘又青&#xff0c;相信关注我的各位小伙伴们中&#xff0c;大多都是在计算机专业的大学生吧&#xff01; 每天都有许多人在后台私信我&#xff0c;问我要不要考研&#xff0c;我想说这个东西是因人而异的&#xff0c;像我本人就选择了就业&…

istio 学习笔记

参考&#xff1a;istio简介和基础组件原理&#xff08;服务网格Service Mesh&#xff09;-CSDN博客 Istio 微服务框架 服务治理。 Istio的关键功能: HTTP/1.1&#xff0c;HTTP/2&#xff0c;gRPC和TCP流量的自动区域感知负载平衡和故障切换。 通过丰富的路由规则&#xf…

96 前缀树Trie

前缀树 题解1 STL题解2 参考官方 Trie&#xff08;发音类似 “try”&#xff09;或者说 前缀树 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动补完和拼写检查。 请你实现 Trie 类&#xff1a; …

php冒泡算法实现倒序和正序排列

冒泡排序是一种简单的排序算法&#xff0c;其主要思想是比较相邻的两个元素&#xff0c;根据需要交换位置&#xff0c;将较大&#xff08;或较小&#xff09;的元素逐渐冒泡到数组的一端&#xff0c;从而实现排序。 1、从小到大排序 function bubbleSort($arr) {$len count(…

Antv/G2 图表背景实线改为虚线

坐标轴 - Axis 文档 绘图属性 - ShapeAttrs 文档 图表背景实线改为虚线代码示例&#xff1a; chart.axis("value", {grid: {// 背景网格刻度线样式line: {style: {lineWidth: 0.5,lineDash: [5, 2], //虚线},},}, });未设置前页面效果&#xff1a; 添加代码配置&…

MQTT协议消息代理服务公网远程连接

文章目录 前言1. Linux 搭建 Mosquitto2. Linux 安装Cpolar3. 创建MQTT服务公网连接地址4. 客户端远程连接MQTT服务5. 代码调用MQTT服务6. 固定连接TCP公网地址7. 固定地址连接测试 前言 Mosquitto是一个开源的消息代理&#xff0c;它实现了MQTT协议版本3.1和3.1.1。它可以在不…

linux os cpufreq 调频

amd ubuntu os 调频&#xff1a; sudo apt install linux-intel-iotg-5.15-tools-common # version 5.15.0-1043.49~20.04.1, or sudo apt install linux-oem-5.6-tools-common # version 5.6.0-1017.17 sudo apt install linux-tools-common …

城市内涝积水监测,万宾科技内涝预警监测系统

每一个城市的排水体系都是一个复杂的网络系统&#xff0c;需要多个部分配合协调&#xff0c;预防城市排水管网带来安全隐患&#xff0c;也因此才能在一定程度上缓解城市内涝带来的安全问题。在海绵城市建设过程中不仅要解决大部分道路硬化导致的积水无法渗透等问题&#xff0c;…

Java 设计模式——访问者模式

目录 1.概述2.结构3.案例实现3.1.抽象访问者类3.2.抽象元素类3.3.具体元素类3.4.具体访问者类3.5.对象结构类3.6.测试 4.优缺点5.使用场景6.扩展6.1.分派6.2.动态分配6.3.静态分配6.4.双分派 1.概述 访问者模式 (Visitor Pattern) 是一种行为型设计模式&#xff0c;它用于将数…

潼南柠檬产业发展大会举行 这三个场景“柠”聚了人气

华龙网讯&#xff08;首席记者 羊华&#xff09;今&#xff08;6&#xff09;日下午&#xff0c;2023中国潼南柠檬产业发展大会正式举行。潼南区准备了“大礼包”&#xff0c;既有专业论坛峰会&#xff0c;也首发了“柠檬产业大脑”&#xff0c;还进行了招商引资集中签约&#…