红猫大本营hongmao520.ccom?哪道难住了你

大家好,今天小编来为大家解答以下的问题,关于红猫大本营hongmao520.ccom,哪道难住了你这个很多人还不知道,现在让我们一起来看看吧!

作者|天元浪子

责编|maozz

出品|CSDN博客

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

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

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

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

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

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

将元组(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/102946961’按路径分隔符切片的结果。

将字符串‘2.72,5,7,3.14’以半角逗号切片后,再将各个元素转成浮点型或整形。

判断字符串‘adS12K56’是否完全为字母数字,是否全为数字,是否全为字母,是否全为ASCII码。

将字符串‘thereispython’中的‘is’替换为‘are’。

清除字符串‘\tpython\n’左侧、右侧,以及左右两侧的空白字符。

将三个全英文字符串(比如,‘ok’,‘hello’,‘thankyou’)分行打印,实现左对齐、右对齐和居中对齐效果。

将三个字符串(比如,‘Hello,我是David’,‘OK,好’,‘很高兴认识你’)分行打印,实现左对齐、右对齐和居中效果。

将三个字符串‘15’,‘127’,‘65535’左侧补0成同样长度。

提取url字符串‘https://blog.csdn.net/xufive’中的协议名。

将列表[‘a’,‘b’,‘c’]中各个元素用’|'连接成一个字符串。

将字符串‘abc’相邻的两个字母之间加上半角逗号,生成新的字符串。

从键盘输入手机号码,输出形如‘Mobile:18666777788’的字符串。

从键盘输入年月日时分秒,输出形如‘2019-05-0112: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_data的csv格式的文件,并尝试用excel打开它。

从csv_data.csv文件中读出二维列表。

向csv_data.csv文件追加二维列表[[1.468,1.975,1.446],[1.718,1.826,1.359]],然后读出所有数据。

交换变量x和y的值。

判断给定的参数x是否是整形。

判断给定的参数x是否为列表或元组。

判断‘https://blog.csdn.net’是否以‘http://’或‘https://’开头。若是,则返回‘http’或‘https’;否则,返回None。

判断‘https://blog.csdn.net’是否以‘.com’或‘.net’结束。若是,则返回‘com’或‘net’;否则,返回None。

将列表[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>10anda<20。

写一个函数,以0.1秒的间隔不换行打印30次由函数参数传入的字符,实现类似打字机的效果。

数字列表求和。

返回数字列表中的最大值和最小值。

计算5的3.5方和3的立方根。

对3.1415926四舍五入,保留小数点后5位。

判断两个对象是在内存中是否是同一个。

返回给定对象的属性和方法。

计算字符串表达式‘(2+3)*5’的值。

实现字符串‘x={“name”:“David”,“age”:18}’包含的代码功能。

使用map函数求列表[2,3,4,5]中每个元素的立方根。

使用sys.stdin.readline写一个和input函数功能完全相同的函数。

使用二维列表描述9x9围棋局面,'w’表示白色棋子,‘b’表示黑色棋子,’-'表示无子,打印成下图左所示的文本棋盘。

对于9x9围棋盘,用a-i标识各行,用1-9标识各列,设计函数go,输入位置和颜色,即输出文本棋盘,模拟围棋对弈的过程。

下图中是国际跳棋的初始局面,10x10的棋盘上只有50个深色格子可以落子,'w’表示白色棋子,‘b’表示黑色棋子,’-'表示无子,字符串phase=‘b’*20+‘-’*10+‘w’*20表示下图中的局面,请将phase打印成下图右所示的样子。

题目就到此为止啦,各位小伙伴们做的怎么样呢?

接下来,是公布答案的时间啦。

解答:

1.将元组(1,2,3)和集合{4,5,6}合并成一个列表。

>>>list((1,2,3))+list({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.insert(0,7)>>>a.append(0)>>>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].index(5)2

5.分别统计列表[True,False,0,1,2]中True,False,0,1,2的元素个数,发现了什么?

>>>a=[True,False,0,1,2]>>>a.count(True),a.count(False),a.count(0),a.count(1),a.count(2)(2,2,2,2,1)#count不区分True和1、False和0,但None、''不会被视为False

以上是前5题的答案,因篇幅有限,更多答案内容,欢迎扫描下方海报二维码或点击【阅读原文】,加入Python大本营,点击查看!

另有任何关于Python问题,专家将及时在线解答!

红猫大本营hongmao520.ccom和哪道难住了你的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!