Python面试实训100题,哪道难住了

作者

天元浪子

责编

maozz

出品

CSDN博客

编程语言虽然不是自然语言,细细琢磨的话,其实在很多方面也是符合传统语言学(linguistics)规律的。比如,编程语言也讲究词汇学(关键字),结构学(程序结构),句法(语法),语义(代码功能)等;在语言的学习方法上,编程语言和自然语言也高度相似。

回想一下学习英语的过程,都有这样一个阶段:语法都搞明白了,词汇量也比英国农民多得多(据说英国的农民,平均词汇量,但我一直未找到资料验证真伪),可就是说也说不出来,听也听不明白,急得捶胸顿足。再来看看初学者学习Python的情况,是不是也有这样一个阶段呢?基础语法都学完了,可是读别人的代码特别吃力,自己写又茫茫然不知从何处着手。

为什么会这样呢?我给出的答案是:缺乏语感!何谓语感,专业的定义如下:语感,是比较直接、迅速地感悟语言的能力,是语言水平的重要组成部分,是对语言分析、理解、体会、吸收全过程的高度浓缩,是一种经验色彩很浓的能力,其中牵涉到学习经验、生活经验、心理经验、情感经验,包含着理解能力、判断能力、联想能力等诸多因素。

以上就是我提出编程也要讲“语感训练”的理论基础。语感训练,并不等同于语法学习,也不是完整的小项目、小课题练习,而是针对编程实践中经常遇到的字符串处理、文件读写、列表字典元组集合对象操作等基本技能进行训练,帮助初学者建立语感。

一旦建立起了语感,初学者就可以专注于功能的实现,而不会随时被一些小问题中断思维。

Python语感训练涵盖列表、字典、元组、集合、字符串、格式化输出、类型和整数转换、文件读写、杂项等9个类别,共道练习题。

将元组(1,2,3)和集合{4,5,6}合并成一个列表。在列表[1,2,3,4,5,6]首尾分别添加整型元素7和0。反转列表[0,1,2,3,4,5,6,7]。反转列表[0,1,2,3,4,5,6,7]后给出中元素5的索引号。分别统计列表[True,False,0,1,2]中True,False,0,1,2的元素个数,发现了什么?从列表[True,1,0,‘x’,None,‘x’,False,2,True]中删除元素‘x’。从列表[True,1,0,‘x’,None,‘x’,False,2,True]中删除索引号为4的元素。删除列表中索引号为奇数(或偶数)的元素。清空列表中的所有元素。对列表[3,0,8,5,7]分别做升序和降序排列。将列表[3,0,8,5,7]中大于5元素置为1,其余元素置为0。遍历列表[‘x’,‘y’,‘z’],打印每一个元素及其对应的索引号。将列表[0,1,2,3,4,5,6,7,8,9]拆分为奇数组和偶数组两个列表。分别根据每一行的首元素和尾元素大小对二维列表[[6,5],[3,7],[2,8]]排序。从列表[1,4,7,2,5,8]索引为3的位置开始,依次插入列表[‘x’,‘y’,‘z’]的所有元素。快速生成由[5,50)区间内的整数组成的列表。若a=[1,2,3],令b=a,执行b[0]=9,a[0]亦被改变。为何?如何避免?将列表[‘x’,‘y’,‘z’]和[1,2,3]转成[(‘x’,1),(‘y’,2),(‘z’,3)]的形式。以列表形式返回字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中所有的键。以列表形式返回字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中所有的值。以列表形式返回字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中所有键值对组成的元组。向字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中追加‘David’:19键值对,更新Cecil的值为17。删除字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中的Beth键后,清空该字典。判断David和Alice是否在字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21}中。遍历字典{‘Alice’:20,‘Beth’:18,‘Cecil’:21},打印键值对。若a=dict(),令b=a,执行b.update({‘x’:1}),a亦被改变。为何?如何避免?以列表[‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,‘G’,‘H’]中的每一个元素为键,默认值都是0,创建一个字典。将二维结构[[‘a’,1],[‘b’,2]]和((‘x’,3),(‘y’,4))转成字典。将元组(1,2)和(3,4)合并成一个元组。将空间坐标元组(1,2,3)的三个元素解包对应到变量x,y,z。返回元组(‘Alice’,‘Beth’,‘Cecil’)中‘Cecil’元素的索引号。返回元组(2,5,3,2,4)中元素2的个数。判断‘Cecil’是否在元组(‘Alice’,‘Beth’,‘Cecil’)中。返回在元组(2,5,3,7)索引号为2的位置插入元素9之后的新元组。创建一个空集合,增加{‘x’,‘y’,‘z’}三个元素。删除集合{‘x’,‘y’,‘z’}中的‘z’元素,增j加元素‘w’,然后清空整个集合。返回集合{‘A’,‘D’,‘B’}中未出现在集合{‘D’,‘E’,‘C’}中的元素(差集)。返回两个集合{‘A’,‘D’,‘B’}和{‘D’,‘E’,‘C’}的并集。返回两个集合{‘A’,‘D’,‘B’}和{‘D’,‘E’,‘C’}的交集。返回两个集合{‘A’,‘D’,‘B’}和{‘D’,‘E’,‘C’}未重复的元素的集合。判断两个集合{‘A’,‘D’,‘B’}和{‘D’,‘E’,‘C’}是否有重复元素。判断集合{‘A’,‘C’}是否是集合{‘D’,‘C’,‘E’,‘A’}的子集。去除数组[1,2,5,2,3,4,5,‘x’,4,‘x’]中的重复元素。返回字符串‘abCdEfg’的全部大写、全部小写和大下写互换形式。判断字符串‘abCdEfg’是否首字母大写,字母是否全部小写,字母是否全部大写。返回字符串‘thisispython’首字母大写以及字符串内每个单词首字母大写形式。判断字符串‘thisispython’是否以‘this’开头,又是否以‘python’结尾。返回字符串‘thisispython’中‘is’的出现次数。返回字符串‘thisispython’中‘is’首次出现和最后一次出现的位置。将字符串‘thisispython’切片成3个单词。返回字符串‘blog.csdn.net/xufive/article/details/’按路径分隔符切片的结果。将字符串‘2.72,5,7,3.14’以半角逗号切片后,再将各个元素转成浮点型或整形。判断字符串‘adS12K56’是否完全为字母数字,是否全为数字,是否全为字母,是否全为ASCII码。将字符串‘thereispython’中的‘is’替换为‘are’。清除字符串‘\tpython\n’左侧、右侧,以及左右两侧的空白字符。将三个全英文字符串(比如,‘ok’,‘hello’,‘thankyou’)分行打印,实现左对齐、右对齐和居中对齐效果。将三个字符串(比如,‘Hello,我是David’,‘OK,好’,‘很高兴认识你’)分行打印,实现左对齐、右对齐和居中效果。将三个字符串‘15’,‘’,‘’左侧补0成同样长度。提取url字符串‘


转载请注明:http://www.aierlanlan.com/grrz/701.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了