1.在函数里面修改全局变量的值
2.合并两个字典、删除字典中的值
3.python2和python3 range(1000)的区别
python2返回列表,python3返回迭代器
4.什么样的语言可以使用装饰器?
函数可以作为参数传递的语言。
5.python内置数据类型有哪些?
整型(Int)、布尔型(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)
6.__init__和__new__的区别?
(1)__init__时初始化方法,创建对象后,就立刻被默认调用了,可接收参数;
(2)__new__必须要有一个参数cls,代表当期类,此参数在实例化时由python解释器自动识别;
(3)__new__必须要有返回值,有两种:super(当前类名,cls).__new__,或Object.__new__(cls)
(4)如果__new__创建的是当前类的实例,会自动调用__init_函数,通过return语句里的调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,那么实际创建返回的就是其他类的实例,其实就是不会调用当前类的__init__函数,也不会调用其他类的__init__函数。
class A(object): def __init__(self): print("这是init方法",self) def __new__(cls, *args, **kwargs): print('这是cls的id',id(cls)) print('这是New方法',object.__new__(cls)) return super(A,cls).__new__(cls) A() print('这是类A的id',id(A))
7.用with方法打开处理文件时帮我们做了什么?
打开文件进行读写的时候可能出现一些异常情况,如果按照常规的open方法,我们需要用try except finally做异常判断,并且文件不管遇到什么情况,我们都需要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close()(还有一些其它自定义功能)。
f=open(" xx.txt","wb") try: f.write("welcome") except: pass finally: f.close()
8.列表[1,2,3,4,5],使用map()函数输出[1,4,9,16.25],并用列表推导式退出大于10的数,最终输出[16,25]
’map(func,list):将list中的每个元素进行func操作,并返回
a=[1,2,3,4,5] b=list(map(lambda x:x*x,a)) print(b) c=[x for x in b if x>10] print(c)
9.生成随机整数、随机小数、0-1之间的数
import random import numpy as np #生成10-20之间的一个整数 a=random.randint(10,20) #生成五个随机小数 b=np.random.randn(5) #生成0-1随机小数 c=random.random()
10.正则表达式的使用:<div class='name'>中国</div>匹配出"中国"
import re s="<div class='name'>中国</div>" tmp="<div class='.*'>(.*?)</div>" res=re.findall(tmp,s) print(res)
输出:["中国"]
11.python中断言(assert),如断言成功,程序继续运行,断言失败,则程序报错
a=3 assert(a>1) print(‘断言成功,程序运行到这’)
12.python2和python3的区别?说出五个
(1)python3 print必须带括号
(2)python3 range返回迭代器,python2返回列表
(3)python3默认使用utf-8编码,python2使用ACSII编码
(4)python3中str表示字符串序列,byte表示字节序列;python2中unicode表示字符串序列,str表示字节序列
(5)python2中为显示中文,需引入coding声明,python3中不需要;
(6)python3中输入是input,python2中是raw_input
13.用lambda实现两个数相乘
输出:12
14.对字典按键或值进行排序
输出:
[(1, 'd'), (2, 'a'), (3, 'b')]
[(2, 'a'), (3, 'b'), (1, 'd')]
15.利用collections中的Counter计算每个元素出现的个数
输出:Counter({'s': 3, 'd': 3, 'a': 2, 'g': 2, 'c': 1, 'f': 1})
16.字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"
17.filter函数:传入的第一个值是函数,第二个是列表
输出:[1,3,5]
18.列表推导式
输出:[1,3,5]
19.自定义抛出异常
输出:数字大于2
20.正则表达式匹配中,(.*)和(.*?)匹配区别?
(.*)是贪婪匹配,会把满足正则的尽可能多的往后匹配
(.*?)是非贪婪匹配,会把满足正则的尽可能少匹配