面试历来是一个老生常谈的话题,谈到面试自然离不开面经离不开刷题,无论是关于python还是java还是其他的语言,在网上搜索的话会找到一大堆的面试准备材料,如何做好筛选,取其精华去其糟粕是很重要的一件事,毕竟谁都不会有大把的时间准备面试,甚至很多都是花了不到一个月的时间准备的面试就草草出发了,这个时间的确是有点短,在即将走到社会中去,找到一份满意的工作无疑是一件大事,今天不是要来说怎么去找工作或者说找工作的重要性的而是简单记录一下,自己在这个过程中积累下来 的一些内容吧,单纯的是针对于python的语言来说的,当然网上也有很多大佬,讲的更细致更明白,我在这里只是记录一下自己的准备材料,希望如果能帮到需要的人,就好比一个模块的使用说明就又几百页,但是真正在编程题目中常用的函数可能就只有十几个而已,我的能力还没办法面面俱到,在这里只是起到一个尽量全面详细的作用,记录最常用的功能和方法,这些东西的使用频率和技巧都是很重要的。

下面看具体的内容:

#!usr/bin/env python
#encoding:utf-8  '''
__Author__:沂水寒城
功能:一些面试习题的练习和测试
''' import random
from functools import reduce
from operator import muldef extendList(val, list=[]):'''实际发生的事情是,新的默认列表仅仅只在函数被定义时创建一次。随后当 extendList 没有被指定的列表参数调用的时候,其使用的是同一个列表。这就是为什么当函数被定义的时候,表达式是用默认参数被计算,而不是它被调用的时候,list1 和 list3 是操作的相同的列表。而list2是操作的它创建的独立的列表(通过传递它自己的空列表作为list参数的值)'''list.append(val)return listdef squ(x):return x*x#最Pythonic的代码
def some_test():''''''num_list=[-2,-1,0,1,2,3,4,5]#交换首尾两个数字num_list[0],num_list[len(num_list)-1]=num_list[len(num_list)-1],num_list[0]#列表推导式,求列表中每个数的平方,这里也可以使用lambda函数来做new_list=[one*one for one in num_list]#new_list2=map(lambda x: x*x, [y for y in range(10)] )#print [lambda x:x+1 for x in num_list]print '所有元素的平方为:', map(lambda x: x*x, num_list)print '所有元素的平方为:', map(squ, num_list)print '所有元素的绝对值为:', map(lambda x:abs(x),num_list)print '所有为负数的元素为:', filter(lambda x:x < 0,num_list)print '所有元素的和为:', reduce(lambda x,y:x+y,num_list)def print_mutiple():'''打印乘法表'''for i in range(1,10):one_line=''for j in range(1,i+1):one_line+='{0}*{1}={2}'.format(j,i,i*j)+' 'print one_line+'\n'def create_dict():'''创建字典,除了列举出来的还可以直接赋值创建、通过关键字dict和关键字参数创建等'''id_list=['20123456','20124567','20127890']name_list=['Mike','Jack','Tom']test_tuple=[('20123456','Mike'),('20124567','Jack'),('20127890','Tom')]one_dict=dict(zip(id_list,name_list))print 'zip方法创建的字典为:', one_dictprint 'fromkeys方法创建的字典为:', dict.fromkeys(id_list)print '二元组列表创建的字典为:', dict(test_tuple)print '迭代器方式输出字典中的内容:'for i in one_dict.iteritems(): #迭代对象每次只能取出一个使用for循环遍历输出,数据量大的时候速度更快print i print '----------------------------------------------------------------------------'for j in one_dict.items():  #迭代器,一次性取出字典中所有内容print jdef tuple2_list(one_tuple):'''元祖转化为列表'''return [i if not isinstance(i,tuple) else tuple2_list(i) for i in one_tuple]def list_test():'''一些简单的列表操作:求和,最值、乘积、索引元素对输出、字符串化输出'''num_list=[-3,4,3,2,8] num_list2=[4,5,6,7,8,9]one_tuple=('A','B','C','D','E')  total = sum(num_list)  #列表求和max_value = max(num_list) #列表求最大值min_value = min(num_list) #列表求最小值lmultiple = reduce(mul, num_list, 1) #默认值传1以防空列表报错print '最大值为:', max_valueprint '最小值为:', min_valueprint '总和为:', total print '乘积为:', multipleprint '输出列表中元素下标和元素值为:'for index, ele in enumerate(num_list):print '下标{0}处的元素为:{1}'.format(index, ele)print '将列表中元素拼接输出:', ''.join([str(x) for x in num_list])print '列表转化为元组形式为:', tuple(num_list)print '元祖转化为列表形式为:', tuple2_list(one_tuple)print 'num_list和num_list2的交集为:', [one for one in num_list if one in num_list2]print 'num_list和num_list2的差集为:', [one for one in num_list if one not in num_list2]print 'num_list和num_list2的并集为:', num_list+num_list2def simple_num():'''简单的赋值'''one=9two=90 if one>10 else 19print 'two is:', twodef random_test():'''简单常用的random模块函数使用'''num_list=[3,5,6,9,0,1,2,7,18,21,34,67,91]print '输出一个指定范围1--1000的随机整数:', random.randint(1,1000)print '输出一个随机的浮点数0-1之间: ', random.random()print '输出一个指定上下界的随机的浮点数为:', random.uniform(12,20)print '输出num_list中一个随机数: ', random.choice(num_list)print '输出对num_list列表随机采样n位的结果为:', random.sample(num_list, 5)random.shuffle(num_list)print '输出打乱顺序后的列表为:', num_listdef str_test():'''关于字符串的一些简单方法使用'''one_str='abdefEFdf12895sdsAd 'one_str=one_str.strip()print '转化为大写:', one_str.upper()print '转化为小写:', one_str.lower()print '检查字符串是否由字母字符组成:', one_str.isalnum()print '检查字符串是否由字母字符组成:', one_str.isalpha()print '检查字符串是否由数字字符组成:', one_str.isdigit()print '替换字符a:', one_str.replace('a', 'Z')print '分割字符串:', one_str.split('E')def set_test():'''set的一些简单使用方法举例'''one_str='abgkGJdir234jd'two_str='djkg89034jmhjG'one_set=set(one_str)two_set=set(two_str)print 'one_str转化为集合为:', one_setprint 'two_str转化为集合为:', two_set#单纯在,交、并、差的运算上以及去重的操作上set的确是由于list的操作的print 'one_set和two_set交集为:', one_set & two_setprint 'one_set和two_set并集为:', one_set | two_setprint 'one_set和two_set差集为:', one_set - two_setprint 'one_set和two_set对称差集为:', one_set ^ two_setif __name__ == '__main__':#extendList测试list1 = extendList(10)list2 = extendList(123,[])list3 = extendList('a')print "list1 = %s" % list1print "list2 = %s" % list2print "list3 = %s" % list3#some_test测试some_test()#打印乘法表print_mutiple()#创建字典测试create_dict()#列表的简单测试list_test()#简单的赋值simple_num()#random模块的简单使用random_test()#字符串处理的一些常用方法str_test()

结果如下:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']
所有元素的平方为: [25, 1, 0, 1, 4, 9, 16, 4]
所有元素的平方为: [25, 1, 0, 1, 4, 9, 16, 4]
所有元素的绝对值为: [5, 1, 0, 1, 2, 3, 4, 2]
所有为负数的元素为: [-1, -2]
所有元素的和为: 12
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 zip方法创建的字典为: {'20124567': 'Jack', '20127890': 'Tom', '20123456': 'Mike'}
fromkeys方法创建的字典为: {'20124567': None, '20127890': None, '20123456': None}
二元组列表创建的字典为: {'20124567': 'Jack', '20127890': 'Tom', '20123456': 'Mike'}
迭代器方式输出字典中的内容:
('20124567', 'Jack')
('20127890', 'Tom')
('20123456', 'Mike')
----------------------------------------------------------------------------
('20124567', 'Jack')
('20127890', 'Tom')
('20123456', 'Mike')
最大值为: 8
最小值为: -3
总和为: 14
乘积为: -576
输出列表中元素下标和元素值为:
下标0处的元素为:-3
下标1处的元素为:4
下标2处的元素为:3
下标3处的元素为:2
下标4处的元素为:8
将列表中元素拼接输出: -34328
列表转化为元组形式为: (-3, 4, 3, 2, 8)
元祖转化为列表形式为: ['A', 'B', 'C', 'D', 'E']
num_list和num_list2的交集为: [4, 8]
num_list和num_list2的差集为: [-3, 3, 2]
num_list和num_list2的并集为: [-3, 4, 3, 2, 8, 4, 5, 6, 7, 8, 9]
two is: 19
输出一个指定范围1--1000的随机整数: 995
输出一个随机的浮点数0-1之间:  0.494703671633
输出一个指定上下界的随机的浮点数为: 13.6398110718
输出num_list中一个随机数:  1
输出对num_list列表随机采样n位的结果为: [6, 34, 0, 7, 91]
输出打乱顺序后的列表为: [91, 18, 2, 5, 1, 67, 21, 3, 7, 34, 6, 9, 0]
转化为大写: ABDEFEFDF12895SDSAD
转化为小写: abdefefdf12895sdsad
检查字符串是否由字母字符组成: True
检查字符串是否由字母字符组成: False
检查字符串是否由数字字符组成: False
替换字符a: ZbdefEFdf12895sdsAd
分割字符串: ['abdef', 'Fdf12895sdsAd']

很多小函数用熟了感觉真的是神器,麻雀虽小五脏俱全,对于这些常用的功能一定要熟练,熟练,熟练,而绝对不仅仅是掌握了解的程度就够了!

python面经总结之常见的问题与基本模块的常见使用方法相关推荐

  1. python中如何导入sklearn_Python中常用包——sklearn主要模块和基本使用方法

    在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...

  2. Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句、pass语句)使用方法之详细攻略

    Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句.pass语句)使用方法之详细攻略 目录 Python常见语句命令 1.python的条件语句 2.Python之pass ...

  3. Python中re模块的常见方法

    re模块的常见方法 1.pattern.match(从头找一个) ret = re.match("[1-9]?\d$","08") 2.pattern.sear ...

  4. Python开发【第七篇】: 面向对象和模块补充

    内容概要 特殊成员 反射 configparser模块 hashlib模块 logging模块 异常处理 模块 包 1. 特殊成员 什么是特殊成员呢? __init_()就是个特殊的成员. 带双下划线 ...

  5. python的threading库_python标准库介绍——31 threading 模块详解

    threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...

  6. python创建字典和包的区别_python之路—模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

  7. python append函数二维_python创建与遍历List二维列表的方法

    python创建与遍历List二维列表的方法 python 创建List二维列表 lists = [[] for i in range(3)] # 创建的是多行三列的二维列表 for i in ran ...

  8. chatgpt赋能python:Python挣钱路子:从初学者到专家,你需要知道的所有方法

    Python挣钱路子:从初学者到专家,你需要知道的所有方法 Python是一个高效.可用于多种用途的编程语言.这让它成为一个非常稳定的工具,在过去的10年里,它已经成为了软件开发和数据科学中不可或缺的 ...

  9. 洗礼灵魂,修炼python(70)--爬虫篇—补充知识:json模块

    在前面的某一篇中,说完了pickle,但我相信好多朋友都不懂到底有什么用,那么到了爬虫篇,它就大有用处了,而和pickle很相似的就是JSON模块 JSON 1.简介 1)JSON(JavaScrip ...

  10. Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法

    Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法 参考文章: (1)Python ssh连接L ...

最新文章

  1. JavaScript常用技巧之数组操作
  2. iptables 过滤条件(Matches)
  3. android 蓝牙低耗能(LBE)技术介绍
  4. VTK:图像方差用法实战
  5. 性别有什么用_为啥不让男孩玩布娃娃?别让你的“性别偏见”,给孩子的人生设限...
  6. linux下-bash: ls: command not found
  7. Spring 的循环依赖:真的必须非要三级缓存吗?
  8. DSP 基于 TMS320F2803x 的 I2C 上的 PMBus 的软件应用
  9. 论文指导教师评语计算机,毕业论文指导教师评语
  10. 【MS SQL Server】SQL Server2005下载地址
  11. java 语音发声_单词打字练习java程序(发音、朗读)
  12. 基于Arduino的智能小车-代码部分
  13. 我的世界神奇宝贝服务器怎么修改6v,我的世界神奇宝贝mod修改精灵6V满努力等级图文教程...
  14. Kafka(zookeeper)环境配置超级详细
  15. java实验1_《Java程序设计》实验1
  16. nodejs获取当前日期
  17. 【Python】照片扩展信息提取
  18. ExaGrid在2021年网络计算大奖评选中大获全胜
  19. YDOOK AI : Pytorch :使用 tensor.zeros() tensor.zeros_like() 生成定义 全零数组 全0数组
  20. 关于elementui的table主子表展示数据

热门文章

  1. python之通过thread来实现多进程
  2. Java集合之map 集合使用
  3. Android中文API(125) —— VideoView
  4. 一份数据工程师必备的学习资源,干货满满(附链接)
  5. MongoDB高可用集群搭建(主从、分片、路由、安全验证)
  6. [HAOI2010]计数(组合数学)(数位DP)
  7. WPF中,输入完密码回车提交 ,回车触发按钮点击事件
  8. servlet中doGet()和doPost()的区别
  9. 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
  10. jni.h头文件详解一