首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

爬虫工程师面试题

4、python里面如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别) 5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串?...其中,列表,元祖和字符串可以统一归为序列类,即这三种数据结构中的元素是有序的。比如,他们都有索引(下标)操作,还有切片、相加和长度(len),最大值(max),最小值(min)操作。...另外,关于这个问题,面试官很容易引出另一个问题:python中的哪些数据类型是可变的,哪些是不可变的? 首先,可变/不可变是针对该对象所指向的内存中的值是否可变来判断的。...变化的是a的指针(这里引用C中的概念)从指向数字1变成数字2。a对象指向的内存中的值没有发生变化,因此数字是不可变类型的数据类型。字符串,元组也是同理。...6、请写出一段python代码实现删除list中的重复元素。

9310

python爬虫常见面试题(一)

4、python里面如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别) 5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串?...其中,列表,元祖和字符串可以统一归为序列类,即这三种数据结构中的元素是有序的。比如,他们都有索引(下标)操作,还有切片、相加和长度(len),最大值(max),最小值(min)操作。...另外,关于这个问题,面试官很容易引出另一个问题:python中的哪些数据类型是可变的,哪些是不可变的? 首先,可变/不可变是针对该对象所指向的内存中的值是否可变来判断的。...变化的是a的指针(这里引用C中的概念)从指向数字1变成数字2。a对象指向的内存中的值没有发生变化,因此数字是不可变类型的数据类型。字符串,元组也是同理。...6、请写出一段python代码实现删除list中的重复元素。

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    函数

    函数定义 下面我们看一看在Python中函数定义的基本形式: def 函数名(参数列表): # 代码块 return 返回值 下面我们看一个简单的实例,计算两个数的和...在python中对象从修改来讲可以分为: 可更改对象 在python中,可更改的对象有list(列表)、dict(字典)、set(集合)等等 不可更改对象 不可更改的对象有strings、tuples、...在Python函数参数的传递,可以传入不可变或可变类的参数。 不可变类型:类似C/C++中的传值参数。...可变类型:类似C/C++的引用参数(即传地址方式) 因为在Python中一切皆为对象,所以在Python中严格来讲我们不能跟在C/C++中一样说是值传递或引用传递,应该讲传不可变对象或可变对象。...,求和实例: (1, 9, 10, 2, 2, 39, 0, 11, 20) 和为: 94 字符串传递 下面我们将多个字符串传递给函数进行字符串连接操作: # -*- coding:utf-8 -*-

    4.4K60

    04-shell

    例如,本地变量OLDBOY取值为bingbing,这个值在用户当前Shell生存期中有意义。如果在Shell中启动另一个进程或退出,本地变量值将无效。...6.2.3 变量中引号的使用 只有在变量的值中有空格的时候,会使用引号。 单引号与双引号的区别在于,是否能够解析特殊符号。...$# 获取当前执行的shell脚本后面接的参数的总个数 $* 获取当前shell的所有传参的参数,不加引号同加上双引号,例如: “$”,则表示将所有的参数视为单个字符串,相当于“112$3”。...$@ 获取当前shell的所有传参的参数,不加引号同@加上双引号,例如: “$@”,则表示将所有参数视为不同的独立字符串,相当于“$1” “$2”“$3” “……”,这是将参数传递给其他程序的最佳方式,...获取执行上一个指令的执行状态返回值(0为成功,非零为失败),这个变量最常用 $$ 获取当前执行的Shell脚本的进程号(PID),这个变量不常用,了解即可 $!

    7610

    Python3.0科学计算学习之函数

    函数 函数允许程序的控制在不同的代码片段之间切换,函数的重要意义在于可以在程序中清晰地分离不同的任务,将复杂的问题分解为几个相对简单的子问题,并逐个解决。即“分而治之”。  ...同一个参数不能传两个值 z=3 e=subtract(x2=z,x1=5) #在这里的函数调用中,实参时通过名称赋值给形参而不是通过位置 传参的规则: 在实参的角度:   规则:按位置传值必须在按关键字传值的前面...**kwargs(接收关键字传值) (2) 更改实参 实参的作用是为函数提供必要的输入数据,更改函数内部的参数值通常不会影响函数外部的实参值 例如1:对于所有不可变参数(字符串、数字和元组)更改函数内部的实参值通常不会影响函数外部的实参值...以**为前缀的变量名称(**style)是将字典解包为关键字参数。 ?  3. 返回值 return[表达式]用于退出函数。Python中的函数总是返回单个对象。...文档字符串的作用: 文档字符串是我们使用python过程中的一个重要的工具,它对文档很有帮助,使程序容易理解。甚至当程序运行的时候,我们可以从一个函数中返回字符文档。

    1.3K20

    python基础篇大合集,进程、装饰器、列表详解篇!

    Process创建的实例对象的常用方法: start():启动子进程实例(创建子进程) is_alive():判断进程子进程是否还在活着 join([timeout]):是否等待子进程执行结束,或等待多少秒...进程间不共享全局变量 import multiprocessing import os import time g_nums = [11, 33] def test1(): """子进程要执行的代码"...例如下面的几个列表中,有存储数值的、字符串的、内嵌列表的。不仅如此,还可以存储其他任意类型。...所以各元素是有位置顺序的,可以通过索引取值,可以通过切片取子列表 构造列表 有两种常用的构造列表方式: 使用中括号[] 使用list()构造方法 使用(中)括号构建列表时,列表的元素可以跨行书写,这是python...最简单的,将字符串序列中的各字符取出来放进列表中: >>> [ i for i in "abcdef" ] ['a', 'b', 'c', 'd', 'e', 'f'] 这里是列表解析,因为它外面使用的是中括号

    1.1K20

    Python常见编程基础问题总结

    答案:(0,空字符串,空列表、空字典、空元组、None, False) 提高 Python 运行效率的方法 使用生成器,因为可以节约大量内存; 循环代码优化,避免过多重复代码的执行; 核心模块用 Cython...答案是根本不需要处理,因为 Python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 Python 中很可能是相同的代码,没有必要做成两个不同函数。...意味着这些对象或包含的值可以被修改。但也有些对象是不可变的,例如数值型 int、字符串型 str 和元组 tuple。...当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的 id 值与浅复制原来的值相同。 2、复制可变数据类型: 直接赋值:其实就是对象的引用(别名)。...而对于数字、字符串以及其它“原子”类型(没有子对象),没有拷贝一说,产生的都是原对象的引用。 看一个示例程序,就能明白浅拷贝与深拷贝的区别了: #!

    1.1K20

    110道python面试题

    多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大 6、python实现列表去重的方法 先通过集合去重,在转列表...中是raw_input()函数,python3中是input()函数 21、列出python中可变数据类型和不可变数据类型,并简述原理 不可变数据类型:数值型、字符串型string和元组tuple 不允许变量的值发生变化...2、复制的值是可变对象(列表和字典) 浅拷贝copy有两种情况: 第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。...原来值的id值与浅复制原来的值不同。 第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。...100、python传参数是传值还是传址? Python中函数参数是引用传递(注意不是值传递)。

    2.8K40

    110道一线公司Python面试题,推荐收藏

    多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大 6、python实现列表去重的方法 先通过集合去重,在转列表...中是raw_input()函数,python3中是input()函数 21、列出python中可变数据类型和不可变数据类型,并简述原理 不可变数据类型:数值型、字符串型string和元组tuple 不允许变量的值发生变化...2、复制的值是可变对象(列表和字典) 浅拷贝copy有两种情况: 第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。...原来值的id值与浅复制原来的值不同。 第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。...100、python传参数是传值还是传址? Python中函数参数是引用传递(注意不是值传递)。

    2.1K21

    Linux:进程替换

    或者说子进程一定要用我父进程的代码吗? ...eles但是子进程在execl后却没有执行父进程的代码,这说明子进程所执行的代码被替换了!!...所以并没有创建新的子进程,只是将该子进程的代码和数据替换了,并且内核数据结构PCB并没有释放,而仅仅只是修改了某些字段的内容。 问题2:子进程的代码和数据被替换了,为什么父进程还是执行原来的代码??...——>如果替换失败了,就只能执行自己原先的代码了!!所以exec系列的函数只有失败的返回值而没有成功的返回值,因为一但成功后跑的就是新的代码和数据了,返回就没有意义了!  ...加载器的理解: argv这个参数会被传递给ls,其实exec系列接口含义也是如此,在命令行参数中,有所的进程都是bash的子进程,所以exec其实就是一个代码级别的加载器,他可以做到将可执行程序的代码和数据导入到内存中

    13410

    60道Python常见面试题,做对80% Offer任你挑!

    r , 表示需要原始字符串,不转义特殊字符 15、中国,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的 ?...表示字符串序列,str表示字节序列 python3中str表示字符串序列,byte表示字节序列 5、python2中为正常显示中文,引入coding声明,python3中不需要 6、python2...中是raw_input()函数,python3中是input()函数 18、列出python中可变数据类型和不可变数据类型,并简述原理 不可变数据类型:数值型、字符串型string和元组tuple 不允许变量的值发生变化...2、复制的值是可变对象(列表和字典) 浅拷贝copy有两种情况: 第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。...原来值的id值与浅复制原来的值不同。 第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。

    1.1K30

    笔记 | 如何在Python下调用Linux的Shell命令?

    这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回。...( 这个看了点 help(os) --> search "exec" 的相关介绍,但是没太搞明白咋使用) 1.2. os模块的system方法 system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果...>>> if "log" in val: # 我们可以使用in来判断返回值中有木有一个字符串 ......有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。...假如你通过一个字符串传递所有东西,你的命令会传递给shell;如果你通过一个列表传递他们,你不用担心逃避任何事。 4.3.

    4.7K20

    Python最广为使用的并发库futures使用入门与内部原理

    对于计算密集型任务应该使用多进程模型。 为什么要这样选择呢?是因为Python GIL的存在让Python虚拟机在进行运算时无法有效利用多核心。对于纯计算任务,它永远最多只能榨干单个CPU核心。...如果将代码稍作修改,将print改成单个write操作,输出就整齐了(关于write是否绝对原子性还需要进一步深入讨论) # 分割子任务 def each_task(index): time.sleep...线程池内部结构 主线程和子线程交互分为两部分,第一部分是主线程如何将任务传递给子线程,第二部分是子线程如何将结果传递给主线程。第二部分已经讲过了是通过Future对象来完成的。...子进程将处理结果塞进ResultQueue(分布式跨进程队列) 管理线程从ResultQueue中获取结果,塞进Future对象 主线程从Future对象中拿到结果 这个复杂的流程中涉及到3个队列,还有中间附加的管理线程...当父进程要传递任务给子进程时,先使用pickle将任务对象进行序列化成字节数组,然后将字节数组通过socketpair的写描述符写入内核的buffer中。

    2.3K20

    python中延时函数_python延时函数

    1.1 map示例:(将list中的所有元素*10)def fn_map(x… python中的sleep函数可以传小数进去,然后就可以进行毫秒级的延时了# 例1:循环输出休眠1秒import timei...=hahah—-主进程-pid=9400—- 注意:这里的callback是由主进程执行的,当子进程死亡,主进程回调函数。...python 中每一个进程会启动一个解释器,而线程会共享一个解释器。 python 中的线程是通过标准库 threading 实现的。...答:python 其实不是引用传递也不是值传递,而是共享传参(函数形参获得实参中各个引用的副本)… 用于调用并发任务,其中参数fn是执行任务的函数,通过fn(*args **kwargs)的形式执行单个任务...举例:带眼镜装饰器是任意可调用的对象,本质就是函数装饰器在python中使用如此方便归因于python的函数能像普通的对象一样能作为参数传递给其他函数,可以被复制给其他变量,可以… python中父线程和子线程没有直接的管理关系

    7.5K20

    Python3 与 C# 并发编程之~ 进程实战篇

    此外,单个管理器可以通过网络在不同计算机上的进程共享。...,因此您可以将其直接传递给子进程并在所有进程中安全地使用它。...大多数可变Python对象(如list,dict,大多数类)不能保证进程中安全,所以它们在进程间共享时需要使用 Manager 多进程模式的缺点是创建进程的代价大,在 Unix/Linux系统下,用 fork...使用初始化程序在池创建时传递常规 multiprocessing.Queue()这将使 Queue实例在所有子进程中全局共享 再看一下Pool的 __init__方法: # processes:进程数#...,传了初始化执行的方法并传了参数: alizer=init,initargs=(queue,))) [父进程]PPID=13157,PID=24864[子进程1]PPID=24864,PID=24865

    93740

    Python中模块

    /Unix用户,它是'posix' 重命名:os.rename(old, new) 创建多级目录:os.makedirs(r“c:\python\test”) 创建单个目录:os.mkdir(“test...’,’完整字符串’) ret=re.sub(‘正则表达式’,’新值’,’完整字符串’,’n’) 找到符合条件的替换,并返回出现了几次 ret=re.subn(‘正则表达式’,’新值’,’完整字符串’)...Process(target=func,args=(3,4,5)).start() 开启的子进程:        需要注意的是:下面标红区域必须是元组,当只传一个值时,必须也为元组形式。...放在if name='main'下,而在实例化子进程时,必须把Manager对象传递给子进程,否则lists无法被共享,而这个过程会消耗巨大资源,因此性能很差。...因为新的线程和之前的主线程共享同一段代码 不需要import 也就不存在在子线程中又重复了一次创建线程的操作 所以就不必要if __name__==’__main__’ threading 与 multiprocessing

    85730

    【愚公系列】2021年12月 Python教学课程 26-系统编程

    os.defpath 当使用 exec 函数族的时候,如果没有指定 PATH 环境变量,则默认会查找 os.defpath 中的值作为子进程 PATH 的值。 使用范例: 2....在 Python 中,使用 windows 的文件路径时一定要小心,比如你要引用 d 盘下的 1.txt文件,那么路径要以字符串的形式写成’d:\1.txt’或者 r’d:\1.txt’。...必须是一个字符串,字符串参数列表 stdin、stdout 和 stderr:子进程的标准输入、输出和错误。...stdout 获取子进程的 stdout。通常为 bytes 类型序列,None 表示没有捕获值。....' >>> ret.stdout.decode('gbk') ' 驱动器 C 中的卷是 系统\r\n 卷的序列号是 C038-3181\r\n\r\n C:\\Python36 的目录 \r\n\r\

    88620

    Linux基础(五)

    /bin/bash export name #name="son" echo "son pid is $$" echo "son.sh:name=$name" 结果:子进程的变量只在子进程中有效 从上面的例子中...的子进程均无效 环境变量:生效范围为当前shell进程及其子进程(作用范围:当前shell、子shell、子子shell) 局部变量:生效范围为当前shell进程中某代码片段 位置变量:$1,$2,......来表示,用于脚本代码中调用通过命令行参数传递给它的参数 特殊变量:$?...declare -r name declare -ir name ( i表示数字 ) 查看:readonly -p 例如:PI = 3.1415926 位置变量:在脚本代码中调用通过命令行传递给脚本的参数.......") $@ :传递给脚本的所有参数,每个参数为独立字符串 ( "string1" "string2" "string3" ... ) $# :传递给脚本的参数的个数 $@ $* :只有在被双引号引起来的时候才会有差异

    1.2K80

    分享 Python 常见面试题及答案(下)

    66、python中copy和deepcopy区别 1、复制不可变数据类型,不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的...2、复制的值是可变对象(列表和字典) 浅拷贝copy有两种情况: 第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。...原来值的id值与浅复制原来的值不同。 第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。..._(self)方法,那么就会打印从在这个方法中return的数据 __del__:删除对象执行的方法 68、C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令行启动程序并传参...100、python传参数是传值还是传址? Python中函数参数是引用传递(注意不是值传递)。

    2K30
    领券