收藏 分享(赏)

鱼c小甲鱼零基础学python全套资料~课后题~.doc

上传人:还是太帅 文档编号:9185984 上传时间:2019-07-28 格式:DOC 页数:227 大小:8.06MB
下载 相关 举报
鱼c小甲鱼零基础学python全套资料~课后题~.doc_第1页
第1页 / 共227页
鱼c小甲鱼零基础学python全套资料~课后题~.doc_第2页
第2页 / 共227页
鱼c小甲鱼零基础学python全套资料~课后题~.doc_第3页
第3页 / 共227页
鱼c小甲鱼零基础学python全套资料~课后题~.doc_第4页
第4页 / 共227页
鱼c小甲鱼零基础学python全套资料~课后题~.doc_第5页
第5页 / 共227页
点击查看更多>>
资源描述

1、第一节课0. Python 是什么类型的语言?Python 是脚本语言脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C 语言、C+语言 或 Java 之类的系统编程语言要简单容易。也让脚本语言另有一些属于脚本语言的特性: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的“解释” 作为运行方式,而不需要 “编译” 程序的开发产能优于运行性能一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个 Shell 脚本主

2、要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。1. IDLE 是什么?IDLE 是一个 Python Shell,shell 的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们 Windows 那个 cmd 窗口,像 Linux 那个黑乎乎的命令窗口,他们都是 shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用 IDLE 这个 shell 与 Python 进行互动。2.

3、 print() 的作用是什么?print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是 IDLE shell窗口)。3. Python 中表示乘法的符号是什么?Python 中的乘号是*(星号)。4. 为什么 print(I love * 5) 可以正常执行,但 print(I love + 5) 却报错?在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,print(I love + 5) 才会报错。这就像是在说“五只小甲鱼加上苍井空会是多少?”一样没有多大意义,结果可能是五,可能是六,也可能是八!不过乘以一个整数来翻倍就具有一定的意义了

4、,前边的例子就是将 “I love “ 这个字符串打印五次。5. 如果我需要在一个字符串中嵌入一个双引号,正确的做法是?你有两个选择:可以利用反斜杠()对双引号转义:“,或者用单引号引起这个字符串。例如: I l“o“ve 。6. 为什么我们要使用 Python3?Python2 到底有什么问题?看起来很多程序员依然都在使用 Python2?确实还有相当多的程序员在使用 Python2,不过 Python3 才是 Python 发展的未来,就像 XP 和 WIN7 一样。在零基础入门学习 Python的系列教程准备中,小甲鱼发觉 Python3 中的新特性确实很妙,很值得进行深入学习!你也不

5、用担心,如果你了解了 Python3,Python2 的代码阅读对于你来说根本不成问题! 第二节课0. 什么是 BIF?BIF 就是 Built-in Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!),Python 提供了非常丰富的内置函数,我们只需要直接调用即可,例如 print() 的功能是 “打印到屏幕”,input() 的作用是接收用户输入(注:Python3 用 input() 取代了 Python2 的 raw_input(),用法如有不懂请看视频讲解)。太多 BIF 学不过来怎么办?看不懂英文说明怎么办?Python3 的资料太少怎么办?

6、没事,有了小甲鱼,妈妈再也不用担心我的学习了!1. 用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF?在 Python 或 IDLE 中,输入 dir(_builtins_) 可以看到 Python 提供的内置方法列表(注意,builtins 前后是两个下划线哦)其中小写的就是 BIF。如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),就会得到这个 BIF 的功能描述。哦,答案应该是 68 个,不信你自己数数看,你们肯定没有自己完成作业就来看答案!哼 T_T2. 在 Python 看来:FishC 和 fishc 一

7、样吗?不一样,因为 Python 是一个“ 敏感的小女孩”,所以不要试图欺骗她,对 Python 来说,fishc 和 FishC 是完全不同的两个名字,所以编程的时候一定要当心。不过 Python 会帮助解决可能因此出现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过 Python 的变量是不用先声明的)才能在代码中使用,未赋值的标识符直接使用会导致运行时错误,所以你很快就可以根据经验发现此问题。3. 在小甲鱼看来,Python 中什么是最重要的?你赞同吗?缩进!在小甲鱼看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(小甲鱼

8、阅读过很多大牛的代码,那个乱C语言不是有国际乱码大赛嘛)。所以在 Python 里对待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像 C 语言里边括号打错了位置)。如果在正确的位置输入冒号“:”,IDLE 会自动将下一行缩进!4. 这节课的例子中出现了“=”和“=”,他们表示不同的含义,你在编程的过程中会不小心把“=” 误写成“=” 吗?有没有好的办法可以解决这个问题呢?C 语言的话,如果 if( c = 1 ) 写成 if( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,语法错误!Python 不允许 i

9、f 条件中赋值,所以 if c = 1: 会报错!小甲鱼觉得这种做法可以非常有效的防止程序员因为打炮、熬夜等问题导致粗心的 BUG ,并且这类 BUG 杀伤力都巨大!5. 你听说过“拼接”这个词吗?在一些编程语言,我们可以将两个字符串“相加” 在一起,如: I + Love + FishC 会得到 ILoveFishC,在 Python 里,这种做法叫做拼接字符串。0. 编写程序:hello.py,要求用户输入姓名并打印“你好,姓名!”1. name = input(“请输入您的姓名:“)2. print(你好, + name + !)复制代码1. 编写程序:calc.py 要求用户输入 1

10、到 100 之间数字并判断,输入符合要求打印“你妹好漂亮” ,不符合要求则打印“你大爷好丑”1. temp = input(“请输入 1 到 100 之间的数字:“)2. num = int(temp)3. if 1 str = rC:Program FilesFishCGood复制代码第四课测试题:0. 请问以下代码会打印多少次“我爱鱼 C!”1. while C:2. print(我爱鱼 C!)复制代码1. 请问以下代码会打印多少次“我爱鱼 C!”1. i = 102. while i:3. print(我爱鱼 C!)4. i = i - 1复制代码2. 请写出与 10 ,如果 type(

11、temp)返回结果一致说明输入是整数。3. while type(temp) != type(1):4. print(“抱歉,输入不合法,“, end=)5. temp = input(“请输入一个整数:“)复制代码或者可能这样:1. temp = input(“不妨猜一下小甲鱼现在心里想的是哪个数字:“)2. # not 操作符的作用是将布尔类型的结果翻转:即取反的意思,not True = Flase3. while not isinstance(temp, int):4. print(“抱歉,输入不合法,“, end=)5. temp = input(“请输入一个整数:“)复制代码以上方

12、法的思路是正确的,不过似乎忽略了一点儿:就是 input()的返回值始终是字符串,所以 type(temp)永远是! 其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!s 为字符串s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。s.islower() 所有字符都是小写,为真返回 Ture,否则返回 Fal

13、se。s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。例如: s = I LOVE FISHC s.isupper() True好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)这样定义闰年的:能被 4 整除但不能被 100 整除,或者能被 400 整除都是闰年。2. 请写下这一节课你

14、学习到的内容:格式不限,回忆并复述是加强记忆的好方式!测试题答案:本帖隐藏的内容0. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?bool 表示布尔类型float 表示浮点型str 表示字符串1. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给 CPU 按照一定的规则解析。由于二进制只有两个数:0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不

15、用浪费资源在转换的过程上!2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?我们可爱的小甲鱼说了,小数取整会采用比较暴力的截断方式,即向下取整。(注:5.5 向上取整为 6,向下取整为 5)3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?int() 固然没那么“聪明”,但机器是死的,鱼油是活的!5.4 “四舍五入”结果为:5,int(5.4+0.5) = 55.6 “四舍五入”结果为:6,int(5.6+0.5) = 6大家看明白了吗?4. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance

16、(),你更倾向于使用哪个?建议使用 isinstance(),因为它的返回结果比较直接,另外 type() 其实并没有你想象的那么简单,我们后边会讲到。5. Python3 可以给变量命名中文名,知道为什么吗?Pyhton3 源码文件默认使用 utf-8 编码(支持中文),这就使得以下代码是合法的: 小甲鱼 = 我爱你 print(小甲鱼) 我爱你6. 【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?如果有不懂的问题,请在此处提问:http:/ 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。需要注意的地方在代码中已经注释!

17、1. import random2. times = 33. secret = random.randint(1,10)4. print(-我爱鱼 C 工作室-)5. guess = 06. print(“不妨猜一下小甲鱼现在心里想的是哪个数字:“, end=“ “)7. while (guess != secret) and (times 0):8. temp = input()9. while not temp.isdigit():10. temp = input(“抱歉,您的输入有误,请输入一个整数:“)11. guess = int(temp)12. times = times - 1

18、 # 用户每输入一次,可用机会就-113. if guess = secret:14. print(“我草,你是小甲鱼心里的蛔虫吗?! “)15. print(“哼,猜中了也没有奖励! “)16. else:17. if guess secret:18. print(“哥,大了大了“)19. else:20. print(“嘿,小了,小了“)21. if times 0:22. print(“再试一次吧:“, end=“ “)23. else:24. print(“机会用光咯 T_T“)25. print(“游戏结束,不玩啦_“)复制代码1. 写一个程序,判断给定年份是否为闰年。1. temp

19、 = input(请输入一个年份:)2. while not temp.isdigit():3. temp = input(“抱歉,您的输入有误,请输入一个整数: “)4.5. year = int(temp)6. if year/400 = int(year/400):7. print(temp + 是闰年! )8. else:9. if (year/4 = int(year/4) and (year/100 != int(year/100):10. print(temp + 是闰年!)11. else:12. print(temp + 不是闰年!)复制代码2. 尝试写代码实现以下截图功能:

20、3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!回复您的答案即可查看参考答案!测试题答案:本帖隐藏的内容0. 请问以下代码会打印多少次“ 我爱鱼 C!”死循环,会一直打印“我爱鱼 C!” (嗯,这也算是永远支持鱼 C 的方法之一),直到崩溃或者用户按下快捷键 CTRL + C(强制结束)造成死循环的原因是 while 后边的条件永远为真(True),在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False None 0 “ () 其他一切都被解释为真!不妨试试:1. while :2. print(进入循环)3. pr

21、int(退出循环)复制代码或者1. while Flase:2. print(进入循环)3. print(退出循环)复制代码或者1. while 0:2. print(进入循环)3. print(退出循环) 复制代码1. 请问以下代码会打印多少次“ 我爱鱼 C!”会打印 10 次。2. 请写出与 10 print(I love fishc);print(very much!)4. Python3 中,一个语句可以分成多行书写吗?可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:1. 3 4 and 2. 1 ( 3 4 and 2. 1 0):11. temp = input()

22、12. guess = int(temp)13. times = times - 1 # 用户每输入一次,可用机会就-114. if guess = secret:15. print(“我草,你是小甲鱼心里的蛔虫吗?! “)16. print(“哼,猜中了也没有奖励! “)17. else:18. if guess secret:19. print(“哥,大了大了“)20. else:21. print(“嘿,小了,小了“)22. if times 0:23. print(“再试一次吧:“, end=“ “)24. else:25. print(“机会用光咯 T_T“)26. print(“游

23、戏结束,不玩啦_“)复制代码1. 尝试写代码实现以下截图功能:1. temp = input(请输入一个整数:)2. number = int(temp)3. i = 14. while number:5. print(i)6. i = i + 17. number = number - 1复制代码2. 尝试写代码实现以下截图功能:1. temp = input(请输入一个整数:)2. number = int(temp)3. while number:4. i = number - 15. while i:6. print( , end = )7. i = i - 18. j = numbe

24、r9. while j:10. print(*, end = )11. j = j - 112. print()13. number = number - 1复制代码第六课测试题:0. Python 的 floor 除法现在使用 “/” 实现,那 3.0 / 2.0 您目测会显示什么内容呢?1. a and or我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)= 0 or 0 or 4 or 6 or 9= 4为啥是 4?大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 =

25、4,而 3 or 4 = 3。所以答案是:4温馨提示:为了更好的表达你的程序,小甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你一样都将优先级烂透于心的。5. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 = int(year/400)”这样的方式来“委曲求全”。动动手答案:本帖隐藏的内容0. 请写一个程序打印出 0100 所有的奇数。1. i = 02. while i = 100:1. assert 的作用是什么?assert

26、 这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出 AssertionError 的异常。什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。一般来说我们可以用 Ta 再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert 关键字就非常有用了。2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?x, y, z = z, y, x3. 猜猜 (x name = 小甲鱼2. 鱼 in na

27、me3. True4. 肥鱼 in name5. False复制代码当下节课我们讲解 for 语句的时候,你看到 in 会不会就有了更深入的理解?!动动手答案:本帖隐藏的内容0. 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 7080 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。1. score = int(input(请输入一个分数: )2. if 80 score = 60:3. print(C)4. elif 90 score = 80:5. print

28、(B)6. elif 60 score = 0:7. print(D)8. elif 100 = score = 90:9. print(A)10. else:11. print(输入错误!)复制代码1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟 C 语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。1. small = x if (x y and x z) else (y if y z else z)复制代码第九课0. 下面的循环会打印多少次“I Love FishC“?1. for

29、i in range(0, 10, 2):2. print(I Love FishC)复制代码1. 下面的循环会打印多少次“I Love FishC“?1. for i in 5:2. print(I Love FishC)复制代码2. 回顾一下 break 和 continue 在循环中起到的作用?3. 请谈下你对列表的理解?4. 请问 range(10) 生成哪些数?5. 目测以下程序会打印什么?1. while True:2. while True:3. break4. print(1)5. print(2)6. break7. print(3)复制代码6. 什么情况下我们要使循环永远为

30、真?7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用 while)?1. i = 02. string = ILoveFishC.com3. while i len(string):4. print(i)5. i += 1复制代码动动手:细节决定成败,看答案前记得自己先敲代码!0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含“*“ 则不计算在内。程序演示如图:1. 编写一个程序,求 100999 之间的所有水仙花数。如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 13 + 53

31、+ 33,因此 153 就是一个水仙花数。2. 三色球问题有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!回复您的答案即可查看参考答案!测试题答案:本帖隐藏的内容0. 下面的循环会打印多少次“I Love FishC“?1. for i in range(0, 10, 2):2. print(I Love FishC)复制代码5 次,因为从 0 开始,到 10 结束,步进为 2。1. 下面的循环会打印多少

32、次“I Love FishC“?1. for i in 5:2. print(I Love FishC)复制代码会报错,上节课的课后习题我们提到了 in 是“成员资格运算符”,而不是像 C 语言那样去使用 for 语法。Python 的 for 更像脚本语言的 foreach。2. 回顾一下 break 和 continue 在循环中起到的作用break 语句的作用是终止当前循环,跳出循环体。continue 语句的作用是终止本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。3. 请谈下你对列表的理解嗯,有些知识点需要自己总结才能加固,下节课小甲鱼将跟大家畅谈

33、一个打了激素的数组:列表,不容错过哦_4. 请问 range(10) 生成哪些数?会生成 range(0, 10),list(range(0, 10) 转换成列表是:0, 1, 2, 3, 4, 5, 6, 7, 8, 9,注意不包含 10 哦。5. 目测以下程序会打印什么?1. while True:2. while True:3. break4. print(1)5. print(2)6. break7. print(3)复制代码会打印:23因为 break 只能跳出一层循环,记住咯!6. 什么情况下我们要使循环永远为真?while Ture:循环体同样用于游戏实现,因为游戏只要运行着,就

34、需要时刻接收用户输入,因此使用永远为真确保游戏“在线 ”。操作系统也是同样的道理,时刻待命,操作系统永远为真的这个循环叫做消息循环。另外,许多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的。所以永远为“真”虽然是“ 死循环” ,但不一定是坏事,再说了,我们可以随时用 break 来跳出循环!7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用 while)?1. i = 02. string = ILoveFishC.com3. while i len(string):4. print(i)5. i += 1复制代码这段代码之所以“效率比较低

35、”是因为每次循环都需要调用一次 len() 函数(我们还没有学到函数的概念,小甲鱼这里为零基础的朋友形象的解释下:就像你打游戏打得正 HIGH 的时候,老妈让你去买盐你有两种选择,一次买一包,一天去买五次,或者一次性买五包回来,老妈要就直接给她。)1. i = 02. string = ILoveFishC.com3. length = len(string)4. while i length:5. print(i)6. i += 1 复制代码小甲鱼希望学习咱的课程的朋友不是只为了可以把程序写出来,而是追求把代码写好,写漂亮,做一个有理想、有追求的程序猿!动动手答案:本帖隐藏的内容0. 设计一

36、个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含“*“ 则不计算在内。1. count = 32. password = FishC.com3.4. while count:5. passwd = input(请输入密码:)6. if passwd = password:7. print(密码正确,进入程序)8. break9. elif * in passwd:10. print(密码中不能含有 “*“号!您还有, count, 次机会!, end= )11. continue12. else:13. print(密码输入错误!您还有 , count-1, 次机会!

37、, end= ) 14. count -= 1复制代码1. 编写一个程序,求 100999 之间的所有水仙花数。如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 13 + 53 + 33,因此 153 就是一个水仙花数1. for i in range(100, 1000):2. sum = 03. temp = i4. while temp:5. sum = sum + (temp%10) * 36. temp /= 10 # 注意这里要使用地板除哦 7. if sum = i:8. print(i)复制代码2. 三色球问题有红、黄、蓝三种颜色的求,其中红球

38、3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。1. print(redtyellowtblue)2. for red in range(0, 4):3. for yellow in range(0, 4):4. for green in range(2, 7):5. if red + yellow + green = 8:6. # 注意,下边不是字符串拼接,因此不用“+”哦7. print(red, t, yellow, t, green)复制代码注释:range(2, 7) 是产生2, 3, 4, 5, 65 个数,绿球不能是 1 个,因为如果绿球是 1 个的话,红球 + 黄球需要有 7 个才能符合题意,而红球和黄球每种只有 3 个,因此是 range(2, 7)第十课测试题:0. 列表都可以存放一些什么东西?1. 向列表增加元素有哪些方法?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报