总结(2)--- 小知识点总结(基础知识、网络编程知识)

基础知识python

 

Python 基础(小知识点总结)linux

一、Python中是如何实现list和tuple之间的转换的web

  可使用内置函数直接转换正则表达式

  list ---> tuple    tuple(list)算法

  tuple ---> list    list(tuple)数据库

 

二、Python 中pass语句的做用编程

  pass 语句不就执行任何操做,通常做为占位符或者建立站位程序数组

 

三、input()函数的理解浏览器

  在Python3中, input()获取用户输入,不论用户输入的是什么,获取到的都是字符串缓存

  在Python2中,raw_input() 和input(), raw_put() 和Python3 中的input()做用是同样的,input()输入的是什么类型的,获取到的就是什么类型的

 

四、写出一段Python代码实现删除一个list里面的重复元素

  方法一  使用map的fromkeys来自动过滤重复值

  

a = [1,2,3,4,2,1,4,5,6]
b = {}
b = b.fromkeys(a)
print(b)
# 输出{1: None, 2: None, 3: None, 4:None,5: None, 6: None}

a = list(b.keys())
print(a)
# 输出 [1,2,3,4,5,6]

 

  方法二 利用set(),set定义是定义集合的,无序,不重复。

a = [1,2,4,2,4,4,5,2]
# set是非重复的,无序集合。 能够用set先进行去重 ,list()转化成列表,a.sort来排序

a = list(set(a))

print(a)
# 输出 [1,2,4,5]

 

五、在linux中find 和 grep 的区别

  linux 系统中grep命令是一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

  grep全程是Global Regular Expression Print ,表示全局正则表达式版本,它 使用权限是全部用户

而linux下的find 

  功能:在目录结构中搜索文件,并执行指定的操做。此命令提供了至关多的查找条件,功能很强大

  语法:find起始实目录 寻找条件 操做

  说明:find 命令从之低昂的起始目录开始,递归地搜索其各个子目录,查找知足寻找条件的文件并对之采起想换的操做

 

简单的说, grep是查找匹配条件的行,find是搜索匹配条件的文件。

 

六、re模块中的search() 和 match()的区别

  match()函数值检测RE是否是在string的开始位置匹配

  search()会扫描整个string查找匹配

  也就是说match() 只有在0 位置匹配成功的话才有返回

  若是不是开始位置匹配成功的话,match()就返回none

 

七、什么是lambda函数,有什么好处

  lambda 函数是一个能够接受任意多个参数而且返回单个表达式值的函数

  一、lambda 函数比较轻便,很适合须要完成一项功能,可是此功能只在此一处使用,连名字都很随意的状况下

  二、匿名函数,通常用来给filter,map这样的函数式编程服务

  三、做为回调函数,传递给某些应该,好比消息处理

 

八、Python的参数传递是值传递仍是引用传递

  Python的参数传递有:位置参数、默认参数、可变参数、关键字参数

  函数的传值究竟是值传递仍是引用传递,要分状况:

不可变参数用值传递

  像整数和字符串这样的不可变对象,是经过拷贝进行传递的,由于你不管如何都不可能在原处改变对象

可变参数是引用传递

  好比像列表,字典这样的对象是经过引用传递、和c语言里的用指针传递数组很类似,可变对象能在函数内部改变

 

九、面向对象的理解

  面向对象是至关于面向过程而言的。面向过程语言是一种基于功能分析的、以算法为中心的程序设计方法,而面向对象是一种基于结构分析的、以数据为中心的程序设计思想,在面向对象语言中有一个很重要的概念,叫作类

  面向对象有三大特征:封装、继承、多态

 

十、交换俩个变量的值

  a, b = b, a

 

十一、函数装饰器有什么做用,并举出实例

装饰器本质上是一个Python函数,它能够在让其余函数在不须要作任何代码的变更的前提下增长额外的的功能。

装饰器的返回值也是一个函数的对象,它常常用于有其切面需求的场景

好比:插入日志、性能测试、事务处理、缓存、权限的校验等场景

有了装饰器就能够抽离大量的与函数功能自己无关的雷同代码并发并继续使用

 

十二、迭代器和生成器函数的区别

  • 迭代器是一个更抽象的概念对象,任何对象,若是它的类有next方法和iter方法返回本身自己,对于string、list、dict、tuple、等这类容器对象,使用for循环遍历是很方便的。 在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是Python的内置函数。贼没有后续元素时,next(0会抛出一个Stoplteration异常
  • 生成器(Generator)是建立迭代器的简单而强大的工具。他们写起来就想是正规的函数,只是在须要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置
  • 区别:生成器能作到迭代器能作的全部事情,并且由于自动建立了iter()和next()方法,生成器显得特别简洁,而生成器也是高效的,使用生成器表达式取代列表解析能够同时节省内存。除了建立和保存程序状态的自动方法,当发生终结时,还会自动抛出异常

1三、Python中闭包的理解

 在函数内部再定义函数,而且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之闭包。返回的是内部函数的引用

 


 

 

网络编程相关知识

 

1简述TCP和UDP的区别以及优缺点

  UDP是面向无链接的通信协议,UDP数据包括目的端口号和源端口号信息

    优势:UDP速度快、操做简单、要求系统资源较少,因为通信不须要链接,能够实现广播发送

    缺点:UDP传送数据前并不与对方创建链接,对接收到的数据也不发送确认信号,发送端不知道数据是否正确接收,也不重复发送,不可靠

 

  TCP是面向链接的通信协议,经过三次握手创建链接,通信完成是四次挥手

    优势: TCP在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。

    缺点: TCP相对UDP速度慢一点,要求系统资源较多

 

2简述浏览器经过WSGI请求动态资源的过程

 

  • 发送HTTP请求动态资源给web服务器
  • web服务器收到请求后经过WSGI调用一个属性给应用程序框架
  • 应用程序框架经过引用WSGI调用web服务器的方法 ,设置返回状态和返回头信息
  • 调用后返回,此时web服务器保存刚刚设置的信息
  • 应用程序查询数据库,生成动态页面的body的信息
  • 把生成的body信息返回给web服务器
  • web服务器把数据返回给浏览器

 

3描述用浏览器访问www.baidu.com的过程

先要解析出baidu.com对应的IP地址

  • 要先是使用arp获取默认网关的mac地址
  • 组织数据发送给默认网关(IP仍是dns服务器的IP,可是mac地址是默认网关的mac地址)
  • 默认网关拥有转发数据的能力,把数据妆发给路由器
  • 路由器根据本身的路由协议,来选择一个合适的较快的路径转发数据给目的网关
  • 目的网关(dns服务器所在的网关),吧数据转发给dns服务器
  • dns服务器查询解析出baidu.com对应IP地址,并原路返回请求这个域名的client

获得了baidu.com对应的IP地址以后,会发送TCP的3次握手,进行链接

  • 使用HTTP协议发送请求数据给web服务器
  • web服务器接受请求以后,经过查询本身的服务器获得相应的结果,原路返回给浏览器
  • 浏览器接受到数据以后经过浏览器本身的渲染功能来显示这个网页
  • 浏览器关闭tcp链接,即4次挥手结束,完成整个访问过程
相关文章
相关标签/搜索