全套55讲 鱼C论坛小甲鱼Python课后题.docx
《全套55讲 鱼C论坛小甲鱼Python课后题.docx》由会员分享,可在线阅读,更多相关《全套55讲 鱼C论坛小甲鱼Python课后题.docx(39页珍藏版)》请在冰豆网上搜索。
![全套55讲 鱼C论坛小甲鱼Python课后题.docx](https://file1.bdocx.com/fileroot1/2023-2/25/411008ae-8977-441e-91a6-dfd7574fad9b/411008ae-8977-441e-91a6-dfd7574fad9b1.gif)
全套55讲鱼C论坛小甲鱼Python课后题
第1课之老阳三干创作
1.
创作时间:
二零二一年六月三十日
2.Python是什么类型的语言?
Python是脚本语言
脚本语言(Scriptinglanguage)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的法式.以简单的方式快速完成某些复杂的事情通常是缔造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java之类的系统编程语言要简单容易.
也让脚本语言另有一些属于脚本语言的特性:
∙语法和结构通常比力简单
∙学习和使用通常比力简单
∙通常以容易修改法式的“解释”作为运行方式,而不需要“编译”
∙法式的开发产能优于运行性能
一个脚本可以使得原本要用键盘进行的相互式把持自动化.一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编纂器中,用户可以使用脚原本把一些经常使用的把持组合成一组串行.主要用来书写这种脚本的语言叫做脚本语言.很多脚本语言实际上已经超越简单的用户命令串行的指令,还可以编写更复杂的法式.
1.IDLE是什么?
IDLE是一个PythonShell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与法式交互的途径!
像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给把持系统下达命令.同样的,我们可以利用IDLE这个shell与Python进行互动.
2.print()的作用是什么?
print()会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLEshell窗口).
3.Python中暗示乘法的符号是什么?
Python中的乘号是*(星号).
4.为什么>>>print('Ilove'*5)可以正常执行,但>>>print('Ilove'+5)却报错?
在Python中不能把两个完全分歧的工具加在一起,比如说数字和文本,正是这个原因,>>>print('Ilove'+5)才会报错.这就像是在说“五只小甲鱼加上苍井空会是几多?
”一样没有多年夜意义,结果可能是五,可能是六,也可能是八!
不外乘以一个整数来翻倍就具有一定的意义了,前边的例子就是将"Ilove"这个字符串打印五次.
5.如果我需要在一个字符串中嵌入一个双引号,正确的做法是?
你有两个选择:
可以利用反斜杠(\)对双引号转义:
\",或者用单引号引起这个字符串.例如:
'Il"o"ve'.
6.为什么我们要使用Python3?
Python2究竟有什么问题?
看起来很多法式员依然都在使用Python2?
确实还有相当多的法式员在使用Python2,不外Python3才是Python发展的未来,就像XP和WIN7一样.在《零基础入门学习Python》的系列教程准备中,小甲鱼发觉Python3中的新特性确实很妙,很值得进行深入学习!
你也不用担忧,如果你了解了Python3,Python2的代码阅读对你来说根本不成问题!
第2课
0.什么是BIF?
BIF就是Built-inFunctions,内置函数.为了方便法式员快速编写脚本法式(脚本就是要编程速度快快快!
!
!
),Python提供了非常丰富的内置函数,我们只需要直接调用即可,例如print()的功能是“打印到屏幕”,input()的作用是接收用户输入(注:
Python3用input()取代了Python2的raw_input(),用法如有不懂请看视频讲解).
太多BIF学不外来怎么办?
看不懂英文说明怎么办?
Python3的资料太少怎么办?
没事,有了小甲鱼,妈妈再也不用担忧我的学习了!
1. 用课堂上小甲鱼教的方法数一数Python3提供了几多个BIF?
在Python或IDLE中,输入dir(__builtins__)可以看到Python提供的内置方法列表(注意,builtins前后是两个下划线哦)其中小写的就是BIF.如果想具体检查某个BIF的功能,比如input(),可以在shell中输入help(input),就会获得这个BIF的功能描述.哦,谜底应该是68个,不信你自己数数看,你们肯定没有自己完成作业就来看谜底!
哼~T_T2.在Python看来:
'FishC'和'fishc'一样吗?
纷歧样,因为Python是一个“敏感的小女孩”,所以不要试图欺骗她,对Python来说,fishc和FishC是完全分歧的两个名字,所以编程的时候一定要把稳.不外Python会帮手解决可能因此呈现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过Python的变量是不用先声明的)才华在代码中使用,未赋值的标识符直接使用会招致运行时毛病,所以你很快就可以根据经验发现此问题.
3.在小甲鱼看来,Python中什么是最重要的?
你赞同吗?
缩进!
在小甲鱼看来,缩进是Python的灵魂,缩进的严格要求使得Python的代码显得非常精简而且有条理(小甲鱼阅读过很多年夜牛的代码,那个乱......C语言不是有国际乱码年夜赛嘛......).
所以在Python里看待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C语言里边括号打错了位置).
如果在正确的位置输入冒号“:
”,IDLE会自动将下一行缩进!
4.这节课的例子中呈现了“=”和“==”,他们暗示分歧的含义,你在编程的过程中会不小心把“==”误写成“=”吗?
有没有好的法子可以解决这个问题呢?
C语言的话,如果if(c==1)写成if(c=1),法式就完全不按法式员原本的目的去执行,但在Python这里,欠好意思,行欠亨,语法毛病!
Python不允许if条件中赋值,所以ifc=1:
会报错!
小甲鱼觉得这种做法可以非常有效的防止法式员因为打炮、熬夜等问题招致年夜意的BUG,而且这类BUG杀伤力都巨年夜!
5.你听说过“拼接”这个词吗?
在一些编程语言,我们可以将两个字符串“相加”在一起,如:
'I'+'Love'+'FishC'会获得'ILoveFishC',在Python里,这种做法叫做拼接字符串.
第3课
0.编写法式:
hello.py,要求用户输入姓名并打印“你好,姓名!
”
1.name=input("请输入您的姓名:
")
2.print('你好,'+name+'!
')
1.编写法式:
calc.py要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你年夜爷好丑”
1.temp=input("请输入1到100之间的数字:
")
2.num=int(temp)
3.if1<=num<=100:
4. print('你妹好漂亮^_^')
5.else:
6. print('你年夜爷好丑T_T')
5.如果非要在原始字符串结尾输入反斜杠,可以如何灵活处置?
1.>>>str=r'C:
\ProgramFiles\FishC\Good''\\'
第4课
测试题:
0.请问以下代码会打印几多次“我爱鱼C!
”
1.while'C':
2. print('我爱鱼C!
')
1.请问以下代码会打印几多次“我爱鱼C!
”
1.i=10
2.whilei:
3. print('我爱鱼C!
')
4. i=i-1
2.请写出与104.Python3中,一个语句可以分成多行书写吗?
5.请问Python的and把持符和C语言的&&把持符有何分歧?
【该题针对有C或C++基础的朋友】6.听说过“短路逻辑(short-circuitlogic)”吗?
动入手:
0.完善第二个改进要求(为用户提供三次机会检验考试,机会用完或者用户料中谜底均退出循环)并改进视频中小甲鱼的代码.1.检验考试写代码实现以下截图功能:
2.检验考试写代码实现以下截图功能:
3.请写下这一节课你学习到的内容:
格式不限,回忆并复述是加强记忆的好方式!
回复您的谜底即可检查参考谜底!
测试题谜底:
0.请问以下代码会打印几多次“我爱鱼C!
”
死循环,会一直打印“我爱鱼C!
”(嗯,这也算是永远支持鱼C的方法之一),直到解体或者用户按下快捷键CTRL+C(强制结束)
造成死循环的原因是while后边的条件永远为真(True),在Python看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!
):
FalseNone0""''()[]{}
其他一切都被解释为真!
无妨试试:
1.while'':
2. print('进入循环')
3.print('退出循环')
复制代码
或者
1.whileFalse:
2. print('进入循环')
3.print('退出循环')
复制代码
或者
1.while0:
2. print('进入循环')
3.print('退出循环')
复制代码
1.请问以下代码会打印几多次“我爱鱼C!
”
会打印10次.
2.请写出与10(103.Python3中,一行可以书写多个语句吗?
可以,语句之间用分号隔开即可,无妨试试:
>>>print('Ilovefishc');print('verymuch!
')
4.Python3中,一个语句可以分成多行书写吗?
可以,一行过长的语句可以使用反斜杠或者括号分解成几行,无妨试试:
1.>>>3>4and\
2. 1<2
复制代码
或者
1.>>>(3>4and
2. 1<2)
复制代码
5.【该题针对有C或C++基础的朋友】请问Python的and把持符和C语言的&&把持符有何分歧?
有图有真相(C\C++VSPython):
VS
6.听说过“短路逻辑(short-circuitlogic)”吗?
逻辑把持符有个有趣的特性:
在不需要求值的时候不进行把持.这么说可能比力“高深”,举个例子,表达式xandy,需要x和y两个变量同时为真(True)的时候,结果才为真.因此,如果当x变量得知是假(False)的时候,表达式就会立刻返回False,而不用去管y变量的值.
这种行为被称为短路逻辑(short-circuitlogic)或者惰性求值(lazyevaluation),这种行为同样也应用与or把持符,这个后边的课程小甲鱼会讲到,不急.
实际上,Python的做法是如果x为假,表达式会返回x的值(0),否则它就会返回y的值(例子参考楼上那题).
动入手谜底:
0.完善第二个改进要求(为用户提供三次机会检验考试,机会用完或者用户料中谜底均退出循环)并改进视频中小甲鱼的代码.
需要注意的处所在代码中已经注释!
1.importrandom
2.times=3
3.secret=random.randint(1,10)
4.print('------------------我爱鱼C工作室------------------')
5.#这里先给guess赋值(赋一个绝对不即是secret的值)
6.guess=0
7.#print()默认是打印完字符串会自动添加一个换行符,end=""参数告诉print()用空格取代换行
8.#嗯,小甲鱼觉得富有创意的你应该会检验考试用end="JJ"?
9.print("无妨猜一下小甲鱼现在心里想的是哪个数字:
",end="")
10.while(guess!
=secret)and(times>0):
11. temp=input()
12. guess=int(temp)
13. times=times-1#用户每输入一次,可用机会就-1
14. ifguess==secret:
15. print("我草,你是小甲鱼心里的蛔虫吗?
!
")
16. print("哼,料中了也没有奖励!
")
17. else:
18. ifguess>secret:
19. print("哥,年夜了年夜了~~~")
20. else:
21. print("嘿,小了,小了~~~")
22. iftimes>0:
23. print("再试一次吧:
",end="")
24. else:
25. print("机会用光咯T_T")
26.print("游戏结束,不玩啦^_^")
复制代码
1.检验考试写代码实现以下截图功能:
1.temp=input('请输入一个整数:
')
2.number=int(temp)
3.i=1
4.whilenumber:
5. print(i)
6. i=i+1
7. number=number-1
复制代码
2.检验考试写代码实现以下截图功能:
1.temp=input('请输入一个整数:
')
2.number=int(temp)
3.whilenumber:
4. i=number-1
5. whilei:
6. print('',end='')
7. i=i-1
8. j=number
9. whilej:
10. print('*',end='')
11. j=j-1
12. print()
13. number=number-1
复制代码
3.请写下这一节课你学习到的内容:
格式不限,回忆并复述是加强记忆的好方式!
小甲鱼希望你认真看待作业就像你希望小甲鱼推出高质量视频一样渴望^_^
第5课
测试题:
0.在Python中,int暗示整型,那你还记得bool、float和str分别暗示什么吗?
1.你知道为什么布尔类型(bool)的True和False分别用1和0来取代吗?
2.使用int()将小数转换为整数,结果是向上取整还是向下取整呢?
3.我们人类思维是习惯于“四舍五入”法,你有什么法子使得int()依照“四舍五入”的方式取整吗?
4.取得一个变量的类型,视频中介绍可以使用type()和isinstance(),你更倾向于使用哪个?
5.Python3可以给变量命名中文名,知道为什么吗?
6.【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
动入手:
0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:
当用户输入毛病类型的时候,及时提醒用户重新输入,防止法式解体.
如果你检验考试过以下做法,请举下小手:
1.temp=input("无妨猜一下小甲鱼现在心里想的是哪个数字:
")
2.#这种想法是因为type
(1)会返回,如果type(temp)返回结果一致说明输入是整数.
3.whiletype(temp)!
=type
(1):
4. print("抱愧,输入分歧法,",end='')
5. temp=input("请输入一个整数:
")
复制代码
或者可能这样:
1.temp=input("无妨猜一下小甲鱼现在心里想的是哪个数字:
")
2.#not把持符的作用是将布尔类型的结果翻转:
即取反的意思,notTrue==Flase
3.whilenotisinstance(temp,int):
4. print("抱愧,输入分歧法,",end='')
5. temp=input("请输入一个整数:
")
复制代码
以上方法的思路是正确的,不外似乎忽略了一点儿:
就是input()的返回值始终是字符串,所以type(temp)永远是!
其实有蛮多的做法可以实现的,不外就目前我们学习过的内容来看,还缺乏够.
所以,在让年夜家入手完成这道题之前,小甲鱼介绍一点新工具给年夜家!
s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回Ture,否则返回False.
s.isalpha() 所有字符都是字母,为真返回Ture,否则返回False.
s.isdigit() 所有字符都是数字,为真返回Ture,否则返回False.
s.islower() 所有字符都是小写,为真返回Ture,否则返回False.
s.isupper() 所有字符都是年夜写,为真返回Ture,否则返回False.
s.istitle() 所有单词都是首字母年夜写,为真返回Ture,否则返回False.
s.isspace() 所有字符都是空白字符,为真返回Ture,否则返回False.
例如:
>>>s='ILOVEFISHC'
>>>s.isupper()
>>>True
好了,文字教程就到这里,年夜家赶紧连成一气,改造我们的小游戏吧!
1.写一个法式,判断给定年份是否为闰年.(注意:
请使用已学过的BIF进行灵活运用)
这样界说闰年的:
能被4整除但不能被100整除,或者能被400整除都是闰年.
2.请写下这一节课你学习到的内容:
格式不限,回忆并复述是加强记忆的好方式!
测试题谜底:
0.在Python中,int暗示整型,那你还记得bool、float和str分别暗示什么吗?
bool暗示布尔类型
float暗示浮点型
str暗示字符串
1.你知道为什么布尔类型(bool)的True和False分别用1和0来取代吗?
你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终城市转换成简单的二进制序列给CPU依照一定的规则解析.
由于二进制只有两个数:
0和1,因此用0和1来暗示False和True再适合不外了,因为不用浪费资源在转换的过程上!
2.使用int()将小数转换为整数,结果是向上取整还是向下取整呢?
我们可爱的小甲鱼说了,小数取整会采纳比力暴力的截断方式,即向下取整.(注:
5.5向上取整为6,向下取整为5)
3.我们人类思维是习惯于“四舍五入”法,你有什么法子使得int()依照“四舍五入”的方式取整吗?
int()固然没那么“聪慧”,但机器是死的,鱼油是活的!
5.4“四舍五入”结果为:
5,int(5.4+0.5)==5
5.6“四舍五入”结果为:
6,int(5.6+0.5)==6
年夜家看明白了吗?
4.取得一个变量的类型,视频中介绍可以使用type()和isinstance(),你更倾向于使用哪个?
建议使用isinstance(),因为它的返回结果比力直接,另外type()其实并没有你想象的那么简单,我们后边会讲到.
5.Python3可以给变量命名中文名,知道为什么吗?
Pyhton3源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:
>>>小甲鱼='我爱你'
>>>print(小甲鱼)
>>>我爱你
6.【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
如果有不懂的问题,请在此处提问:
另外需要小甲鱼在视频讲解的方面做哪方面改进请回帖告之!
动入手谜底:
0.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:
当用户输入毛病类型的时候,及时提醒用户重新输入,防止法式解体.需要注意的处所在代码中已经注释!
1.importrandom
2.times=3
3.secret=random.randint(1,10)
4.print('------------------我爱鱼C工作室------------------')
5.guess=0
6.print("无妨猜一下小甲鱼现在心里想的是哪个数字:
",end="")
7.while(guess!
=secret)and(times>0):
8. temp=input()
9. whilenottemp.isdigit():
10. temp=input("抱愧,您的输入有误,请输入一个整数:
")
11. guess=int(temp)
12. times=times-1#用户每输入一次,可用机会就-1
13. ifguess==secret:
14. print("我草,你是小甲鱼心里的蛔虫吗?
!
")
15. print("哼,料中了也没有奖励!
")
16. else:
17. ifguess>secret:
18. print("哥,年夜了年夜了~~~")
19. else:
20. print("嘿,小了,小了~~~")
21. iftimes>0:
22. print("再试一次吧:
",end="")
23. else:
24. print("机会用光咯T_T")
25.print("游戏结束,不玩啦^_^")
复制代码
1.写一个法式,判断给定年份是否为闰年.
1.temp=input('请输入一个年份:
')
2.whilenottemp.isdigit():
3. temp=input("抱愧,您的输入有误,请输入一个整数:
")
4.year=int(temp)
5.ifyear/400==int(year/400):
6. print(temp+'是闰年!
')
7.else:
8. if(year/4==int(year/4))and(year/100!
=int(year/100)):
9.