CAICP-E · Python 编程基础
把做法装成工具
自己写函数,也会用现成的内置函数。
这一节要学会什么
#what食谱写一次,尺子人人用
#hook做蛋炒饭有一套步骤。你不会每次从零发明。 你会按食谱做。
函数就是程序里的食谱。写一次,用很多次。
教室里还有尺子、橡皮。谁都可以借。 不必每人自己削一把尺子。
内置函数就是公用文具。直接喊名字,带上括号。

如果觉得有点难 先写一个只 print 的打招呼函数。 再给它加一个名字参数。 内置函数一次只试一个。
如果已经会了 写出返回长方形面积的函数。 再用 max、min、sum、len 算一组数的平均。 工具箱里还有 abs、round、pow、range、sorted,见到能认就行。
def:把做法写在墙上
#explore-def同一段代码复制三遍,改一处就要改三处。容易漏。 所以装成工具。
定义用 def。后面写函数名和括号。
不要忘了冒号。里面的句子要缩进。
def say_hello():
print("你好")
say_hello()
say_hello()会打印两行你好。上面是定义。 下面两行是调用。调用就是按铃:把食谱拿出来做一遍。

函数名也用小写加下划线。和变量命名一样。
还没定义就调用,会报错。要先写 def,再调用。
只定义不调用,屏幕上什么都不会出现。食谱贴在墙上,不等于饭已经熟了。

无参函数:括号里是空的。它不需要额外材料。
greet:把名字递进去
#explore-arg括号里的名字叫参数。调用时把值放进去。
def greet(name):
print("你好,", name)
greet("小明")
greet("小红")name 是参数。它表示:这位朋友叫什么。
每次调用可以换人。

可以有多个参数。
def add_print(a, b):
print(a + b)
add_print(3, 5)会打印 8。先写的对第一个,后写的对第二个。
名字要能看懂。name、w、h 比 x1、x2 更清楚。
除非题目就那样写。
这节课的第一件小活:写出你的 greet。换三个同学的名字,各叫一次。
return:把面积送出来
#explore-returnprint 只是显示。外面拿不到这个值去做别的事。
要用 return 送出来。
def rectangle_area(w, h):
return w * h
a = rectangle_area(4, 3)
print(a)
print(rectangle_area(5, 2) * 2)rectangle_area(4, 3) 的结果是 12。可以放进 a。
也可以拿去再乘 2。

print 给眼睛看。return 给程序接着用。
return 一执行,函数就结束。后面的句子不会再跑。
def demo():
return 1
print("看不到我")调用后不会打印那句话。
没有 return 时,函数默认送回 None。意思是:没什么值。
所以要继续计算,就记得 return。
参数是进去的材料。返回值是出来的成品。
w 和 h 是宽和高。乘出来的面积,才是要送出的答案。
这节课的第二件小活:写出 rectangle_area。算 4×3,再算 6×5。
把两次结果加起来。
现成工具箱:先用四个帮手
#explore-toolbox自己做的函数要 def。下面这些不用。
Python 已经做好了。

先把这四个用在成绩单上。
min 找最小,max 找最大。
print(min(3, 9, 2))
print(max([3, 9, 2]))最小 2,最大 9。可以直接写几个数,也可以放进列表。
sum 求和。len 数个数。
列表、字符串都能用 len。
nums = [3, 9, 2, 7]
print(sum(nums))
print(len(nums))
print(len("你好"))总和 21,个数 4。「你好」有 2 个字。
这些函数都要加括号。括号里放材料。
材料的意义要想清楚:
len 问长度,sum 问总和。

工具箱里还有,先认一认,不必全写一遍:
abs去掉负号,abs(-5)是 5round四舍五入,round(3.6)是 4pow乘方,pow(2, 3)是 8range排出一串整数,循环里用过sorted另给一份排好的列表

给一组分数做统计
#explore-stats把工具箱用在成绩单上。
scores = [90, 80, 70, 100]
print(min(scores), max(scores))
print(sum(scores), len(scores))最低 70,最高 100。总和 340,人数 4。

平均数自己组合:
avg = sum(scores) / len(scores)
print(round(avg, 1))先求和,再除以个数。再 round 到一位小数。
这里是 85.0。
round 就在工具箱里。统计时用得上,先这样跟一遍。

自己的工具和现成的工具,可以一起用。先进去什么,再出来什么,想清楚就行。
这节课我学会了
#review记住这些:
def定义,名字后加括号和冒号。- 调用:写出名字和括号。只定义不调用,不会自己跑。
- 参数是进去的材料。
return把结果送出来。 - 内置函数不用自己
def。会用minmaxsumlen。 - 平均数:
sum除以len,再用round。 - 工具箱里还有
absroundpowrangesorted,见到能认就行。
试着在心里跑一遍:
def greet(name):
print("你好,", name)
greet("小派")
print(min(3, 9, 2))会印出招呼,再印出 2。
下一课才学找东西和修 bug。先把工具装好、借好。
试一试
#evaluate看完就来检查一下。选错了也可以再想。
单选题
调用几次
定义 greet(name) 里有一句 print。连续写两行 greet(「小明」) 和 greet(「小红」)。屏幕上几行招呼?
单选题
return 的面积
def rectangle_area(w, h): return w * h。执行 x = rectangle_area(4, 3) 后,x 是?
单选题
求和与个数
nums = [1, 2, 3]。sum(nums) 和 len(nums) 分别是?
多选题
函数和内置帮手
下列说法正确的有哪些?可以多选。
可多选
未登录时不会保存学习进度