请你使用**print()函数**和**'''**将下面的皮卡丘打印出来。皮卡丘字符画可以直接复制步骤1里的。
```
へ/|
/\7∠_/
/│//
│Z_,<//`ヽ
│ヽ/〉
Y`//
●●〈/
()へ|\〈
>_ィ│//
/へ/<|\\
ヽ_(_/│//
7|/
>―r ̄ ̄`―_
题目讲解
1.复制题目要求打印的“皮卡丘”(直接复制下一步中的字符画即可)
2.用print('''''')打印
**注意:标点符号都要用英文**
【参考】
【题目】
利用print()函数,打印出自己的学习目标和学习计划,以及对应的奖惩措施,即“flag学习法”
【提示】
题目要求:
在千寻进入魔法世界的期间,有一位“无脸男”一直跟在她的身边。一开始,千寻对无脸男的跟踪感到害怕,直到她第一次听见了无脸男对她说的话后,才理解了他,并和他成为了朋友。
【讲解】
下面是无脸男对千寻说的话,请你把这段话打印出来,并且使用**转义字符**,把无脸男说的话按照正确格式打印:
千寻你好,人们叫我'无脸男'
这个世界的人都选择无视我
只有你看到了我并和我打招呼
我感到很孤单,很孤单
你愿意和我成为朋友吗?
1.复制下面这段无脸男对千寻说的话:
千寻你好,人们叫我'无脸男'这个世界的人都选择无视我只有你看到了我并和我打招呼我感到很孤单,很孤单你愿意和我成为朋友吗?
2.提示:文本中有引号的地方需要用到转义字符\';需要换行的地方用\n
下面,是一串程序的运行结果。请根据运行结果来反推出它的代码应该怎么写。运行成功后,请你给代码加注释:
输入一个你错过的人:紫霞仙子
输入你最想对ta说的话:我爱你
输入一个时长(比如三分钟):一万年
曾经有一份真挚的爱情放在我面前,那个人的名字是紫霞仙子
可我没有珍惜,如果上天能再给我一次机会,我会对ta说一句话:我爱你
如果非要给这句话加上一个期限,我希望是一万年
1.利用input()函数获取用户输入的数据,并把这些数据放在一个变量中
示例:A=input('输入一个你错过的人:')
2.在print()函数中,利用加号+实现字符串的拼接
示例:print('曾经有一份真挚的爱情放在我面前,ta的名字是'+A)
3.代码添加注释,操作:#(文本内容)
【示例】
A=input('输入一个你错过的人:')#用input()函数获取用户数据,并放到变量A里面
print('曾经有一份真挚的爱情放在我面前,ta的名字是'+A)
#通过加号,把获取到的数据A和字符串拼接起来,并用print()函数打印出来
运行结果:(输入紫霞仙子)
曾经有一份真挚的爱情放在我面前,ta的名字是紫霞仙子
题目要求
在Python的魔法世界,最常用的数据类型有三种:字符串(str)、整数(int)和浮点数(float)。
在**数据拼接**中,为了将不同的信息进行整合,可以使用**拼接符号**。但是,如果数据非字符串类型,则无法进行拼接。
此时,我们可以使用数据转换函数**str()**,将数据转换为字符串类型后,再进行拼接。
请运用下方变量,使用str()函数打印两句话。
第一句话:1人我编程累碎掉的节操满地堆
第二句话:2眼是bug相随我只求今日能早归
可使用变量:
number1=1,number2=2
unit1='人',unit2='眼'
line1='我编程累',line2='是bug相随'
sentence1='碎掉的节操满地堆',sentence2='我只求今日能早归'
1.将非字符串型变量转换为字符串类型
2.将字符串类变量拼接在一起
1.使用str()函数
2.使用拼接符号**+**
3.使用print()函数
在**数据拼接**中,为了将不同的信息进行整合,可以使用**拼接符号**。但是,如果数据非字符串类型,则无法进行拼接。此时,我们可以使用数据转换函数**str()**,将数据转换为字符串类型后,再进行拼接。但是有的时候,针对不同类型的数据,我们需要经历多次转换,最后才能转为字符串类型。
请使用**转换函数**str()、int()、float(),运用下方变量,使用数据转换及数据拼接,输出结果:脸黑怪我咯7张蓝票一个SSR都没有
slogan='脸黑怪我咯',number='7.8',unit='张',sentence='蓝票一个SSR都没有'
1.由于变量中与小数形式的字符串,所以需要使用转换函数将此变量转换为浮点型
2.转换后使用int()函数取整
3.由于数据拼接需要变量为字符串形式,所以需要将变量转化为字符串类型
4.最后数据拼接,得出结果
-使用float()函数将小数形式的字符串变量转换
-使用int()函数取整
-使用str()函数将数据转换为字符串形式
-使用**+**进行数据拼接
请让这首诗实现换行的功能
print('《红豆》王维红豆生南国,春来发几枝。愿君多采撷,此物最相思。')
换行后,终端的运行效果如下:
《红豆》王维
红豆生南国,春来发几枝。
愿君多采撷,此物最相思。
可以使用转义字符【\n】
1.用input()函数获取用户数据
2.使用int()函数把数据转换为整数,再乘以7
在灭霸打了一个响指,宇宙一半生物都灰飞烟灭后,剩下的复仇者联盟成员们在巨大的创伤之中,依旧没有放弃反击灭霸的机会,他们决定利用最后一次行动机会,去把灭霸手里的宝石偷回来。最终,他们因为实力相差太大,1颗宝石都没有偷回来。
请你写出一段代码:
如果偷回的宝石数是4颗及以上,输出结果“获得了打败灭霸的力量,反杀稳了”
如果偷回的宝石数是1-3颗,输出结果“可以全员出动,殊死一搏”
如果偷回的宝石数是0颗,输出结果“没办法了,只能尝试呼叫惊奇队长”
注意:标点符号都为英文格式
1.为变量【赋值】,写出“一个宝石都没偷回来”的情况
2.用【if】写第一个条件:如果偷回的宝石数是4颗及以上,输出结果:获得了打败灭霸的力量,反杀稳了
3.用【elif】写第二个条件:如果偷回的宝石数是1-3颗,输出结果:可以全员出动,殊死一搏
4.用【else】写第三个条件:如果偷回的宝石数是0颗,输出结果:没办法了,只能尝试呼叫惊奇队长
复仇者联盟的成员也是有工资的,然而,由于美国队长一直被冰封在北极,错过了多次调薪机会,所以美国队长的工资一直是每月80美元。光荣挺进史塔克穷人榜前三名,并获封“美元队长”称号。
请你写出一段代码,判断美国队长的工资水平,代码需要满足如下条件:
如果月工资小于等于500美元,显示“欢迎进入史塔克穷人帮前三名”
如果月工资在100-500美元之间,显示“请找弗瑞队长加薪”
如果月工资小于等于100美元,显示“恭喜您荣获“美元队长”称号!”
如果月工资在500-1000美元之间(含1000美元),打印“祝贺您至少可以温饱了。”
其他情况下,如果工资大于1000美元,打印“经济危机都难不倒您!”
如果工资在1000-20000美元(含20000美元)之间,打印“您快比钢铁侠有钱了!”
如果月工资大于20000美元,打印“您是不是来自于瓦坎达国?”
不管赋值改变后输出结果如何,都需固定打印“程序结束”
1.根据题目,我们知道这里涉及嵌套条件,所以可以用扒洋葱法梳理代码逻辑
2.根据要求,先写最外层的**if……elif……else……**条件
3.根据题目的从属关系分析,最外层的**if**条件和**else**条件都有额外条件
4.依次在外层基础条件下添加额外条件
1.使用if条件嵌套
2.嵌套条件需要缩进
3.注意单双引号同时存在时的互相转换
4.通过钱数输出对应的结果
【背景】
最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡。海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏。
游戏规则如下:如果派大星一天吃超过40个蟹黄堡,就要给海绵宝宝100块;如果派大星一天吃小于等于40个的蟹黄堡,海绵宝宝就给派大星100块。
请你写出一段代码:当输入派大星一天吃的蟹黄堡数量时,可以打印出这天该派大星给海绵宝宝钱,还是海绵宝宝给派大星钱。
使用Pyhton代码来演示恋爱过程:
首先判断:两人的关系是不是达到了【朋友之上,恋人未满】?
如果不是,那么输出:进度条还不够,再等等。程序终结。
如果是,那么再判断:你是不是想和对方有进一步的发展?
如果不是,那么输出:还是做朋友吧。程序终结。
如果是,那么再判断:对方是不是想有进一步的发展?
如果不是,那么输出:恭喜获得“好人卡”。
如果是,那么输出:恭喜你们,有情人终成眷属!
输入你的体重和身高,根据BIM指数的计算公式,输出不同BIM指数对应的身体状况(过轻、正常、过重、健康)。
BMI指数是一个国际上常用的衡量人体胖瘦程度,以及是否健康的指数。
它的计算方式如下:BMI=体重÷(身高×身高)比如一个体重50kg,身高160cm的人,BMI=50÷(1.6*1.6)=19.5
对照BMI的表格:
哈利·波特在对角巷购买宠物时犯难了,他不知道该给自己的猫头鹰起什么名字。现在请你帮助哈利·波特,为他的猫头鹰起一个名字。
请你写一段代码:
为哈利·波特的猫头鹰起个名字,并打印出结果【哈利·波特的猫头鹰叫做XX】(XX是你起的名字)。
1.搜集猫头鹰的名字(知识点:input(),赋值)
2.打印结果【哈利·波特的猫头鹰叫做XX】(XX是你取的名字)(知识点:数据拼接)
为了三强争霸赛的舞会,罗恩想要减肥,所以他决定控制自己的饮食,少吃一点巧克力蛙。
哈利为了帮助好朋友罗恩,和他一起制定了一个饮食游戏。
游戏规则如下:
如果罗恩一天吃超过10个巧克力蛙,罗恩要给哈利100块;
如果罗恩一天吃小于等于10个的巧克力蛙,哈利就给罗恩100块。
当随机输入罗恩一天吃的巧克力蛙数量时,可以判断出这天,是罗恩给哈利钱,还是哈利给罗恩钱,并打印出来。
1.搜集罗恩吃的巧克力数量(知识点:input()、数据转换)
2.写第一个条件:如果罗恩一天吃超过10个巧克力蛙,罗恩要给哈利100块;
3.写第二个条件:如果罗恩一天吃小于等于10个的巧克力蛙,哈利就给罗恩100块。
(知识点:if...else...)
接受了霍格沃茨来信的你,带着欣喜与好奇,跟着魔咒学老师吴枫教授,来到了巫师世界的对角巷。在这个相当于人类集市的对角巷,你立刻被魔法世界稀奇古怪的东西吸引,想掏手机刷花呗买买买。但是吴枫教授说,麻瓜(没有魔法的人)货币在魔法世界不流通,但是你可以去巫师世界的银行——古灵阁兑换货币。你立刻跟着吴枫老师跑到了古灵阁。当你进到巫师世界的银行时,就有银行的小精灵职员问好:
小精灵:您好,欢迎古灵阁,请问您需要帮助吗?需要or不需要?
你:需要
小精灵:请问您需要什么帮助呢?1存取款;2货币兑换;3咨询
你:2
小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币
小精灵:请问您需要兑换多少金加隆呢?
(你说了一个数字)
小精灵:好的,我知道了,您需要兑换(你刚说的数字)金加隆。
小精灵:那么,您需要付给我(将你刚说的数字转换为金加隆的数字)人民币。
注1:如果选择不需要帮助,小精灵会礼貌地说'好的,再见。'
注2:如果选择帮助【1存取款】,小精灵会推荐你去存取款窗口;如果选择帮助【3咨询】,小精灵会推荐你去咨询窗口。
和小精灵的对话可以被这么拆分:
1.最基础的条件判断:需要帮助;不需要帮助(if...else...)
2.在需要帮助的情况下,又分为1存取款;2货币兑换;3咨询;三种情况。(if...elif...else...)
3.在2-货币兑换的情况下,需要再提一个问题,收集答案,打印出小精灵回答的结果(input()、数据拼接、数据转换)。
第一步:取出列表中的第三个元素(list1[2]),字典{'爱':'love'}
第二步:取出list1[2]中键'爱'所对应的值,即'love’(list1[2]['爱'])
第一步:取出字典中键为3对应的值(dict1[3]),即['love','hatred','envy']
第二步:再取出列表['love','hatred','envy']中的第一个元素(dict1[3][0])
第一步:元组和列表都是序列,提取的方式也是偏移量,如tuple1[1]、tuple1[1:]。
第二步:先取出列表中的第二个元素中的(list2[1])
第三步:然后在第二个元素的基础上在去取值,即list2[1][1]
注:(元组和列表的取值方式是相同的)
明确目标很重要(所以重复三遍)。
做到后面的步骤,可再点开左侧的“练习介绍”查看。
练习目标:
在层层嵌套的各种数据类型中,准确地提取出你需要的数据。
练习要求:
在未来世界里,一个新建的童话镇吸引了不少人入住。
不过,在人群里隐藏着一只狼,会威胁大家的安全。
童话镇的镇长希望你能找到它,并揭发其身份。
用程序语言就是说:列表中有个字符串是“狼”,将其打印出来吧。
【解答】
小美想知道你是怎么用for循环的,在下方写下你的代码吧~
小美还想知道你是怎么用while循环的,在下方写下你的代码吧~
做到后面的步骤,可再点开左侧的“练习介绍”查看。
通过这个练习,你会尝试用循环来解决生活中的问题,并了解一种新的列表方法。
小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位。
方法1:append()函数
这里需要用到列表的切片和索引。
参考代码中用的是for循环,当然,while循环也是可以的。
感兴趣的同学,可以两者都试试,然后对比一二。
方法2:pop()函数
我们先介绍一下列表中的pop()函数,用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
可以将其理解为提取和删除的融合:①提取:取到元素,对列表没有影响;②删除:删除列表的元素。
而移除,则是同时做到取到元素,并且删除列表中的元素。
你可以先运行一下右侧的头几行代码感受一下,然后再运用pop()函数来满足“轮流坐前排”这个需求。
相信你已经用了新学的方法完成了代码。可以发现:代码从6行减为5行,虽然仅仅1行代码的差别,还不能很好地体现“简化”代码的思想,但这是一种必备的编程思维。
当你发现要实现某功能要用较多代码实现,最先做的不是埋头打代码,而是找找是否有更好、更简洁的解决方法。
1.开启循环,两人分别选择
首先,我们需要知道两个囚徒各自的选择(input*2)。
2.循环当中,有判断和跳出
两个囚徒的选择,会有四种不同的结果。所以,可以用'if...elif...else'。
判决提示:
若两人都认罪,则两人各判10年;
若一个认罪一个抵赖,则认罪的人判1年,抵赖的人判20年;
若两人都抵赖,则各判3年——这种情况下跳出循环。
练习要求
上一个练习,我们将“囚徒困境”写成了代码,让程序收集两名囚犯的认罪情况,进而决定他们的判决:
两人都认罪,则各判10年;一个认罪一个抵赖,则前者判1年,后者判20年;两人都抵赖,各判3年。只有两人都不认罪,程序才会停止。
现在有一个社会学家,在不同的人群中做这个实验,一旦遇到都不认罪的情况,就停止该人群中的实验。
同时,他希望程序能记录每一对实验者的选择,以及记录第几对实验者都选择不认罪。请你帮帮他吧。
这个作业会建立在上一个练习的基础上,完善代码的功能。
几个提示:
为了记录每一对实验者的选择,需要用一个可拓展的“容器”来存放这些数据;
为了记录是第几对实验者做了最优选择,需要用一个变量来计数;
为了将每一对实验者的选择再打印出来,需要写一个循环。
在打印的那个循环里,需要留意列表是从0开始计数的。
我很喜欢看电影,我回忆了一下,这两年我觉得还不错的国产电影。
下面,会将电影的影片名和主演放在字典里,如`movie={'妖猫传':['黄轩','染谷将太']}`。
需要你补充一些代码,让其他人只要输入演员名,就打印出:××出演了电影××。
通过这个练习,你会学会综合使用循环、数据提取和条件判断。
注:这个练习的提示比较完整,建议先多尝试几次独立完成。
对该练习完整的提示:
1.先用for...in...遍历字典,把键(即电影名)取出来;
2.再用字典的键把字典里的值(即包含主演名字的列表)取出来;
3.最后用ifAinB作为条件判断A在不在B中,即输入的演员名在不在这个列表中。如果在这个列表中,就打印出××出演了电影××。
要达成目标,有两种方案:
1.whileTrue+break:
开启一个无限循环,设定跳出条件。
当得到肯定回复时,继续运行;当得到否定回复时,运行break,停止循环,退出游戏。
2.while变量名+变量名的布尔值判断:
在开头设某变量的布尔值为True,input后开启判断变量的布尔值是否改变。
当得到肯定回复时,whileTrue,继续运行;当得到否定回复时,whileFalse,停止循环,退出游戏。下面,我们先用较简单的代码来体会一下这两种方案。
方案1:whileTrue+break
方案2:while变量名+变量名的布尔值判断
当得到肯定回复时,whileTrue,继续运行;当得到否定回复时,whileFalse,停止循环,退出游戏。
练习目标
在这个练习,我们会学会一种新的“格式化字符串”的方法:format()函数。
在项目1的末尾,我们学会了一种简化代码的方式:格式化字符串。
不过,还有一种更强大的方法,下面我们会先学习,然后再练习。
学习format()函数
format()函数是从Python2.6起新增的一种格式化字符串的函数,功能比课堂上提到的方式更强大。
format()函数用来占位的是大括号{},不用区分类型码(%+类型码)。
具体的语法是:'str.format()',而不是课堂上提到的'str%()'。
而且,它对后面数据的引用更灵活,不限次数,也可指定对应关系。
看完左侧的代码、结果和注释,你就懂上面几句话的意思了。
运用format()函数
将代码中字符串格式化的代码改成format()函数的方法,改完后运行一下,检验是否正确。
一个小提示:一共有5行代码需要改,找到它们,然后改下。
1.合并列表-1
分析问题,明确结果
我们的问题是:将两个列表合并起来,并按照从低到高的顺序排序,要得到问题的结果,我们还需要借助打印函数看看我们合并的是否正确。
思考要用到的知识&思考切入点
增加列表的内容与合并列表的含义相同,所以我们可以使用append作为解题的切入点,请你试试!
提示:假设要用已学过的知识来完成这道作业,需要用到列表的新增函数和循环。
2.合并列表-2
上网搜索新知识&找到新的切入点
好了。你已经完成了第一个需求:合并列表。不过,有没有发现,这个代码还是比较冗余的。有没有更简单的方法呢?请你自己上网搜索一下
`python合并两个列表`,看看是否有更简单的方法(提示:以字母e开头),学会后再回来继续做作业吧。
请你根据新学到的知识,简化代码。
注(如果你直接将list2合并到list1上,那就无法做到只看A组的成绩,所以,最好再建一个列表来合并两组的成绩)
3.列表排序
主动搜索,掌握新知
老师鼓励你自己去探寻解决问题的方法,上网搜索一下列表的排序方法吧,是不是发现了一个以字母s开头的方法?
这个练习,是建立在上一个练习之上,用代码帮老师完成更多的成绩处理工作。
上一个练习中,我们完成了两组成绩的合并和排序。
不过,老师有了新的需求:想知道两组的平均分,以及把低于平均分的成绩也打印出来。
所以,在这个练习中,我们会帮老师计算出两组的平均分,并挑出那些在平均分之下的成绩。
解题三连击:
1.目前我们想要的结果是:求平均值和判断比较;
2.我们可以用到的知识有:循环叠加成绩,然后除以总人数,即可求平均值。判断比较用小于号和空列表即可;
3.我们的切入点:由于学生的成绩已经被我们集中到一个列表里,所以可以用for循环遍历这个列表来取出小于平均值的成绩。
经过三连击,相信你已经可以帮老师自动化地达成目标了。
第二种解题三连击:
2.我们可以去找的新知识有:Python求平均值;
3.我们的切入点:请你通过搜索,找到更简单的求平均值的方法,来改造代码。
这个方法的单词首字母是“n”,性质是“拓展程序库”。在改造代码前,可以先读懂网上的案例。
我们会通过今天的项目练习,学习函数的封装和调用。
我们已经有一个hellokitty抽奖器,现在,请你把这个程序封装成一个新的函数。
运行抽奖器的代码参考
运行代码,熟悉了解抽奖器抽奖的原理,请仔细查看注释讲解。
分析代码结构,完成函数封装
抽奖程序分为两部分:
我们需要将第二部分用函数封装起来,并调用函数。提示:3个参与者即函数有3个参数。
通过这个练习,你可以通过Python优雅地生成一副扑克牌。
我们将通过这个练习,简单地复习一下return的用法。
另外,这个练习也要求你能够快速地学习新知识并将其运用出来。
新知识有3个:一种新的列表生成方式、extend的新用法和列表生成式。
三个新知识
请仔细查看右侧的代码和注释。重要的几行代码:
请根据学到的新知识,补全函数cards()。
每张扑克牌的展现形式是一个元组:(花色,大小)。
第9关(新版本)
通过这个练习,掌握函数定义和调用的基本用法
眼看要过年了,深夜食堂经营的不错,你打算给员工发奖金犒劳一下。请你定义函数,当输入员工姓名和工作时长两个参数,即可打印出该员工获得多少年终奖。
和电脑玩一个剪刀石头布的游戏:电脑随机出拳,我们可选择出什么。
我们会通过今天的作业,做出和电脑进行“石头剪刀布”的游戏。
1.双方出拳
首先,我们要让双方选择出拳,才能判断胜负。
我们可以设置变量computer_choice代表电脑的出拳选择,设置变量user_choice代表你的出拳选择。
电脑的出拳,我们可以使用random.choice()来随机选择;我们的出拳,可以手动输入我们出拳的类型。
另外,判断下输入:当输入的内容不是石头剪刀布时,电脑会提醒'输入有误,请重新出拳',并重新出拳。
2.双方亮拳
你和电脑已经对自己要出的拳进行了选择,接下来,我们需要知道双方的出拳类型。
请使用print()函数补充亮拳的结果。
3.判断胜负
在前面两步,电脑和你已经选择完出拳的类型并亮拳后,只差最后一步:根据结果判断胜负。
胜负分为三种情况:
两方出拳一致:平局;
你出石头,电脑出剪刀;你出剪刀,电脑出布;你出布,电脑出石头:你获胜;
其他情况:你输了。
根据上面的逻辑将代码补充完整,判断胜负,试试能否运行。
参考答案
我们会通过这个练习,简化上一个练习“石头剪刀布”的代码。
上一个练习的代码中,有一个判断语句的代码很长很长:
我们会通过一个新的知识,将其简化,体验到“知识得增加,代码得简化”这个客观规律。
index()函数
index()函数用于找出列表中某个元素第一次出现的索引位置。
语法为:list.index(obj),obj为object(对象)的缩写。
具体可参考右侧的代码和运行结果。
现在,请你根据新学的函数去简化代码吧。
提示:可以先确定电脑随机选到的选项在列表punches中的索引位置,将其和玩家的选项联系起来。
1.知识点debug
2.思维不清debug
3.被动掉坑debug
通过这个练习,我们会用代码做出一个贴心的除法计算器:只要输入有误,就会给出相应的报错信息。
这个除法计算器需要包含的报错信息有:输入了非数值(即不属于整数和浮点数)、被除数为零以及变量不存在。
为了让代码可以给出相应的报错信息,我们可以运用课堂中谈到的`try...except`语句。
回顾和升级
我们以课堂中的一个代码为例,回顾并升级对`try...except`语句的用法。
请你按照右侧代码区的提醒阅读和运行代码,了解带多个except的try结构。
有兴趣的话,可阅读课堂末的链接,了解`try...except`的更多用法和变形。
请你找到右侧的代码可能会出现的几种报错(可运行尝试),然后用带多个except的try结构来解决这些可能出现的输入错误。
第二个报错信息是:ValueError,你找到了吗?
1.新增业绩的类方法
2.新增检测名字的类方法
3.优化代码
通过这个练习,你可以通过类方法实现简单的日程安排。
为类calendar添加两个方法:一个删除完成项,一个添加新增项。
`{'给父母买礼物':'9:00','学习':'10:00','和朋友聚会':'18:30'}`
接下来,需要你新建两个类方法,从而实现字典中的数据增减。
新建两种类方法
请你补全右侧的代码,让其成功运行,且结果为:
这两个类方法的参数个数分别为2和3(删除只要键,新增要键值对)。
1.问卷答案的储存
2.搜集问题-最喜欢的美食
3.实名问卷:搜集名字和籍贯地
在练习中,需要你通过代码的运行结果和所学知识,补全代码。
在补全代码的过程中,需要对子类的继承和定制有清晰的认知。
根据结果,倒推代码
请你补充右侧代码,让其运行结果如下:
大家注意了!
一个叫“吉多”的人来了。
一个叫“范罗苏姆”的男人来了。
那个叫“范罗苏姆”的男人留下了他的背影。
1.每次实例化都会打印“大家注意了!”,所以可以把它放在初始化函数中;
2.父类的实例化有传入参数,子类的不用,说明继承时改造了初始化函数;
3.子类比父类多了一种方法(因父类生成的对象无法调用),可知这个方法是在子类中新增的。
1.代码实验
2.加新功能
通过这个练习,优化项目3中排序部分的代码。
项目3中的排序,3次输入必须包含1、2、3,否则就会报错(下面可以体验)。
为了避免由于输错而产生的报错,我们可以在原有代码的基础上做一些优化,让程序自动提示,并且能够多次输入,直到成功排序为止。
发现问题
请你运行代码3次,在排序时分别输入:
第一次输入:1→2→3
第二次输入:1→2→2
第三次输入:4→5→6
后面两种输入会报错,你可以想一想为什么会报错以及如何避免这个错误。
解决方案
对于解决方案,你有了大致的思路了吗?
想一想以下的场景,你应该会有所启发:
你在注册某APP账号时,假设密码不符合要求,会跳出一个提示说:密码只能是……
当你两次输入的密码不一致时,又会跳出一个提示说:你输入的密码不一致。
同理,我们可以优化一下排序的代码:
当输入的不是123中的某个数字,就跳出提示;当输入的是重复的数字,也跳出提示。
这样,问题得解决,代码得优化。
1.要保证每个数字都输入了,可用while循环判断:每输入一个123中不重复的数字,就记一次有效,需要有效3次;
2.要验证某个元素是否在列表里,可用'ifainlist1:'。
1.编码和解码
2.通过文件读写,复制图片
2.在读写之间处理数据-2
这个练习,会让你学会一种方法,可以直接修改原文件中的数据。
语文老师将一些古诗存在txt文档里,一句一行。
最近,他计划抽一些古诗,自己设置一些空来让学生默写。
请你用代码帮老师完成这项工作(只要处理了一个文档,加上循环就能处理无数个文档了)。
我们以李商隐的《锦瑟》为例,这是原文档里的内容:
锦瑟
[唐]李商隐
锦瑟无端五十弦,
一弦一柱思华年。
庄生晓梦迷蝴蝶,
望帝春心托杜鹃。
沧海月明珠有泪,
蓝田日暖玉生烟。
此情可待成追忆,
只是当时已惘然。
老师在这首诗想考学生“一弦一柱思华年。”和“只是当时已惘然。”,即他想得到的是:
____________。
为了让代码逻辑简洁且便于更新,可以将需要默写的诗句都放到一个表格里。
另外,当遇到默写诗句时,可以用英文的下划线去替代(____________)。
通过这个练习,我们会用模块去实现上一关卡的选做题“古诗默写”。
这个练习,我们会接触一个新的Python内置模块:os(文件/目录方法)。
这个模块中的许多方法,配合文件读写以及数据处理,可以让一些工作得以自动化。
当然,在一个练习里,我们不会奢求那么多,先体验一下os模块里的3个方法即可。
我们先回顾一下不用模块是如何出古诗默写题的
os模块中的替换方法
可能你会觉得这么操作更麻烦,但假设要你处理大量的文档,模块会让你的代码更清晰更简洁。
细心一些,你可以的!
另外,建议你在本地编辑器试一试下面的这些方法:
os.getcwd()#返回当前工作目录
os.listdir(path)#返回path指定的文件夹包含的文件或文件夹的名字的列表
os.mkdir(path)#创建文件夹
os.path.abspath(path)#返回绝对路径
os.path.basename(path)#返回文件名
os.path.isfile(path)#判断路径是否为文件
os.path.isdir(path)#判断路径是否为目录
注:dir为单词directory(目录)的缩写。
通过这个练习,你至少可以用3种方法去求某个数的绝对值。
请你通过搜索和步骤中的提示,用不同的方法求绝对值。
建议将其封装成函数,如“abs_value1()”。
挑战3种方法解题
请根据右侧的关键词提示以及网上搜索,用3种不同的方法求绝对值。
内置函数为abs(),内置模块为math。
注:绝对值的英文为absolutevalue。
这个练习会通过新旧知识的结合,用Python实现对这种效果的模拟。
提出产品需求,形成技术方案
由于是练习,所以是没有让每个人根据自己的生活经验来提需求。
初步形成的技术方案是:print+字符串+循环+time模块(控制滚动速度)。