Python 企业面试题集锦之Python基础
△字符串、列表、元组、字典每个常用的5个方法?
字符串: 字符串用单引号(')或双引号(")括起来,不可变。 s.strip(c):去除空格或指定的字符c;lstrip/rstrip; s.zfill(w):右对齐,宽度小于w用0前补; s.ljust(w,c):左对齐,宽度w,填充符c;rjust()右对齐。 s.join(q):用"s"将序列"q"中的元素串起来; s.partition(sep):以sep为分隔符,把字符串分割,返回一个元组(包含分割符); s.split(sep=None, maxsplit=-1):把字符串以sep为分隔符分割,maxsplit为分割次数,返回一个列表(不包含分割符); s.find(t):返回t的最左位置,未找到,返回-1; s.index(t):返回t的最左位置,未找到,返回ValueError异常; s.capitalize():第一个字母变大写; s.title():每个单词首字母大写; s.center(width, fillchar=None):字符串内容居中,在给定的字符串长度width中内容居中,两边用提供的字符fillchar填充,fillchar默认为空; s.count(sub, start=None, end=None):在指定位置start与end之间,计算sub字符的数量; s.endswith(suffix, start=None, end=None):判断字符串在start与end位置之间是不是以某个子序列suffix结尾,类似方法还可有startwith(); s.replace(old, new, count=None):把字符串中某个子序列old替换成一个新序列new,count是替换数,返回一个新字符串; s.isdigit():判断是否全是数字; s.isalpha():判断是否全是字母; s.isalnum():判断是否包含字母或数字; s.isspace():判断是否是空字符串; s[start:stop:step]:切片,截取子字符串。 字典: 1:无序(不能索引) 2:数据关联性强 3:键值对,键值对。唯一一个映射数据类型。 字典的键必须是可哈希的,不可变类型。 在同一个字典中,键(key)必须是唯一的。 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取 1)clear(self):清除字典中的所有元素。 2)copy(self):复制一份元组,相当于一次浅拷贝。 3)fromkeys(self, iter, value=None):分别以iter中的元素为键,以value为值,创建一个字典。 4)get(self, k, d=None):获取字典中键为k的值,如果字典中不包含k,则给出d值,d默认为None。 5)items(self):遍历字典的一个方法,把字典中每对key和value组成一个元组,并把这些元组放在一个类似列表的dict_items中返回。 6)keys(self):遍历字典键keys的一个方法,返回一个类似列表的dict_keys,与items方法用法相同。 7) values(self):遍历字典值value的一个方法,返回一个类似列表的dict_values,与items方法用法相同。 8)pop(self, k, d=None):弹除并返回字典中键为k的值。 9)popitem(self):从字典中随机取出一组键值,返回一个新的元组。 10)setdefault(self, k, default=None):从字典中获取键为k的值,当存在k时,功能和get基本一致,当字典中不存在k时,在原字典上添加键为k、值为default的项,并返回default值。 11)update(self, E=None, **F):给字典新增元素,没有返回值。用法:dict.update(dict2)。 列表: 索引,切片,加,乘,检查成员。 1、List写在方括号之间,元素用逗号隔开。 2、和字符串一样,list可以被索引和切片。 3、List可以使用+操作符进行拼接。 4、List中的元素是可以改变的。 1)append(self, p_object):在原有列表最后位置上追加新元素到列表,不生成新的列表。 2)clear(self):清空列表里面的元素,不生成新列表。 3)copy(self):复制一份列表,相当于一次浅拷贝。 5)extend(self, iterable):把iterable中的每个元素扩展成列表的元素,iterable可以是字符串、列表、集合、元组、字典。 6)index(self, value, start=None, stop=None):查找列表中value元素索引位置,start与stop参数是查找起始与结束位置,默认为None。 7)insert(self, index, p_object):在列表index索引位置插入元素p_object,当index大于列表包含的元素个数时,在最后位置插入元素。 8)pop(self, index=None):从列表中取出index位置的值,index默认为None,此时弹除并返回列表中最后一个值。 9)remove(self, value):移除列表中第一个出现的value元素,value元素不存在列表中时,则抛出ValueError。 10)reverse(self):反转列表元素的位置。 11)sort(self, key=None, reverse=False):给列表中的元素排序,改变原列表!reverse默认False(升序)。【而sorted()函数是生成副本】。 12)[start:stop:step]:切片,从列表中取出一部分元素生成一个新列表,start与stop默认为None,step表示步长值,默认是一个接着一个切取, 如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0。 13)索引[index]:获取索引位置index的值。 元组: ()元组的元素不能修改。 1、与字符串一样,元组的元素不能修改。 2、元组也可以被索引和切片,方法一样。 3、注意构造包含0或1个元素的元组的特殊语法规则。 4、元组也可以使用+操作符进行拼接。 1)count(self, value):统计元组中包含value元素的数量,返回一个int值。 2)index(self, value, start=None, stop=None):索引,查找元组中value元素第一个出现的位置,start与stop参数是查找起始与结束位置,默认为None。 3)[start:stop:step]:切片操作。 Set(集合): 集合(set)是一个无序不重复元素的序列。 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 1)add(self, *args, **kwargs):在集合里添加一个元素,不生成新的集合。 2)clear(self, *args, **kwargs):清空集合里面的元素,不生成新的集合。 3)copy(self, *args, **kwargs):浅拷贝集合,返回一个新集合。 4)difference(self, *args, **kwargs):传入一个或多个参数集合对比,返回一个与参数集合不一样元素的集合。 5)discard(self, *args, **kwargs):删除集合中的某个元素,如果这个元素没有在集合中,不做操作。 6)isdisjoint(self, *args, **kwargs):对比两个集合,若空交集则返回True,没有则返回False。 7)issubset(self, *args, **kwargs):判断集合的包含关系,是否是参数集合的子集。 8)pop(self, *args, **kwargs):从集合中随机(因集合无序)弹除并返回一个元素,如果集合为空,则报TypeError错误。 9)remove(self, *args, **kwargs):移除集合中的一个元素,这个元素必须在集合中,如果不在,则报TypeError错误。 10)union(self, *args, **kwargs):两个集合拼接返回一个新集合。 11)update(self, *args, **kwargs):更新集合,添加集合中没有的新元素,不返回新集合。
△哈希冲突回避算法回避有哪几种,分别有什么特点?
# 特点详细参考
https://www.cnblogs.com/liangxiaoji/p/11044468.html 1.开放地址法 一旦发生了冲突,就去寻找下一个空的散列地址 2.链地址法 每个哈希表节点都有一个next指针,多个哈希表节点可以用next指针构成一个单向链表,被分配到同一个索引上的多个节点可以用这个单向链表连接起来
3.公共溢出区法 将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表
4.再哈希法 又叫双哈希法,有多个不同的Hash函数,当发生冲突时,使用第二个,第三个,….,等哈希函数计算地址,直到无冲突。
1:为什么学习Python
大学是计算机相关专业,公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python。
Python简单易学,生态圈强大(各种第三方库),应用领域众多(数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等),
在未来我觉得是往自动化,人工智能这方面发展的,所以学习了Python。
2:通过什么途径学习Python
自学(网上视频学基础,网上看技术博客,廖雪峰的Python教程),练项目到GitHub上面找一些小项目学习。