面试题目整理
1.编写代码实现func函数,使其实现一下效果:(9s)
foo=func(8)
print(foo(8)) #输出64
print(foo(-1)) #输出-8
思路:实现一个闭包,内层函数调用外层函数
方法一:
缺点:变量名相同,容易混淆,单词不要写错了.
def fun(i): def func(a): return a*i return func foo=fun(8) print(foo(8)) print(foo(-1))
方法二:
def outer(arg1): def inner(arg2): return arg1*arg2 return inner foo=outer(8) print(foo(8)) print(foo(-1))
方法三:(匿名函数)
def fun(arg1): return lambda x:x*arg1 foo=fun(8) print(foo(8)) print(foo(-1))
平时要多刷一些技术文章和blog.
必须更努力学习,多学习,多写.
社会是现实的!!!
2.课后思考:用两个栈实现消息队列的功能?(对比汉诺塔)(面试题)
https://blog.csdn.net/cherrydreamsover/article/details/80466781
用两个队列实现栈(互导)
1.os和sys都是干什么的?
os模块是与操作系统相关的
os.path //与路径相关的
(1)拼接路径 win:\ unix:/ a\b a/b
os.path.join("a","b") //Django
(2)获取当前操作系统的路径分隔符
方法一: os.path.seq //可以打印出来
方法二: os.seq
比如:print(os.path.seq)
(3).判断文件是否存在
os.path.exists("文件的路径")
(4)获取文件大小
os.path.getsize("文件路径")
(5)创建文件
os.mkdir("文件路径")
(6)获取文件的绝对路径 //Django
ret=os.path.abspath(__file__)
print(ret) //绝对路径
print(os.path.dirname(ret)) //绝对路径的上一级父目录
sys是和python解释器相关的
(1)sys.path //获取当前解释器
import sys print(sys.path) #sys.path是python的搜索模块的路径集,是一个list
(2)
sys.modules #获取python解释器加载的所有模块
sys.argv #获取脚本运行时的参数
sys.exit()
2.你工作中都用过哪些内置模块
time/re/json/hashlib/random/socket/collection/functools
3.你有没有用过functools模块?
(1)偏函数:partial(包装一层,制定一个默认参数,包装成另外一个参数)
bin() //将十进制转换成二进制
print(bin(10)) //0b1010
print(oct(10) //0o12
def ooss(arg1,arg2): return arg1/arg2 ret=ooss(10,5) print(ret) //2.0
偏函数的用法;(参考廖雪峰的教程)
print(int('1000',base=2)) #8 print(int('100',base=2)) #4 from functools import partial int2=partial(int,base=2) print(int2('10000')) #16
(2)reduce,wraps
(3)namedtuple,命名元组
from collections import namedtuple
用法:orderDict:有序字典.
要学会自己拓宽自己的知识面.
回头再研究collections和functools.
1.
"""
问:1234能组成多少个不重复不相同的三位数?
"""
# from collections import deque
# from functools import reduce, partial
from itertools import permutations, chain # 排列s Python Cook Book
ret = permutations('1234', 3)
print(list(ret))
list1 = [11, 22, 33]
list2 = ['aa', 'bb', 'cc']
for i in chain(list1, list2):
print(i)
"""
问:1234能组成多少个不重复不相同的三位数?
"""
# from collections import deque
# from functools import reduce, partial
from itertools import permutations, chain # 排列s Python Cook Book
ret = permutations('1234', 3)
print(list(ret))
list1 = [11, 22, 33]
list2 = ['aa', 'bb', 'cc']
for i in chain(list1, list2):
print(i)