作者|天元浪子
编辑| maozz

出品| CSDN博客
虽然编程不是自然语言,但如果仔细考虑,它其实在很多方面都符合传统语言学的规律。比如编程语言也讲究词汇学、结构学、句法、语义等。在语言学习方法上,编程语言与自然语言高度相似。
回顾学英语的过程,有这样一个阶段:语法听懂了,词汇量比英国农民大很多,但也就是说,不会说,听不懂,急得捶胸顿足。我们来看看初学者学习Python的情况。有这样的舞台吗?基本语法学过了,但是看别人的代码特别费劲,自己写的时候又不知从何下手。
为什么会这样?我的回答是:缺乏语感!什么是语感?专业定义如下:语感是直接、快速感知语言的能力,是语言水平的重要组成部分,是高度浓缩的语言分析、理解、体验、吸收的全过程,是一种带有浓厚色彩的体验性能力,涉及学习体验、生活体验、心理体验、情感体验,包含理解能力、判断能力、联想能力等诸多因素。
以上是我在编程中提出的“语感训练”的理论基础。语感训练不等同于语法学习,也不是小项目或题目的完整练习,而是针对字符串处理、文件读写、列表字典元组集对象操作等基本功的训练。,是编程实践中经常遇到的,帮助初学者建立语感。
一旦建立了语感,初学者就可以专注于功能的实现,不会随时被一些小问题打断。
Python语感训练涵盖列表、字典、元组、集合、字符串、打印格式、类型与整数转换、文件读写、杂项等9大类,共100个练习。
将元组和集合{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元素的个数。你发现了什么?从列表中删除元素“x”[true,1,0,“x”,none,“x”,false,2,true]。从列表中删除索引号为4的元素[true,1,0,' x ',none,' x ',false,2,true]。删除列表中具有奇数索引号的元素。清除空列表中的所有元素。分别按升序和降序列出[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]变成[,,]的形式。以列表形式返回字典中的所有键{'Alice': 20,' Beth': 18,' Cecil': 21}。以列表形式返回字典{'Alice': 20,' Beth': 18,' Cecil': 21}中的所有值。以列表形式返回字典{'Alice': 20,' Beth': 18,' Cecil': 21}中所有键值对的元组。将“David”:19个键值对添加到字典{“Alice”:20,“Beth”:18,“Cecil”:21 }并将Cecil的值更新为17。删除字典{'Alice': 20,' Beth': 18,' Cecil': 21}中的Beth键后,清除空字典。确定大卫和爱丽丝是否在字典中{ '爱丽丝':20,'贝丝':18,'塞西尔':21}。遍历字典{'Alice': 20,' Beth': 18,' Cecil': 21}并打印键值对。如果a = dict,让b = a,执行b.update,A也会被改变。为什么?如何避免?创建一个字典,将列表中的每个元素['A ',' B ',' C ',' D ',' E ',' F ',' G ',' H']作为键,默认值为0。把二维结构[['a ',1],['b ',2]]和,]变成字典。将元组和组合成一个元组。将空之间的坐标元组的三个元素解包为变量x,y,z y,z。返回元组中“Cecil”元素的索引号。返回元组中元素2的个数。确定“Cecil”是否在元组中。返回在元组索引号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 '是否大写,所有字母是否小写,所有字母是否大写。返回字符串“this is python”的首字母大写和字符串中每个单词的首字母大写。确定字符串“this is python”是否以“this”开头,以“python”结尾。返回字符串“this is python”中“is”出现的次数。返回字符串“this is python”中第一个和最后一个“is”的位置。将字符串“this is python”分成三个单词。返回按路径分隔符分割字符串blog.csdn.net/xufive/article/details/102946961'的结果。用半角逗号分割字符串“2.72,5,7,3.14”,然后将每个元素转换为浮点或整数。确定字符串“ADS12K56”是否全是字母数字、全是数字、全是字母和全是ASCII码。将字符串“there is python”中的“is”替换为“are”。清除字符串' t python n '左右两边的空白色字符。按行打印三个英文字符串,实现左对齐、右对齐、居中对齐的效果。按行打印三个字符串,实现左对齐、右对齐和居中的效果。用零填充三个字符串“15”、“127”和“65535”的左侧,使其长度相同。从url字符串中提取协议名' file/tupian/20220828/blog.csdn.net/xufive'.用' | '将列表中的元素['a ',' b ',' c']连接成一个字符串。在字符串“ABC”的两个相邻字母之间添加逗号,以生成新字符串。从键盘输入手机号码,并输出类似“手机:186 6677 7788”的字符串。从键盘输入年、月、日、分、秒,输出类似‘2019-05-01 12:00:00’的字符串。给定两个浮点数3.1415926和2.7182818,打印格式字符串' pi = 3.1416,e = 2.7183 '。使用0.00774592和356800000打印格式作为科学记数法字符串。将十进制整数240格式化为八进制和十六进制字符串。将十进制整数240转换为二进制、八进制和十六进制的字符串。将字符串“10100”转换为二进制、八进制、十进制和十六进制的整数。求二进制整数1010、八进制整数65、十进制整数52和十六进制整数b4的和。将列表[0,1,2,3.14,' x ',none ' ',list,{5}]中的每个元素转换为布尔值。返回字符“a”和“a”的ASCII编码值。返回ASCII编码值为57和122的字符。将二维列表[[0.468,0.975,0.446],[0.718,0.826,0.359]]写成csv文件,命名为csv_data,尝试用excel打开。从csv_data.csv文件中读出2D列表。将二维列表[[1.468,1.975,1.446],[1.718,1.826,1.359]]追加到csv_data.csv文件中,然后读出所有数据。交换变量x和y的值,判断给定的参数x是否整形。确定给定的参数x是列表还是元组。确定“file/tupian/20220828/blog.csdn.net”是以“http://”/”还是“https://”开头。如果是,返回‘http’或‘https’;否则,不返回任何值。判断' file/tupian/20220828/blog.csdn.net '是否以'结尾。com '或'。网络。如果是,则返回‘com’或‘net’;否则,不返回任何值。将列表[3,' a ',5.2,4,{},9,[]]中大于3的整数或浮点数设置为1,其余设置为0。a,b是两个数字,返回其中较小或最大的一个。找出列表中最频繁出现的数字[8,5,2,4,3,6,5,5,1,4,5]以及出现的次数。把二维列表[[1],['A ',' B'],[2.3,4.5,6.7]]变成一维列表。将长度相等的键和值的列表转换为字典。使用链比较运算符重写逻辑表达式a > 10和a < 20。写一个函数,将函数参数传入的字符打印30次,间隔0.1秒不换行,达到类似打字机的效果。数字的和。返回数字列表中的最大值和最小值。计算出5的3.5和3的立方根。将3.1415926四舍五入到小数点后5位。确定两个对象在内存中是否相同。返回给定对象的属性和方法。计算字符串表达式“* 5”的值。实现字符串' x = {"name": "David "," age": 18} '中包含的代码函数。使用map函数找到列表[2,3,4,5]中每个元素的立方根。使用sys.stdin.readline编写一个与输入函数完全相同的函数。用一个二维列表来描述9x9围棋的情况。‘w’表示白棋子,‘B’表示黑棋子,“-”表示没有孩子。它被打印为下图左侧所示的文本棋盘。对于9x9围棋棋盘,用a-i标记每行,用1-9标记每列,设计函数go,输入位置和颜色,即输出文字棋盘,模拟围棋的过程。下图是国际跳棋的初始情况。在一个10x10的棋盘上只有50个黑色的方块,w代表白色的棋子,B代表黑色的棋子,而“-”代表没有孩子。字符串phase =' B' * 20+'-'* 10+'W' * 20代表下图的情况。请打印下图右侧所示的相位。题目到此结束。你的朋友怎么样?
接下来,是时候公布答案了。

回答:
1.将元组和集合{4,5,6}合并到一个列表中。
>>>列表)+列表[1,2,3,4,5,6]
2.分别在列表[1,2,3,4,5,6]的开头和结尾添加整数元素7和0。
> > > a = [1,2,3,4,5,6]> > a .插入> > > a .追加> > > a[7,1,2,3,4,5,6,0]
3.反转列表[0,1,2,3,4,5,6,7]。
> > > a = [0,1,2,3,4,5,6,7]>>> a.reverse>>> a[7,6,5,4,3,2,1,0]> > a[:::-1][0,1,2,3,4,5,6,7]
4.反转列表[0,1,2,3,4,5,6,7]并给出中元素5的索引号。

> > >[0,1,2,3,4,5,6,7][::-1].index2
5.分别统计列表[True,False,0,1,2]中True,False,0,1,2元素的个数。你发现了什么?
> > > A = [True,false,0,1,2] > > A. Count,A. Count,A. Count # Count不区分True和1,False和0,但None,''不会被视为False。
以上是前五个问题的答案。由于篇幅有限,更多回答请扫描下方海报二维码或点击【阅读原文】加入Python大本营。点击查看!
有关于Python的问题,专家会及时在线解答!


