鱼C《零基础入门学习Python》1—9节课时知识点总结

0. Python 是什么类型的语言?

答:脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C语言、C++语言 或 Java 之类的系统编程语言要简单容易。

也让脚本语言另有一些属于脚本语言的特性:

  • 语法和结构通常比较简单
  • 学习和使用通常比较简单
  • 通常以容易修改程序的“解释”作为运行方式,而不需要“编译”
  • 程序的开发产能优于运行性能

一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。

1. 如果我需要在一个字符串中嵌入一个双引号,正确的做法是?

答:你有两个选择:可以利用反斜杠(\)对双引号转义:\",或者用单引号引起这个字符串。例如:' I l"o"ve fishc.com ',或者"I l\"o\"ve fishc.com".

第二节:用Python设计的第一个游戏

1.看python3中提供了多少内置函数BIF?

答:在 Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供的内置方法列表(注意,builtins 前后是两个下划线哦)其中小写的就是 BIF。如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),就会得到这个 BIF 的功能描述。哦,答案应该是 68 个。

2. 你听说过“拼接”这个词吗?

答:在一些编程语言,我们可以将两个字符串“相加”在一起,如:'I' + 'Love' + 'FishC' 会得到 'ILoveFishC',在 Python 里,这种做法叫做拼接字符串。

第三节:插曲之变量与字符串

1.Python中变量命名不能以数字开头

2.去变量名时不要与Python中的内联函数名相同

第四节:改进我们的小游戏

1.在Python中一行打印多个语句

答:语句之间用分号隔开即可,不妨试试:

>>> print('I love fishc');print('very much!')

2. Python3 中,一个语句分成多行书写

答:一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:

1 < 2

或者

1 < 2 )

3.请问Python的 and 操作符 和C语言的 && 操作符 有何不同?

答:在c中,0&&3 = 0,1&&3 = 1在python中,,0 and 3 = 0,1 and 3 = 3!

4.“短路逻辑(short-circuit logic)”

答:逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。

这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。

实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。



第五节:Python的数据类型

1.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

答:

5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5

5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6

2.一些扩展

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。

第六节:Python之常用操作符

1.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

答案是:4

not or and 的优先级是不同的:not > 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 == 4,而 3 or 4 == 3。

所以答案是:4

2.// 是地板除, Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 ?

答案是:1.0,而3.0/2.0是1.5!

第七、八节:了不起的分支结构和循环

0、assert 的作用是什么?

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。

什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。

一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

1. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

x, y, z = z, y, x

2. 你听说过成员资格运算符吗?

Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。

3.Python支持a<b<c,相当于a<b and b<c(与C语言不同)

第九节:了不起的分支和循环

1.range(起始值,终止值+1,步长)

请问 range(10) 生成哪些数?

会生成 range(0, 10),list(range(0, 10)) 转换成列表是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],注意不包含 10 哦。

2.回顾一下 break 和 continue 在循环中起到的作用

break语句的作用是终止当前循环,跳出循环体,break之跳出一层循环

eg:while True:

while True:

break

print(1)

print(2)

break

print(3)会打印:

2

3continue语句的作用是终止本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。

3. 编写一个程序,求 100~999 之间的所有水仙花数。

for i in range(100, 1000):

sum = 0

temp = i

while temp:

sum = sum + (temp%10) ** 3

temp //= 10 # 注意这里要使用地板除哦~

if sum == i:

print(i)点评:得学会这种取一个多位数的每位上数字的方法!4.'\t'是两个字符间空出一个Tab的距离,功能类似于Tab

4.当要求输入的文字与输入变量的语句分开执行时,可以在print中加end = " ",是输入值紧跟文字

eg:

print("请输入一个数字:",end = " ")

temp = input()

输入3

结果:请输入一个数字:3