首页 > 编程语言 >python随笔day4

python随笔day4

时间:2024-08-19 19:48:53浏览次数:10  
标签:多线程 python day4 数据类型 随笔 数据 服务端 客户端

python实战面试题目

1、列出你知道的http协议的状态码,说出表示什么意思?

  • 1xx临时响应
  • 2xx 成功
  • 3xx重定向
  • 4xx 请求错误
  • 5xx服务器错误

我经常遇到的:200成功、404未找到网页文件、403服务器拒绝请求(禁止)、304未修改(自从上次请求后该网页就未修改过)、500服务器内部错误、503服务器请求超时。

2、http和https的区别(简单来说就是一个不加密一个加密)

HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)

(1)HTTP :HTTP是超文本传输协议,它本身不提供加密功能,数据在传输过程中以明文形式进行,因此存在被截获或篡改的风险。

(2)HTTPS :HTTPS是HTTP的安全版本,它使用了SSL(安全套接层)/TLS(安全传输层协议)来对传输的数据进行加密,确保数据在传输过程中的安全性和完整性。

3、聊聊scrapy框架的了解?由那些组成?你一般写爬虫用的是requests还是scrapy?为什么不用scrapy?他两的优势是什么?
scrapy 是一个python爬虫框架,由下面6个部分组成:
引擎 - 负责整个系统的数据处理流程
蜘蛛程序 - 用户自定义抓取特定的网页url和解析规则的模块
调度器 - 将要处理的url列入队列中
下载器 -抓取网页内容返回响应
数据管道 -对数据进行清洗、验证和存储
中间件 - 提供用户自定义代码来拓展scrapy功能,氛围下载中间件和蜘蛛中间件。
数据处理流程:
引擎询问蜘蛛程序要爬取哪个网页,通过调度器列入队列中,然后引擎再通过下载中间件调用下载器拿取网页内容返回响应给引擎,引擎调用蜘蛛程序,,拿到数据条目,通过蜘蛛中间件将数据通过数据管道保存到数据库中。
requests
scrapy相对于requests太复杂,处理验证码以及反爬都不如自己写的调用requests库代码好处理。

4、对于验证码,你是怎么操作的?
图形验证码操作

5、redis有那些数据类型?redis 为什么快?
redis有16个数据库,从0-15
redis有五大基本数据类型:String(字符串)、List(列表)、Set(集合)、Sorted Set(有序集合)、Hash(哈希)
快?
内存存储,将数据存储在内存中而不是磁盘当中,读写速度快
采用单线程操作,避免了多线程并发带来的锁竞争操作
高效的数据结构和算法,采用哈希,键值对,检索速度更快
采用内存淘汰策略,数据存储在内存之中内存有限,会清理不用或者不常用的数据
采用非阻塞I/O模型,数据没有准备好会被返回,不会发生线程堵塞

6、tcp协议和udp协议?使用场景?

tcp和udp都工作在传输层,在程序之间传递数据

tcp 安全可靠,基于连接,稳定性强,比如发送邮件,浏览网页等

udp 不安全不可靠,基于非连接,容易丢包,资源占用少,性能损耗少,传输速度快,比如语音通话、视频通话等

tcp传输确认:三次握手四次挥手?

三次握手为了解决网络通道不可靠的问题

三次握手:客户端向服务端发起连接时会发送SYN包询问能否建立连接,服务端收到包后如果同意连接,就会发送SYN+ACK包给客户端,客户端收到后发送ACK包建立连接。

四次挥手:客户端向服务端发送FIN包请求终止链接,进入等待状态(1),服务端收到后发送ACK包给客户端,进入关闭等待状态(2),客户端收到ACK包后,服务端再发送FIN包进行确认是否终止连接(3),客户端收到后发送ACK包给服务端进入超时等待状态之后关闭,但是服务端一收到ACK包就会关闭(4)。

7、多线程?多进程?在什么情况下开多线程?
进程是一个程序正在运行,没有运行的代码叫做程序,多个进程之间内存独立、互不干扰,而多线程,线程是依赖进程而存在的,一个进程至少有一个主线程,线程与线程之间数据可以共享。
场景:多线程用于I/O密集型任务,比如说网络请求,运行浏览器是一个进程,浏览里面的多个网址相当于多线程,还有文件读写等。
多进程适用于CPU密集任务
1722909776390
8、python的GIL锁?
全局解释器锁

限制多线程同时执行,确保同一时刻只有一个线程在执行。

9、深浅拷贝?(前面笔记有,记得不够扎实),python数据容器的特点?

深拷贝就是根据原来的对象复制一个新的对象,新对象与原来的对象之间完全独立,互不干扰,不共用一个内存地址。浅拷贝就是复制对象的属性,如果说浅拷贝复制的是引用类型,那么会改变原来对象的值。
python数据容器有字典、列表、集合、元组、字符串
(1)列表list的特点:
[元素1,元素2....]
列表里面的元素能够重复,可以被修改,从前往后下标从0开始,从后往前下标从-1开始,可以通过下标获取元素值,支持for循环和while循环,有序可以容纳不同的数据类型
(2)字典dict的特点:
{key1:value1,key2:value2.......}
key和value可以是任意数据类型,key不允许被重复,字典通过key来检索value,不能通过下标,可以容纳多个数据类型,每一份数据是key、value键值对,可以被修改,支持for循环,不支持while循环。
(3)集合set的特点:
{元素1,元素2...}
集合不能够重复,支持for循环,不支持while循环因为不支持下标索引,无序存储,不支持while循环,支持for循环,可以修改,容纳多个数据可不同数据类型。
(4)元组的特点
(元素1,元素2,.....)
元组不能够被修改,容纳多个数据和不同数据类型,有序可重复,支持for循环和whie循环。
(5)字符串的特点
只可以存储字符串,长度取决于内存大小,支持下标索引,允许重复。
10、字典的查询速度比列表查询速度快的原因?
是因为字典查询机制基于哈希表,通过键来查询值,不需要遍历整个字典,而列表如果不知道索引值就需要遍历整个列表。
10、装饰器?

11、聊聊数据绑定的原理?数据劫持

vue中的数据双向绑定使用v-model,用户表单输入数据(表单、文本框等)和数据源,比如说mysql数据库捆绑在一起。说白了原理就是数据劫持,数据从用户那边传过来,被一段代码给劫持了,对其进行修改操作或者检查。就相当于一个检查站,对传过来的数据进行检查和修改。

数据绑定是一种技术,它允许开发者将用户界面的元素(如输入框、标签等)与数据源(如JavaScript对象、数据库等)连接起来。数据绑定就是实现数据源与界面元素之间同步的“桥梁”。

12、javaScript中let和var的区别

var可以是全局变量也可以是局部变量,javaScript中var定义在函数外边全局变量,定义在函数里面,也就是代码块中,就是局部变量。全局变量的生命周期是整个页面关闭就结束,而局部变量则是代码块运行完毕就结束了。
两个都是用来定义变量的,但是let定义的变量只在定义的代码块中生效,并且只能定义一次,不能重复声明

标签:多线程,python,day4,数据类型,随笔,数据,服务端,客户端
From: https://www.cnblogs.com/zlik8991/p/18341891

相关文章

  • OpenCV-Python系列之对极几何
    点击查看代码importnumpyasnpimportcv2ascvimg1=cv.imread("data1/1.png",0)#queryimageleftimageimg2=cv.imread("data1/2.png",0)#trainimagerightimagesift=cv.SIFT_create()#sift1=cv.xfeatures2d.SIFT_create()kp1,des1=sift.dete......
  • 【OpenCV_python】凸包检测 轮廓特征 直方图均衡化 模板匹配 霍夫变换
    凸包特征检测凸包就是图像的最小外接多边形,通过图像的轮廓点,找到距离最远的两个点的直线,根据直线找到距离最远的下一个点,直到所有的点被包围在多边形内读取图像二值化找图像的轮廓获取凸包点的坐标绘制凸包点convexHull获得图像的凸包点cv2.convexHull(points,hu......
  • [oeasy]python0030_动态控制断点_breakpoints_debug_调试
     030_动态控制断点_breakpoints_debug_调试290播放·0赞同视频​设置断点_break_point_continue_运行到断点......
  • ubuntu(linux): 编译安装使用python3.12.5
    一,python官网:https://www.python.org/下载页面:https://www.python.org/downloads/source/如图:二,安装1,下载:wget从命令行下载:liuhongdi@lhdpc:/usr/local/source/python$wgethttps://www.python.org/ftp/python/3.12.5/Python-3.12.5.tgz2,解压:liuhongdi@lhdpc:/......
  • [开源&分享]一个用于单片机IAP自动发送的串口助手,上位机,使用Python+tkinter制作
    使用Python+tkinter制作。功能:这是个给单片机通过串口进行IAP的上位机,与单片机中的BOOT程序配合使用,完成对单片机APP程序的升级。可以完成bin文件的切片,CRC校验(使用Crc32Mpeg2),打包自动发送。界面如下图所示:接收区是显示信息的区域,接收和发送的信息都在这显示串口配置区域......
  • [Python学习日记-9] Python中的运算符
    简介        计算机可以进行的运算有很多种,但可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,而本篇我们暂只介绍算数运算、比较运算、逻辑运算、赋值运算算数运算一、运算符描述        以下......
  • python基础语法 010 类和对象-6-1 继承定义
    前提:    在真实世界中,类型之间可能存在范围包含关系,比如:人这个类型和亚洲人这个类型。        人是包括了亚洲人的,如果某人是员工亚洲人,那么它必定是一个人        这种关系,在编程语言中称为继承关系        比如上面例子:亚洲人这个类就继......
  • Python 实现Word和TXT文本相互转换
    Word文档(.doc或.docx)和纯文本文件(.txt)是两种常用的文件格式。Word文档通常用于复杂的文档处理和排版,而纯文本文件则用于存储和传输纯文本信息。了解如何在这两种格式之间进行转换能提高工作效率,并便于文件管理。本文将详细介绍如何使用Python实现Word和TXT文件格式之间的相互转换......
  • Python一些简单基础的模板化语法
    字符串的格式化%s:可以接收任何类型的传值(%d只可以接收整型int)单个值"myageis%s"%"18.56"按照值对应res="mynameis%s,myageis%s"%("xj",18)按照字典传值res="mynameis%(name)s,mynameis%(age)s"%{"age":"......
  • 【Python实现禁用任务管理器】
    效果展示:代码及解析:提示:使用pyinstaller打包可以避免弹窗,食用更佳哦提示(2):运行后要等待一段时间再关机哦禁用代码:要禁止任务管理器关闭Python程序,可以通过修改注册表来实现。以下是示例代码:importwinregimportctypesimportsys#以管理员身份运行此程序ct......