1、第一节课 0. Python 是什么类型的语言? Python 是脚本语言 脚本语言 (Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C 语言、 C+语言 或 Java 之类的系统编程语言要简单容易。 也让脚本语言另有一些属于脚本语言的特性: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的 “解释 ”作为运行方式,而不需要 “编译 ” 程序 的开发产能优于运行性能 一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个
2、 Shell 脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。 1. IDLE 是什么? IDLE 是一个 Python Shell, shell 的意思就是 “外壳 ”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们 Windows 那个 cmd 窗口,像 Linux 那个黑乎乎的命令窗口,他们都是 shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用 IDLE 这个 shell 与
3、 Python 进行互动。 2. 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的系列教程准备中,小甲鱼发觉
5、 Python3 中的新特性确实很妙,很值得进行深入学习!你也不用 担心,如果你了解了 Python3, Python2 的代码阅读对于你来说根本不成问题! 第二节课 0. 什么是 BIF? BIF 就是 Built-in Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!), Python 提供了非常丰富的内置函数,我们只需要直接调用即可,例如 print() 的功能是 “打印到屏幕 ”, input() 的作用是接收用户输入(注: Python3 用 input() 取代了 Python2 的 raw_input(),用法如有不懂请看视 频讲解)。 太
6、多 BIF 学不过来怎么办?看不懂英文说明怎么办? Python3 的资料太少怎么办?没事,有了小甲鱼,妈妈再也不用担心我的学习了! 1. 用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF? 在 Python 或 IDLE 中,输入 dir(_builtins_) 可以看到 Python 提供的内置方法列表(注意, builtins 前后是两个下划线哦)其中小写的就是 BIF。如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),就会得到这个 BIF 的功能描述。哦,答案应该是 68 个,不信你自己数数看,你们肯定没有自
7、己完成作业就来看答案!哼 T_T 2. 在 Python 看来: FishC 和 fishc 一样吗? 不一样,因为 Python 是一个 “敏感的小女孩 ”,所以不要试图欺骗她,对 Python 来说, fishc 和 FishC 是完全不同的两个名字,所以编程的时候一定要当心。不过 Python 会帮助解决可能因此出现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过 Python 的变量是不用先声明的)才能在代码中使用,未赋值的标识符直接使用会导致运行时错误,所以你很快就可以根据经验发现此问题。 3. 在小甲鱼看来, Python 中什么是最重要的?你赞同吗? 缩进!在小甲
8、鱼看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(小甲鱼阅读过很多大牛的代码,那个乱 .C 语言不是有国际乱码大赛嘛 .)。 所以在 Python 里对待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像 C 语 言里边括号打错了位置)。 如果在正确的位置输入冒号 “:”, IDLE 会自动将下一行缩进! 4. 这节课的例子中出现了 “=”和 “=”,他们表示不同的含义,你在编程的过程中会不小心把 “=”误写成 “=”吗?有没有好的办法可以解决这个问题呢? C 语言的话,如果 if( c = 1 ) 写成 if
9、( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,语法错误! Python 不允许 if 条件中赋值 ,所以 if c = 1: 会报错! 小甲鱼觉得这种做法可 以非常有效的防止程序员因为打炮、熬夜等问题导致粗心的 BUG ,并且这类 BUG 杀伤力都巨大! 5. 你听说过 “拼接 ”这个词吗? 在一些编程语言,我们可以将两个字符串 “相加 ”在一起,如: I + Love + FishC 会得到 ILoveFishC,在 Python 里,这种做法叫做拼接字符串。 0. 编写程序: hello.py,要求用户输入姓名并打印 “你好,姓名!
10、” 1. name = input(“请输入您的姓名: “) 2. print(你好, + name + !) 复制代码 1. 编写程序: calc.py 要求用户输入 1到 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
11、!) 复制代码 1. 请问以下代码会打印多少次 “我爱鱼 C! ” 1. i = 10 2. while i: 3. print(我爱鱼 C!) 4. i = i - 1 复制代码 2. 请写出与 10 ,如果 type(temp)返回结果一致说明输入是整数。 3. while type(temp) != type(1): 4. print(“抱歉,输入不合法, “, end=) 5. temp = input(“请输入一个整数: “) 复制代码 或者可能这样: 1. temp = input(“不妨猜一下小甲鱼现在心里想的是哪个数字: “) 2. # not 操作符的作用是将布尔类型的结果翻
12、转:即取反的意思, not True = Flase 3. while not isinstance(temp, int): 4. print(“抱歉,输入不合法, “, end=) 5. temp = input(“请输入一个整数: “) 复制代码 以上方法的思路是正确的,不过似乎忽略了一点儿:就是 input()的返回值始终是字符串,所以 type(temp)永远是 ! 其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。 所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家! s为字符串 s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则
13、返回 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 = I LOVE FISHC s.isup
14、per() True 好了, 文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧! 1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用) 这样定义闰年的 :能被 4整除但不能被 100 整除 ,或者能被 400 整除都是闰年。 2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! 测试题答案: 本帖隐藏的内容 0. 在 Python 中, int 表示整型,那你还记得 bool、 float 和 str 分别表示什么吗? bool 表示布尔类型 float 表示浮点型 str 表示字符串 1. 你知道为什么布尔类型 (bool)的
15、 True 和 False 分别用 1 和 0 来代替吗? 你可能听说过计算机是很 “ 笨 ” 的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给 CPU 按照一定的规则解析。 由于二进制只有两个数: 0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上! 2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢? 我们可爱的小甲鱼说了,小数取整 会采用比较暴力的截断方式,即向下取整。(注:5.5 向上取整为 6,向下取整为 5) 3. 我们人类思维是习惯于 “ 四舍五入 ” 法,你有什
16、么办法使得 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 可以给变量命名中文名,知道为什么吗?
17、 Pyhton3 源码文件默认使用 utf-8 编码(支持中文),这就使得以下代码是合法的: 小甲鱼 = 我爱你 print(小甲鱼 ) 我爱你 6. 【该题针对零基础的鱼油】你觉得这个系列教学有难度吗? 如果有不懂的问题,请在此处提问: http:/ 另外需要小甲鱼在视频讲解的方面做哪方面改进请回帖告之! 动动手答案: 本帖隐藏的内容 0. 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。 需要注意的地方在代码中已经注释! 1. import random 2. times = 3 3. secret = random.ran
18、dint(1,10) 4. print(-我爱鱼 C 工作室 -) 5. guess = 0 6. 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 # 用户每输入一次,可用机会就 -1 13. if guess = sec
19、ret: 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 = input(请输入一个年份:
20、 ) 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. 尝试写代码实现以下截图功能: