1.一行代码实现1-100的和
2.在函数内部改变全局变量
3.列出5个python标准库
time,获取时间戳,时间等。
os获取系统信息,如目录,pid。
subprocess,与linux shell交互
re,正则表达式,如match,findall,search
sys,获取程序的参数,路径,退出消息等
psutil,获取系统运行状态,如cpu,mem,disk,net。
4.如何删除字典中的元素,如何更新元素的值,如何合并两个字典
5 如何删除列表中的元素,如何将删除的元素赋值给变量,如何在列表头部插入元素,如何在列表尾部插入元素
6 fun(*args,**kwargs)中的*args,**kwargs什么意思?
*args 传递多个值时使用
**kwargs 传递多组关键字时使用,比如django中的model定义,可能会有多组关键字,后面的函数就会用它作为形参
7 什么样的语言能使用装饰器?
函数能作为参数传递的语言
8 面向对象中__new__和__init__的区别
init是初始化方法,对象创建后,就被调用,并且可以接受参数。
9 简述with方法打开处理文件帮我我们做了什么?
10.列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
11 解释 Python 中的三元表达式
根据一个表达式判断,x的值是什么。
12 python如何实现多线程
13 join()和split的区别
join是把一个字符串的字典组成成一个字符串,用确定的分隔符。
split是把一个字符串按特定分隔符转化成一个列表
13 如何删除字符串中的前置空格,或者最后的/字符。
前置 lstrip(' ') 后置 rstrip('/')
14 改字母大小写,查字母大小写
str.lower 改小写
str.upper 改大写
str.islower 判断是否小写,字符串需要全部小写
str.ipupper 判断是否大写,字符串需要全部大写
答:要把bytes类型解码为str类型的时候,ascii码不能解码,因为这个bytes不是由ascii码编码的,可以换一个试试,像utf-8,gbk。
正则表达式
python里match()和search()的区别
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
列表字典字符处理
python如何实现tuple和list的转换
写一段python代码,删除列表里的重复元素(删除字符串里的重复字符)
上下文管理
设计一个类Foo,使其满足以下代码输出
python语言特性(数据结构、语法结构)
1、range和xrange
python2中,range和xrange有什么区别?
答:两者都用于for循环
range一开始就生成完整的list;xrange返回一个xrange object,且这个对象是iterable,要想返回list,需要类型转换list(xrange(1,4))
由于xrange object是按需生成单个元素,而不是像range那样创建整个list。实际上,xrange由于是在循环中被调用时才会生成元素,因此无论循环多少次,只有当前一个元素占用了内存空间,且每次循环占用的都是相同的单个元素空间。因此,我们可以粗略认为,相同n个元素,range占用的空间是xrange的n倍。因此,在循环很大的情况下,xrange的高效率和快速将表现的很明显:占用的内存空间将更小,速度更快,内存性能更好。测试一下range和xrange的执行时间。
3、列出5个python标准库
os:提供了不少与操作系统相关联的函数
sys: 通常用于命令行参数
re: 正则匹配
math: 数学运算
datetime:处理日期时间
4、字典如何删除键和合并两个字典
del和update方法
5、谈下python的GIL
GIL是python的全局解释器,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器,便该进程内的其他线程无法运行,等该西纳城运行完成后其他的线程才运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其它线程运行,所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程优良一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
7fun(*args,**args)中的*args,**kwargs什么意思?
*args和**kwargs主要用于函数定义,你可以将不定数量的参数传递给一个函数,这里的不定的意思是:余弦并不知道,函数使用者会传递多少个参数给你,所以在这个长江下使用这两个关键字。*args是用来发送一个非键值对的可变数量的参数列表给一个函数。
**kwargs允许你将不定长度的键值对,作为参数传递给一个函数。如果你想要