Python学习


Python

  • 列举常见的内置函数
内置函数
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() import()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
  • 简述yield和yeild from关键字

60、简述 yield和yield from关键字。- 追风的小蚂蚁- 博客园 (cnblogs.com)

  • 常用模块都有哪些,列举8个

time模块datetime模块random 模块os 模块sys 模块json 和 pickle 模块hashlib和hmac 模块logging 模块numpy 模块pandas 模块matplotlib 模块re 模块typing 模块collections 模块pathlib 模块shutil 模块xml 模块subprocess 模块configparser模块math模块

  • 序列化与反序列化模块

json模块和pickle模块是用来序列化和反序列化数据的模块。

序列化指的是把内存的数据类型转换成一种特定的格式的内容,该格式的内容可用于存储或者传输给其他平台(其他编程语言)使用,反序列化就是将其他平台上的数据转换成python能够识别的数据格式。

序列化:

内存中的数据类型—-》序列化—-》特定的格式(json/pickle格式)

反序列化:

内存中的数据类型《—-反序列化《—-特定的格式(json/pickle格式)

数据进行序列化有两种用途:

其一,可以持久保存程序运行过程中产生的数据,将数据写到磁盘中。

其二,序列化之后,不仅可以把序列化后的内容写入磁盘,还可以通过网络传输到别的机器上,如果收发的双方约定好使用一种序列化的格式,那么便打破了平台/语言差异化带来的限制,实现了跨平台数据交互。

序列化和反序列化的操作可以借助json和pickle模块。

  • 列举3条常见异常

  • 列举三条以上PEP8编码规范

  • json序列化时,可以处理的数据类型有哪些?如何保持原字典的顺序?

  • @classmethod,@staticmethod,@property含义及用法

  • 写一个可以给定出错重试次数的装饰器,用来处理HTTP超时等

def getresponse(url):
    r=resquests.get([www.baidu.com](http://www.baidu.com))
return r.content
  • 简述python的垃圾回收机制

  • HTTP协议中,Cookie和Session的区别是什么?GET和POST分别是做什么,你还知道其他的方法吗

  • Python中有哪些方法可以实现并行,他们分别适用于什么场景?如果Django的web服务器想要提高并发性能,有哪些方法?

  • Python中的装饰器是什么?@classmethod,@staticmethod,@property这些装饰器的用途分别是什么?请实现一个简单的装饰器,实现运行函数的过程中打印出函数执行时间

  • 简要描述数组、链表、队列、堆栈的区别。如果我已经利用Python实现了一个堆栈的类Stack,是否可以以此为基础实现一个队列?请写一段代码实现

  • 写出你知道的排序算法,并使用Python实现一种排序算法,对0-100的整数列表进行排序

  • 什么是可变于不可变类型

  • 浅拷贝和深拷贝的实现方式、区别:

  • new()与__init__()的区别:

  • 你知道几种设计模式

  • 编码和解码你了解过么

  • 什么是装饰器:如果想在函数之后进行装饰,应该怎么做

  • 手写个使用装饰器实现的单例模式

  • 手写正则邮箱地址

  • 进程通信的方式有几种

  • range和xrange的区别

  • 手写,用一行python写出1+2+3+…+10**8

  • TCP/IP分别在模型的哪一层

  • socket长连接是什么意思

  • http一次连接的全过程:你来说下从用户发起的request——到用户的response

  • 线程和进程的联系与区别

  • 死锁的条件有哪些

  • list和tuple区别有哪些

  • set类的特点有哪些

  • GIL是什么?它对于Python多线程编程有什么影响

  • 函数参数*args和**kwargs分别是什么意思

  • numbers是一个列表,元素都是整型,请写出代码求numbers中的所有值的和

  • 请为这个函数写一个装饰器,使用之后,在函数调用前和后分别输出log到stderr(简单的print log即可)

def foo():

print (“Function foo”)
  • 函数bar()可能会抛出一个自定义的异常CustomError,请写代码实现如下功能:如果bar()抛出了CustomError,打印“custom error”;否则打印“success”

  • 在定义类的时候,@property装饰器的作用是什么?

  • 请描述一下mock库(python2.7单独提供),或者unittest.mock库(python3.3开始加入标准库)的作用

  • 如果你使用过以下几个工具,请描述一下他们的作用:pip,virtualenv,tox

  • 函数bisect_left(a,x)的功能如下,参数a是一个按照升序排列的list(list中的元素类型是整型)参数x是一个整型,函数bisect_left(a,x)返回函数x在a中的最左侧的插入位置,插入x之后,数组a保持有序。请基于bisect_left(a,x)函数,实现index(a,x)函数,该函数返回x在a中的最小的索引,如果x在a中不存在,请抛出valueError异常

    def index(a,x):

  • 浮点数比较,double a,b;a=0.1*3;b=0.1+0.1+0.1,a==b吗?为什么?如何比较浮点数的大小?

  • 你知道汉字的编码方式有几种?在HTTP GET请求中,一般如何像后端服务器传递汉字信息比较好?

  • 简单描述几种你熟悉的设计模式,以及适用的场景

  • 数字序列3,5,37,121,n,2037中,n该为什么,为什么?

  • 用自己熟悉的语言编程实现:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数

  • 用自己熟悉的语言编程实现:给定一个字符串,满足正则表达式[a-zA-Z]+,打印这个字符串的全排列,结果顺序不限,例如,输入为abc,输出为abc acb bac bca cba cab

  • 无需编码,说明需求:犹豫上述题目中的字符串可能含有重复的字符,你能否想出尽量省时间和空间的方式,让输出的全排列没有重复?

  • 编程:输入一个字符串,输出该字符串中字符的所有组合

    例如:输入字符串“123”,则输出为1、2、3、12、23、13、123(不考虑顺序12、21等价)

  • 谈谈你知道的python web框架

  • 编程:使用python实现数据库的student表中提取的数据写入db.txt

  • 实现斐波那契数列(使用递归)

  • 简述left join和right join的区别

  • 描述一下MVC开发模式

  • L.简述HTTP协议下,一个HTTP请求的数据结构。简述HTTP与HTTPS协议的差异。

  • Python2和Python3的区别。

  • 影响服务器请求QBS的核心问题有哪些?

  • Python如何处理一秒钟500次的日志写操作?

  • 一张mysql数据表,每天300万左右的数据增长量,怎么保证一年后表查询的稳定?

  • 简述Python import的执行流程。

  • 列表[1,2,3,4,5],请使用map()图数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]

  • 正则匹配不是以4和7结尾的手机号

  • 列出几种魔法方法并简要介绍用途

  • 举例说明异常模块中try except else finally的相关意义

  • 如何用Python别除一个文件?:

  • 获取a和b的交集与差集:

a=[21,22,55]

B=[21,55.77]

  • python如何捕获异常(输出异常):

  • 写一段代码用json数据的处理方式获取{“person”:[{“name”:”yu”,”age”:”23”),{“name”:”zhang”,”age”:”34”}]}这一段json中第一个人的名字

  • 用正则匹配h5内的img标签内src内容:

h5="<body><table>

<ul><li><a>name</a></li><li>

<img src="http://baidu.com/sss/aaa.ipg"/></li>

</ul></table></body>"
  • 创建两个线程,其中一个输出1-52,另外一个输出A-Z.输出格式要求:12A 34B 56C 78D

  • 一只青蛙一次可以跳上1级台阶,也可以跳上2级,一共10级台阶,一共有多少种跳法

Python算法题(一)——青蛙跳台阶- 陈康、- 博客园 (cnblogs.com)

  • 简述python异步调用的原理或过程,或写出示例代码

  • python中的某个变量值为None,如果存储到mysql数据库中会是什么结果?

  • 实现一个装饰器,打印函数的参数

  • 打印目录(包括子目录)下面的所有文件的绝对路径

def print_dir_contents(filepath):
  • 写代码去除html文件中的标签

  • 给你一个字符串,比如”abc’,请打印出该字符串的所有排列组台;以“abc”为例,输出的结果应该是:abc,acb,bac,bca,cab,cba,实际的字将串长度超过100个字符。

import itertools
class Solution:

  def Permutation(self, ss):
    if ss == "":
        return []
    result = []
    lit = list(itertools.permutations(list(ss), len(ss))) #第一个参数是列表的形式,是将列表的元素排列,第二个参数是将排列的数几个一组分好。最后的list是将小列表组成一个大列表,小列表作为大列表的元素
    for elem in lit:
        x = ''.join(elem)
        if x not in result:
            result.append(x)
        return result
  • 写出下面代码的输结果
def func(t=[]):
  t.append('x')
  print(t)
for _ in range(3):
  func()
for _ in range(3):
func([])

#结果:
#['x']
#['x', 'x']
#['x', 'x', 'x']
#['x']
#['x']
#['x']
  • 列举http协议头部字段,并说明每个字段的主要作用

  • 解释堆内存和栈内存的区别

  • 请用最简洁的代码,实现如下功能:将元素类型均为it的某个list里面数值大于100的元素输出到另外一个list,同时,这些元素在新的ist里面从大到小排序

List = [1, 2, 3, 101, 4, 5, 130, 422]
new = []

for i in List:

  if i > 100:
    print(i)
    new.append(i)
new.sort(reverse=True)
print(new)
  • Python不使用int()函数把字符串转换为数字

[Python不使用int()函数把字符串转换为数字- 枫飞飞- 博客园 (cnblogs.com)](https://www.cnblogs.com/fengff/p/10483737.html#:~:text=Python不使用int ()函数把字符串转换为数字 1 方法一:利用str函数 2,方法二:利用ord函数 3 方法三:利用eval函数 4 例题如下:)

  • List=[-2,1,3,-6],如何实现以绝对值大小从小到大将List中内容排序。

  • 列表的sort方法和sorted的区别是什么?

  • 有一段英文文章保存在a.txt中,请用python实现统计这个篇文章中每个单词的出现频率,并返回出现频率最高的前10个单词及其出现的次数(只考虑空格,标点符号可忽略)

    追加需求,引号内元素算作一个单词,如何实现?

  • python中的变量作用域(变量查找顺序)

  • 描述Python GIL的概念,以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。

  • Python中如何动态获取和设置对象的属性

class Parens(object):
  x = 1
class Children1(Parens):
  pass
class Children2(Parens):

  pass

 

print(Parens.x, Children1.x, Children2.x)

Children1.x = 2

print(Parens.x, Children1.x, Children2.x)

Children2.x = 2

print(Parens.x, Children1.x, Children2.x)

Parens.x = 3

print(Parens.x, Children1.x, Children2.x)
#结果是:
#1 1 1
#1 2 1
#1 2 2
#3 2 3
  • def multipliers():
        return [lambda x:i*x for i in range(4)]
    print([m(2) for m in multipliers()])
    
  • 列表去重(不迪用set,用基本的方法实现):set=9,4,2,5,8,4,5,3)

li=[9,4,2,5,8,4,5,3]

from collections import Counter

print(list(Counter(li)))
  • 单例模式实现

  • is和=的区别

  • is比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。莱布尼茨说过:“世界上没有两片完全相同的叶子”,这个$正是这样的比较,比较是不是同一片叶子(即比较的id是否相同,这id类似于人的身份证标识)。

  • ==比较的是两个对象的内容是否相等,即内存地址可以不一样,内容一样就可以了。这里比较的并非是同一片叶子,可能叶子的种类或者脉络相同就可以了。默认会调用对象的__eq__()方法。

  • 什么是lambda函数?它有什么好处?

  • 用过的标准包以及第三方包(os以及SyS)

  • range以及xrange有什么区别;

  • re中的match以及search有什么区别;

  • 分别写-个或多个关于filter()、reduce()、map()的使用实例

  • Python里面如何实现tuple和list的转换?

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

Python中pass语句的作用是什么?

  • re模块中的split(),sub(),subn()如何使用?

  • python中如何产生随机数

  • 如何写python的单元测试?请给出具体的例子

  • repr() 方法可以将读取到的格式字符,比如换行符、制表符,转化为其相应的转义字符

  • sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

假如日志文件有5种类型(error、debug、info、exception、er),怎么样写一个脚本让他们归类统计错误类型的次数?

提示:日志文件是一个效文件,里面成千上万行数据。里面内容如下:

Error:abd…

Debug:gfgfggggggg

Info:134445dkddkk

提示:方法有很多,关键地方是怎么样转化字符流,读取,判断、统计带上面五种类型的日

志信息条数。

  • 如何判断字符串A里面是否包含字符串B里面所有的字符

  • 给一个字符串和一个偏移量,让这个字符串按照偏移量的值把最后几个字符依次移到最前面

  • 判断一个数字字符串是否是IP地址,以及有哪几种可能的组合

  • Python2和Python3的区别

  • 如果把一个项目从Python2迁移到Python3

  • Python 中的__new__和__init__的区别

Python 中的__new__和__init__的区别- CuriousZero- 博客园 (cnblogs.com)

  • 合并两个有序的数组,数组都是非递减的,合并后的数组依然有序
class Solution:

def merge(self,nums1,m,nums2,n):

‘’’

:type nums1:List[int]

:type m:int

type nums2:List[int]

:type n:int

rtype:void Do not return anything,modify nums1 in-place instead.

‘’’
  • 求n阶乘结果末尾连续0的个数,如5!=120,0的个数为1
class Solution:

def trailingZeroes(self,n):

‘’’

:type n:int

:rtype:int

‘’’
  • 反转数字,例子:输入123,输出321;输入-123,输出-321;输入1032100,输出12301
class Solution:

def reverse(self,x):

‘’‘

:type x:int

:rtype:int

‘‘’
  • 求股票最大收益,给出一个数组,每个元素代表股票价格。设计一个算法,你可以多次买入和多次卖出,使得你的收益最大。算出最大收益。

class Solution:

​ def maxProfit(self,prices):

  • 垃圾回收

Python的GC模块主要运用了引用计数来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记一清除”解决容器对象可能产生的循环引用的问题。通过分代回收以空间换取时间进一步提高垃圾回收的效率。

  • 引用计数

原理:当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1,当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。

优点:引用计数有一个很大的优点,即实时性,任何内存,一旦没有指向它的引用,就会被立即回收,而其他的垃圾收集技术必须在某种特殊条件下才能进行无效内存的回收。

首先介绍你做过的项目

1、d模块批量导入数据时,数据量很大,超过10M怎么处理?有看过导入后的数据吗?

(回答不会)

2、什么情况下需要用到缓存?你在什么地方用到过?+

3、你用过什么设计模式?

4、路飞中用的是什么视图(CVB)?说说在什么情况下用类或煮面向对象?

5、你在django中用原生sg还是ORM?’

6、

users=User.obiects.a11()
for user in users:
    print(user.info.name)
#info和user表是一对一
#如何进行优化查询?

7、通过什么方式自学的?遇到问题怎么办?有和产品经理对接过吗?

8、权限按钮级别是如何实现的?考虑下如何实现到单条信息级别?:

9、有在github上面看过源码和文档吗?看过django文档吗(傻不拉几的我说没有)

10、最近在学什么新技术?

11、如何提高数据库查询效率?

12、什么情况下使用消息队列?

13、路飞项目过程中是如何和前端配合的?

14、项目是自己的独立开发的吗?

  • 请列举你所用过的Pyon代码检测工具

  • 简述Python垃圾回收机制及如何解决循环引用

  • 简述Python2中什么样的情况下会触发UnicodeDscodeError

  • 请简述标准库中functoo1s,partial的实现思路

  • 请简述标准库中funtools.wraps的作用

  • 简述Python上下文管理器的原理,并用上下文管理器简单实现将“hello world”写入文件的功能

  • 简述MyISM和InnoDB的特点

  • 简述一致性哈希原理和它要解决的问题

  • 简述C10K问题和解决方案

  • 什么是GIL

  • serch()和mathch()的区别

  • 简述迭代器和生成器以及它们之间的区别

  • 什么是协程?py的协程是如何实现的

  • 什么是装饰器?请用装饰器实现singleton

  • 请使用python实现快速排序

  • 简述select和epo11的原理和区别

  • 简达python的垃圾回收机制

  • 写一个简单的Python socket编程

  • 有这样一个文本文件,他的路径为baseDir,.他的名字test.txt,要求用with方式进行打开,并打印每一行文本,并要求文件路径的考虑跨平台问题

  • 用最简洁的方式初始化一个变量foo=[4,16,36,64,100]

  • 使用生成器编写fib函数,函数声名为fib(max)传入一个参数max值,使得该函数可以这样调用

for I in range(0.100):
    print fib(1000)

#并产生如下结果(斐波那契(Fibonacc)数列),1,1,2,3,5,8,13,21……
  • 手写s=【1,2,3】w=[4,5,6] z=[(1,4),(2,5),{3,6}] 这个实现

  • 手写socket服务客户端与客户

  • 手写sql 分组计数

  • 如何进行缓存 我有1kw的数据,想在redis里面缓存了最火的20w条数据

  • 多线程与多进程的应用场景

  • 有了全局锁(GIL)为什么还要LOCK?

  • 牵涉了粘包问题你怎么实现的 8.基本的linux命令

  • git的基本命令 10.你用python的哪些框架

  • int,flood,str,tuple,list,set,dict,前面这些类型哪些可以做dict的key,哪些可以做value

  • 写出结果[1,4,9,16,25,…,100]的列表推导式

  • 使用python实现快排

  • 广度优先,深度优先,遍历二叉树

  • 实现一段代码,功能是将这段代码打印出来

最开始问的项目

然后主要问了redis,项目中怎么用redis的,Django-redis和redis你用哪种,区别

怎么处理高并发

怎么解决沾包

TCP和udp的区别,简单说一下HTTP

输入一个url到看到页面经历了啥

RestfulAPI的规范,说完叫我说了一下常见的状态码

看过Django源码吗?我跟他说了session 和admin的源码

你了解服务器吗 Nginx和Apache,你选哪一个,区别

我们发送get请求如何不使用缓存,从数据库里面取东西

什么是二叉树,完全二叉树

hash表的去重

你平时遇到bug是怎么解决的,喜欢看什么技术网站,我想不起来,我说了restframework和RbbitMq和falsk的英文文档

数据库的优化

用过爬虫吗,怎么爬取谷歌浏览器上的数据,我回道的不太好,他跟我说怎么不考虑vpn因为中国上不了谷歌

问了docker,我说我不会,面完以后叫我手写代码

1.给了一个需求,原材料,菜谱和菜,叫我实现Django的models设计,然后在views中写出他提供的要求,返回数据

2.给定一个随机数组,随便输入一个数K,找出这个数组中低k大的数

我用快排写了以后,他说时间复杂度高了,重新考虑一下时间复杂度为n的,

letcode https://leetcode.com/problems/kth-largest-element-in-an-array/description/

3.不好描述 是letcode91题https://leetcode.com/problems/decode-ways/description/

http://www.cnblogs.com/skiler/category/1008825.html

  • “””以a、b为实验对象,求a、b的交集”””

a = [5, 6, 7, 8, 9]

b = [4, 6, 7, 8, 10]

print(set(a).intersection(set(b)))

a = {5, 6, 7, 8, 9}

b = {4, 6, 7, 8, 10}

print(a.intersection(b))

“””以a、b、c为实验对象,求a、b、c的并集”””

a = [0,1,2,3,4]

b = [0,2,6]

c = [-1,2,5,8]

r = list(set(a).union(b,c)) # 求多个list的并集

print(‘r- ->’, r) # 输出:r- -> [0, 1, 2, 3, 4, 5, 6, 8,- 1]”””

“””以a、b、c为实验对象,求 a 中有,但 b 和 c 都没有的元素的并集”””

a = [0,1,2,3,4]

b = [0,2,6]

c = [-1,2,5,8]

r = list(set(a).difference(b,c)) # 求特定1个list(a)中有,其他list(b、c)都没有的元素”””

print(‘r- ->’, r) # 输出:r- -> [1, 3, 4]”””

“””以a、b、c为实验对象,求在多个list中只出现过1次的元素组成的集合”””

a = [0,1,2,3,4]

b = [0,2,6]

c = [-1,2,5,8]

“””方法1:多次使用 symmetric_difference 方法- 不推荐使用,因为若涉及更多list,运算较复杂”””

#即求a、b、c中元素只出现过1次的集合,结果应该为 [-1,1,2,3,4,5,6,8]

#注意:symmetric_difference的参数只能有1个,因此可以多次使用该方法,得到结果

u_abc = list(set(a).union(b,c)) # 求a、b、c的并集

d_ab = list(set(a).intersection(b)) # 求a、b的交集

d_bc = list(set(b).intersection(c)) # 求b、c的交集

d_ac = list(set(a).intersection(c)) # 求a、c的交集

r1 = list(set(u_abc).difference(d_ab,d_bc,d_ac)) # 求b中有而a中没有的元素

print(‘r1- ->’, r1) # 输出:r1- -> [1, 3, 4, 5, 6, 8,- 1]

“””方法2:使用pandas的value_counts,获取只出现过1次的元素,即获取 values_counts == 1 的元素即可”””

import pandas as pd

import numpy as np

df_np = np.array((a+b+c)) # 将3个list合并在一起,形成数组

df_count = pd.Series(df_np).value_counts() # 获取每个元素出现的次数

r2 = list(df_count[df_count == 1].index) # 获取在3个list中只出现过1次的元素

r2.sort(reverse=False) # 对r2进行排序,方便观察结果

print(‘r2- ->’, r2) # 输出:r2- -> [-1, 1, 3, 4, 5, 6, 8]

import os  # 第一种深度优先,即先遍历当前目录下的第一个目录里面的第一个目录,以此类推,然后再逐层向上遍历。代码如下d
ef gci(filepath):
#遍历filepath下所有文件,包括子目录 
    files = os.listdir(filepath)
    for fi in files:
        fi_d = os.path.join(filepath,fi)
        if os.path.isdir(fi_d):
            print(os.path.join(filepath, fi_d))
            gci(fi_d)
        else:
            print(os.path.join(filepath,fi_d))#递归遍历/root目录下所有文件
gci('f:\\test')
# 第二种广度优先,是先把当前目录下的所有文件文件夹打印出来,再分别进每一个文件夹打印相应的文件文件夹,再一次类推,逐层往下。代码如下
import os.path

rootdir = 'f:\\test'  # 指明被遍历的文件夹


def gci(rootdir):
    for parent, dirnames, filenames in os.walk(rootdir):  # 三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
        for dirname in dirnames:  # 输出文件夹信息
            # print("parent is:" + parent)
            # print("dirname is:" + dirname)
            # print("the full name of the file is:" + os.path.join(parent, dirname)) # 输出文件夹路径信息
            print(os.path.join(parent, dirname))  # 输出文件夹路径信息

    for filename in filenames:  # 输出文件信息
        # print("parent is:" + parent)
        # print("filename is:" + filename)
        # print("the full name of the file is:" + os.path.join(parent, filename)) # 输出文件路径信息
        print(os.path.join(parent, filename))  # 输出文件路径信息

gci(rootdir)
  • 什么是lamdba函数?她有什么好处

  • 一轮技术面:

  • 一个文件读取内部文件,拿到频率前十,不区分大小写.

  • 建立一个django.项目,读取一个py文件,去掉注释和每一行右侧的空格,然后在前端显示出来(要保证左侧空格在页面显示)

二轮技术面or三轮技术面:

  • 一个业务场景,每天发贴量比较大,怎么存储在数据库

  • mysql inner join和left join的区别

  • A leftjoin B where B.mark=True与A innerjoin B where B.mark=True的区别

  • 同时多个请求来操作数据库,怎么弄?

  • rest怎么做用户认证?

  • MongoDB有索引么?

  • 消息队列在你项目的应用场景是啥?

  • SVN用过么,还是只用过Git

  • 爬虫搞得怎么样?#简单看过

  • 我看你看过flask源码,Django源码看过么?说只看过session相关的源码

  • 网络协议

。TCP三个握手细节1

。HTTP状态码(200,200.)3

数据库

。Redis有那些数据结构?3

  • 利用Redis实现一个分布式锁?O

。假如Rdis里面有1亿个key,其中有10w个ky是以某个固定的已知的前缀开头的,如果将它们全部找出来?0

  • Redis如何做持久化的?O

数据结构

  • hashtable的低层实现?1

  • CSRF的原理?1

  • 一个链表的长度为L(L>N>M),反转M和N之间的节点0

。合并两个已排序的数组?1

其他

  • 是否使用VPN,VPN的底层原理?O

  • RPC的通用缺点是什么?O

Python的深拷贝和浅拷贝的区别?O

  • 有一个多层嵌套列表A=[1,2,[3,4,[“434”,[…]]]]请写一段代码遍 历A 中的每一个元素并打印出来。
A = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]]
def fan(c):
  for i in c:
    if type(i) == list:
        fan(i)
    else:
        print(i)
fan(A)
def flat(nums):
  res = []
    for i in nums:
        if isinstance(i, list):
            res.extend(flat(i))
        else:
            res.append(i)
    return res

alist=[1,[2,3,[4,5,[6,7,[8,[9,[10],11],12],13],14],15],16]
a=flat(alist)
print(a)

深浅拷贝都是对源对象的复制,占用不同的内存空间。

不可变类型的对象,对于深浅拷贝室无影响,最终的地址值和值都是相等的。

可变类型:

=浅拷贝:值相等,地址相等

copy浅拷贝:值相等,地址不相等

deepcopyi深拷贝:值相等,地址不相等

  • 请简单写一个Python的闭包

  • 关于Python字典中键和值的类型

字典,就是一种通过名字引用值的数据结构。这种结构类型是映射类型。它是一种key-value结构的键值对。键可以是数字、字符串、元组。就像英汉词典一样,可以通过查找某个特定的词语(键),从而找到它的定义(值)。

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

  • python可hash类型和不可hash类型

(65条消息) python可hash类型和不可hash类型_Lifelrving的博客-CSDN博客

  • python序列类型包括哪三种

(65条消息) python序列类型包括哪三种_Python_cresss的博客-CSDN博客

  • python中地板除是什么意思_解析python 中/ 和 % 和 //(地板除)

(65条消息) python中地板除是什么意思_解析python 中/ 和 % 和 //(地板除)_weixin_39984963的博客-CSDN博客

  • 解释Python脚本程序的“_name”变量及其作用。

  • 简单解释Python的字符串驻留机制。

  • 简述什么是浏览器事件流。

  • 解释下HTTP常见响应状态码

  • Python是如何进行内存管理的?

  1. 说一下python的GIL锁

  2. Linux熟悉吗?

  3. Git熟练嘛?git add a.txt的时候,都干了什么?

  4. 你是怎么使用Docker的?

  5. 说说我们这个职位对应的业务?docker在里面起到什么作用?

  6. MySQL高可用知道吗?

  7. XSS攻击说一下

  8. Tornado用过没?他与其它Web框架的区别?

  9. 说一下快排如何实现

  10. 你在学这些技术的过程中,觉得哪里亮点高?

  11. Linux中你开一个进程,在里面打开了一个文件,那么当你创建一个子进程的时候,这个文件状态是什么样子的?

  12. 后来发现这是个坑,回答完之后,他又问我:“那如果我现在在一个进程中创建一个网络连接,通过这个进程创建一个子进程,子进程中有这个网络连接吗?如果没有,为什么?如果有,如何实现通信的?”

  13. 有没有看过什么源码?

介绍性能分析器

profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述。Python中含有3个模块提供这样的功能,分别是cProfile,profile和pstats。.这些分析器提供的是对Python程序的确定性分析。同时也提供一系列的报表生成工具,允许用户快速地检查分析结果。

Python标准库提供了3个不同的性能分析器:

  1. cProfile,推荐给大部分的用户,是C的一个扩展应用,因为其合理的运行开销,所以适合分析运行时间较长的。是基于Isprof

  2. profile,一个纯python模块,它的接口和cProfile-一致。在分析程序时,增加了很大的运行开销。如果你想扩展profiler的功能,可以试着继承这个模块

  3. hotshot,一个试验性的c模块,关注减少分析时的运行开销,但是是以需要更长的数据后处理的次数为代价。不过这个模块不再被维护,也有可能在新的python版本中被弃用。

  • Python:*args 和 **kargs 的作用、用法和区别

Python:*args 和 **kargs 的作用、用法和区别- 简书 (jianshu.com)

h=[1,2,3]
k=(4,5,6)
d={'a':7,'b':8,'c':9}
def f2(arg1,arg2,*args,**kwargs):
    print(arg1,arg2,args,kwargs)
f2(1,2,3,a=1,b=2,c=3)
f2(*h,*k,*d)
f2(h,k,*d)
f2(h,k,d)

#运行结果:
#1 2 (3,) {'a': 1, 'b': 2, 'c': 3}
#1 2 (3, 4, 5, 6, 'a', 'b', 'c') {}
#[1, 2, 3] (4, 5, 6) ('a', 'b', 'c') {}
#[1, 2, 3] (4, 5, 6) ({'a': 7, 'b': 8, 'c': 9},) {}
  • s=(i for i in range(5))
    str=[i for i in range(5)]
    print(type(s),s)
    print(type(str),str)
    
    运行结果:
    <class 'generator'> <generator object <genexpr> at 0x000001EB1BB953C0>
    <class 'list'> [0, 1, 2, 3, 4]
    
  • 将函数f2封装到f2.py文件中,请说明python-m cProfile f2.py执行目的,并列举其输出项和含义.

Python基础(11) 性能测试工具 cProfile

(65条消息) Python基础(11) 性能测试工具 cProfile_清欢守护者的博客-CSDN博客

  • 解释一下Python中的继承

  • 怎样获取字典中所有键的列表

  • 用python统计日志中IP的数量

用python统计日志中IP的数量- 腾讯云开发者社区-腾讯云 (tencent.com)

  • python基础数据类型

  • lambda表达式

  • map,filter,reduce是什么

  • 写一个排序

  • 贪婪匹配和非贪婪匹配

  • 常用的编辑器以及快捷键

  • 如果让你设计api接口,你怎么设计安全性?

  • Python高并发解决方案

  • [python]正则表达式实战,提取txt文档的指定内容

  • 在Python中怎么有效读取一个20GB大小的文件?

使用Python实现一个stack。(可以写试卷背面)

  • Pythonic指python代码风格,

  • python——魔术方法

(65条消息) python——魔术方法_影中人lx的博客-CSDN博客_python魔术方法

  • python多进程实现数据共享

(65条消息) python多进程实现数据共享_木瓜星灵的博客-CSDN博客_python进程共享数据

  • 常用的l/O多路复用(l/O multiplexing)技术有哪几种?请阐明它们各自的特点及优点

  • 1.请用python代码实现生产者-消费者模型(Producer-consumer problem)(仅限使用python standard library提供的组件,勿使用第三方库)

  • 2.请编写一个开平方函数,其输入为一个double类型非负值,输出为输入值开方的结果,要求保留小数点后6位

  • 现有不数的面就分的1元5元10元,2动元,50元,100的元货币,如果要用这些货币组合成×元,求一共有多少种组合方式?请说出这类问题在算法中被称为什么问题并用代码实现

  • Tornado异步原理详析- 简书 (jianshu.com)

  • 5.请说一说lambda函数的作用,请用ambda和reduce实现1到100的累加

  • 4,请实现一个装饰器,限制该函数被调用的频率,如10秒一次

  • a=[1,2,3,4]

print(id(a[:]))

print(id(a))

答案:

2731666792704

2731666783104

  • 题目描述 输入:

wo men 123 shi zu guo de 32144 hua guo,

wo men 34523 shi zu guo de 3256144 hua guo,

wo men 4234 shi zu guo de 44345 hua guo,

wo men 12345433 shi zu guo de 4323125 hua guo,

输出:

wo men afanti shi zu guo de afanti hua guo,

wo men afanti shi zu guo de afanti hua guo,

wo men afanti shi zu guo de afanti hua guo,

wo men afanti shi zu guo de afanti hua guo,

代码:

import re
s = '''wo men 123 shi zu guo de 32144 hua guo,
wo men 34523 shi zu guo de 3256144 hua guo,
wo men 4234 shi zu guo de 44345 hua guo,
wo men 12345433 shi zu guo de 4323125 hua guo,'''
ret = re.sub('\d+', "afanti", s)
print(ret)
#结果:
#wo men afanti shi zu guo de afanti hua guo,
#wo men afanti shi zu guo de afanti hua guo,
#wo men afanti shi zu guo de afanti hua guo,
#wo men afanti shi zu guo de afanti hua guo,
  • 深拷贝和浅拷贝

浅拷贝:语法:copy.copy(),浅拷贝是创建了一个和原对象一样的类型,但是其内容是对原对象元素的引用。

深拷贝:语法:copy.deepcopy(),在内存中将所有的数据重新建立一份。

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。iter__ 方法的作用是让对象可以用for … in循环遍历,getitem( )方法是让对象可以通过“实例名[index]”的方式访问实例中的元素。老猿认为这两个方法的目的是Python实现一个通用的外部可以访问可迭代对象内部数据的接口.一个可迭代对象是不能独立进行迭代的,Python中,迭代是通过for … in来完成的。凡是可迭代对象都可以直接用for… in…循环访问,这个语句其实做了两件事:第一件事是调用iter()获得一个可迭代器,第二件事是循环调用next__()。

常见的可迭代对象包括:

  • 集合数据类型,如list、tuple、dict、set、str等;

  • 生成器(generator),包括生成器和带yield的生成器函数(generator function)

  • 如何判断一个对象是可迭代对象呢?可以通过collections模块的Iterable类型判断,具体判断方法如下:from collections import Iterable #导入Iterable 模块isinstance(变量, Iterable) #判断一个变量是否为可迭代对象返回True表明是可迭代对象

  • 列表推导式:列表(list)推导式字典(dict)推导式集合(set)推导式元组(tuple)推导式
a = range(10)
b = [[i, i * i] for i in a]
c = {i: i * i for i in a}
print(b)
print(c)

#[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
  • 现有字典d={‘a‘:26,’g’:20,‘e’:22,’c’:24,‘d’:23,‘f’:21,’b‘:25}请按照字段中的value字段进行排序

  • 用正则表达式实现匹配手机号(包含手机号码前带86或是+86的情况)

  • 项目相关:

​ rbac是个什么东西

​ rbac的实现逻辑,怎么做到限制到按钮级别的(忘记了,没回答好)

​ CMDB是做什么的(我写了这个项目,不过具体实现我并不知道,我回答的时候做了一下作用,具体实现说忘记了)

  • python相关:

​ classmethod和staticmethod的调用方式

​ djang的请求流程

  • 引用计数机制:在Python中,整数和短小的字符,Python都会缓存这些对象,以便重复使用。赋值语句,只是创造了新的引用,而不是对象本身。长的字符串和其它对象可以有多个相同的对象,可以使用赋值语句创建出新的对象。每个对象都有存有指向该对象的引用总数,即引用计数(reference count)。:
  • 垃圾回收机制:引用计数也是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术。当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾了。
  • 内存池机制:Python的内存机制呈现金字塔形状,-1,-2层主要有操作系统进行操作;第0层是C中的malloc,free等内存分配和释放函数进行操作;第1层和第2层是内存池,有Python的接口函数PyMem_Malloc函数实现,当对象小于256K时有该层直接分配内存;第3层是最上层,也就是我们对Python对象的直接操作;
  • 描述对super、pass、yield、lambda关键字修饰的理解。

  • 请大致描述一下python的GL机制,以及python中多线程和多进程的区别.。

  • python是如何进行内存管理的,以及大致描述一下python的GC机制,

  • 请分别描述一下类装饰器和函数修饰器的实现过程及应用场景。

  • 请用两个队列来实现一个栈(给出伪代码即可)。

  • 实现一个Singleton单例类。要求遵循基本语言编程规范

  • 请实现一个简单的socket编程。要求:

实现server端的功能即可

遵循基本语言编程规范

  • 请为掌阅设计一个并发处理KEY-VALUE引擎,要求每条请求的数据小于16k,数据总量为1T,QPS为50要求:

1),请给出该系统需要配备多少资源,服务器数量,服务器内存大小及硬盘空间等

2),要求系统平滑可扩展,高可用

3),尽可能的降低系统复杂度

  • Python collections模块之deque()详解

(65条消息) Python collections模块之deque()详解_chl183的博客-CSDN博客_deque()

  • 下面的写法,哪些会出销,为什么?
a={}
a[1]=1
a['a']=2
a[(1,'a')]=3
a[[1,2,3]]=4
  • 简述多线程同步服务器和单线程异步服务器的区别、以及优缺点

  • 查找当前目录以及子目录下所有的*.pyc文件,并删除。

  • 考察基本数据结构,简述Hash的实现原理,并列举2种解决冲突的方法。

  • 简述python中多线程与多进程之间的区别及各自试用场景

  • 简单描述下快运排序法的原理

  • 如求二进制中1的个数

  • 一个文本文件,大的有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想

  • 12个大小一样的球,其中一个的重量与其他的不一样,如何只称3次我出这只球?

  • 电梯运行算法设计

  • 如何用Python米进行查询和替换一个文本字符串?

  • 10.举例说明异常模块中try except else finally的相关意义

  • 简述python.异步调用的原理或过程,或写出示例代码

一.项目问题:

你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的

用的什么框架。为什么选择这个框架

二.框架问题:

scrapy的基本结构(五个部分都是什么,请求发出去的整个流程)

scrapy的去重原理(指纹去重到底是什么原理)

scrapy中间件有几种类,你用过哪些中间件

scrapy中间件在哪里起的作业(面向切片编程)

三.代理问题:

为什么会用到代理

代理怎么使用(具体代码, 请求在什么时候添加的代理)

代理失效了怎么处理

四.验证码处理:

登陆验证码处理

爬取速度过快出现的验证码处理

如何用机器识别验证码

五.模拟登陆问题:

模拟登陆流程

cookie如何处理

如何处理网站传参加密的情况

六.分布式:

分布式原理

分布式如何判断爬虫已经停止了

分布式的去重原理

七.数据存储和数据库问题:

关系型数据库和非关系型数据库的区别

爬下来数据你会选择什么存储方式,为什么

各种数据库支持的数据类型,和特点

是否支持事务…

八.Python基础问题:

基础问题非常多,但是因为爬虫性质,还是有些问的比较多的,下面总结:

Python2和Python3的区别,如何实现python2代码迁移到Python3环境

Python2和Python3的编码方式有什么差别

迭代器,生成器,装饰器

Python的数据类型

九.协议问题:

http协议,请求由什么组成,每个字段分别有什么用,https和http有什么差距

证书问题

TCP,UDP各种相关问题

十.数据提取问题:

主要使用什么样的结构化数据提取方式,可能会写一两个例子

正则的使用

动态加载的数据如何提取

json数据如何提取

十一.算法问题:

算法:你们要善用Python的数据类型,对Python的数据结构深入了解

Python WEB面试常见问题

一. python语法以及其他基础部分:

可变与不可变类型

浅拷贝与深拷贝的实现方式、区别;deepcopy如果你来设计,如何实现

new() 与 init()的区别

你知道几种设计模式

编码和解码你了解过么

列表推导list comprehension和生成器的优劣

什么是装饰器;如果想在函数之后进行装饰,应该怎么做

手写个使用装饰器实现的单例模式

使用装饰器的单例和使用其他方法的单例,在后续使用中,有何区别

手写:正则邮箱地址

介绍下垃圾回收:引用计数/分代回收/孤立引用环

多进程与多线程的区别,CPU密集型适合用什么

进程通信的方式有几种

介绍下协程,为何比线程还快

range和xrange的区别

二. 算法排序部分:

手写快排;堆排;几种常用排序的算法复杂度是多少;快排平均复杂度多少,最坏情况如何优化

手写:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来,你写的解法算法复杂度多少

手写:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来;

手写:用一行python写出1+2+3+…+10**8

手写python:用递归的方式判断字符串是否为回文

单向链表长度未知,如何判断其中是否有环

单向链表如何使用快速排序算法进行排序

手写:一个长度n的无序数字元素列表,如何求中位数,如何尽快的估算中位数,9).你的算法复杂度是多少;

如何遍历一个内部未知的文件夹(两种树的优先遍历方式)

三. 网络基础部分:

TCP/IP分别在模型的哪一层

socket长连接是什么意思

select和epoll你了解么,区别在哪

TCP UDP区别;三次握手四次挥手讲一下

TIME_WAIT过多是因为什么

http一次连接的全过程:你来说下从用户发起request——到用户接收到 response

http连接方式。get和post的区别,你还了解其他的方式么

restful你知道么

状态码你知道多少,比如200/403/404/504等等

四. 数据库部分:

MySQL锁有几种;死锁是怎么产生的; 为何,以及如何分区、分表;

MySQL的char varchar text的区别:

了解join么,有几种有何区别,A LEFT JOIN B,查询的结果中,B没有的那部分是如何显示的(NULL)

索引类型有几种,BTree索引和hash索引的区别

手写:如何对查询命令进行优化

NoSQL了解么,和关系数据库的区别,redis有几种常用存储类型

五. Linux部分:

讲一下你常用的Linux/git命令和作用;

查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令;

六. Django项目部分:

都是让简单的介绍下你在公司的项目,不管是不是后端相关的,主要是要体现出你干了什么

你在项目中遇到最难的部分是什么,你是怎么解决的; 你看过django的admin源码么

看过flask的源码么,你如何理解开源

MVC / MTV, 缓存怎么用, 中间件是干嘛的

CSRF是什么,django是如何避免的,XSS

如果你来设计login,简单的说一下思路

session和cookie的联系与区别,session为什么说是安全的

uWSGI和Nginx的作用;

Linux

  • 在GNU Linux操作系统中,如何查找文件名为newton.py的文件。

  • 请简述GNU Linux环境变量的用途

  • 在GNU Linux中如何查询当前主机的内存使用情况。

  • 在GNU Linux中如何查询当前主机的防火墙设置。

  • 在Git中如何使用master、.branch、TAG?

  • 编写一个脚本,5分钟检查一次日志,发现有暴力SS破解现象的,提取此类P地址,并去重,并技降序排序,要求:同一个P暴力破解超过10次,自动屏蔽1P地址,指定办公室P地址(192.168.100.100)为可信任P地址,不受屏蔽规则限制,以下为日志格日志样板如下:

May 4 03:43:07 tz-monitor sshd[14003]:Failed password for root from 124.232.135.84 port 25251ssh2

May 4 03:43:07 tz-monitor sshd[14082]:Invalid user postgres from 124.232.135.84

  • 画出TCP三次握手,四次握手断开示意图

  • 业务服务器192.168.1.2访问192.168.1.3数据接口,无法正常返回数据,请根据以上给出信息写出排查思路

  • python中如下一个字典,请按照key进行排序

ct_tmp =[‘carry’:’17,’bob’:’21,’matty’:23jack’:’33’,’tom’:’16’,’alex’:’23’

  • tables识考察,根据要求写出防火墙规则?
    • 屏蔽192.168.1.5访问本机dns服务端口:
    • 允许10.1.1.0/24访问本机的udp 8888 9999端口

(65条消息) Linux iptables命令详解_一口Linux的博客-CSDN博客_iptable命令

SQL

  • 叙述MySQL半同步复制原理

  • 存储引擎、索引原理、事务原理、锁机制等和优化能力

  • 请列举常见的MySQL存储引擎

  • InnoDB有哪些特性

  • 请列出一些MySQL数据库查询优化的技巧

  • 请简述SQL注入的攻击原理及如何在代码层面防止SOL注入

  • 请简述MySQL查询时如何关联多张表

  • 假设mysql中表A存储着某次考试中每个学生每道题的得分,含有三列:student id(学生)、question_id(题目)、score(得分),请用sql查询出每个学生的总分。

  • 关系型数据库中,表与表之间有左连接、内连接、外连接。分别解释下他们的含义及区别?

  • mysql中表A有三列a,b,c。索引为a,ab,unique a_b._c。sql语句:select*from table1 where a=10;,会命中哪个索引?

  • 给定的有序整数列表L,使用二分法查找整数在L中的位置,如果未找到返回None。(本页写不完可以写在背面)

  • 存储引擎哪几种/有什么区别

  • 索引(有哪几种索引,索引之间的区别,索引的作用,什么情况下不适合建索引,组合索引的命中规则

  • inner join/left join/right jion的区别

Data structure

  • 队列与栈的定义:
    • 队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表;
    • 栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。
  • 队列与栈的区

队列和栈是两种不同的数据结构。它们有以下区别:

(1)操作的名称不同。

队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。

(2)操作的限定不同。

队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。

(3)操作的规则不同。

队列是先进先出(FIFO),即队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(不能从中间插入),每次离开的成员总是队列头上(不允许中途离队)。而栈为后进先出(LIFO),即每次删除(出栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的被放在栈的底部,要到最后才能删除。

(4)遍历数据速度不同。

队列是基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快。栈是只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。

  • 编写快速排序或者冒泡排序

  • 连表的冒泡排序

  • 树的顺序遍历

  • 顺序表的快速排序

Other

  • 请列举经常访问的技术网站或博客

  • 请列举最近关注的一些技术

  • 请列举你认为不错的一些技术书籍和你最近在看的书籍(不限于技术)

  • 请列举你阅读过源码的一些项目

  • 请给出你对这份笔试题的看法

  • 简述Django对HTTP请求的执行流程

  • 简述Django下的(内建的)缓存机制

  • Django里queryset的get和fliter方法的区别

  • Django中Model的slugfield类型的字段的用途是什么

  • Django中如何加载初始化数据

  • MYSQL有哪些存储引擎,优化MYSQL数据库的方法有哪些?

  • WEB开发中session与cookie的作用与区别?

  • WEB开发中有哪些技术手段防止SQL注入?

  • 请列举常见的HTTP头及其作用

  • 请列举常见的HTTP状态响应码及其意义

  • 请简述对RESTful API设计规范的理解

  • 请简述HTTP缓存机制

  • 请简述Cookie和Session之间的关系

  • OSI七层参考模型详解

(65条消息) OSI七层参考模型详解(简单通俗易懂)_Ggggggggggu的博客-CSDN博客_osi参考模型

  • 如何查看http的并发请求数与其TCP连接状态

  • 写出抓包查看到192.168.5.100服务器的8080端口的命令

  • ps aux中的VSZ代表什么意思,RSS代表什么意思?

函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
[round(x ,n]) 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 其实准确的说是保留值将保留到离上一位更近的一端。
sqrt(x) 返回数字x的平方根。

列表的成员方法

方法 描述
list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L) 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i]) 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
list.clear() 移除列表中的所有项,等于del a[:]。
list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x) 返回 x 在列表中出现的次数。
list.sort() 对列表中的元素进行排序。
list.reverse() 倒排列表中的元素。
list.copy() 返回列表的浅复制,等于a[:]。

持续更新…


文章作者: Nico
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nico !
  目录