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能够被索引和切片。
三、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个元素的元组的特殊语法规则。
四、元组也可使用+操做符进行拼接。
 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):更新集合,添加集合中没有的新元素,不返回新集合。

 

△哈希冲突回避算法回避有哪几种,分别有什么特色?
# 特色详细参考 
http://www.javashuo.com/article/p-wmetkmgk-bp.html
1.开放地址法 一旦发生了冲突,就去寻找下一个空的散列地址 2.链地址法 每一个哈希表节点都有一个next指针,多个哈希表节点能够用next指针构成一个单向链表,被分配到同一个索引上的多个节点能够用这个单向链表链接起来
3.公共溢出区法  将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一概填入溢出表
4.再哈希法  又叫双哈希法,有多个不一样的Hash函数,当发生冲突时,使用第二个,第三个,….,等哈希函数计算地址,直到无冲突。

 

 

 

 

 

 

1:为何学习Pythonhtml

大学是计算机相关专业,公司建议使用Python,而后本身经过百度和向有学过Python的同窗了解了Python。
Python简单易学,生态圈强大(各类第三方库),应用领域众多(数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等),
在将来我以为是往自动化,人工智能这方面发展的,因此学习了Python。

  

2:经过什么途径学习Pythongit

自学(网上视频学基础,网上看技术博客,廖雪峰的Python教程),练项目到GitHub上面找一些小项目学习。
相关文章
相关标签/搜索