第 4 课 计算的本质
上次的课后作业
注:如果你不理解视频里的内容,不要反复观看试图理解,不懂的先去群里问,或者去看答案,重要的是去练习,我们不能从概念到概念,而是应该从实践(解决问题),然后再结合理论知识。
只有实践的经验才会转换为你的编程能力。
-
程序要满足:输入分数 x (0 < x < 100),程序输出分数对应的等级:x < 60 不及格,60 < x < 80 及格,80 < x < 90 良好,90 < x < 100 优秀。
scope = float(input("the scope euquals to ")) if scope < 60: print("不及格") elif 60 <= scope < 80: print("及格") elif 80 <= scope < 90: print("良好") elif 90 <= scope <= 100: print("优秀")
-
程序要满足:首先输入一个整数 n ,然后程序连续接受输入 n 个数字,最终程序输出 n 个数字的平均值。
n = int(input("n = ")) total = 0.0 for i in range(n): total += float(input()) print("the average value is {0}".format(total / n))
-
class Solution(object): def reverseLeftWords(self, s, n): """ :type s: str :type n: int :rtype: str """ # s n return s[n:] + s[0:n]
-
class Solution: def runningSum(self, nums): """ :type nums: List[int] :rtype: List[int] """ if nums is None: return [] for i in range(1, len(nums)): nums[i] = nums[i] + nums[i-1] return nums
课程纲要
计算的本质:符号、模型、数黄瓜的故事。
-
现实:左边4根黄瓜,右边2根黄瓜
-
符号:
- 4 + 2
- 四 加 二
- 肆 加 贰
- 叽里 哼哈 呱啦
-
模型:10 根手指、画“正”字、算盘…… (可操作模型)
-
计算图模型:更加本质的模型。加法器:具体怎么计算我们并不关心。
-
表达式:(2 + 4) * 3
-
数字
是表达式;递归 -
表达式
+
表达式
。两个表达式相加是表达式; -
表达式
-
表达式
。两个表达式相减是表达式; -
表达式
*
表达式
。两个表达式相乘是表达式; -
表达式
/
表达式
。两个表达式相除是表达式;
(即构成
表达式
运算符
表达式
的顺序的式子是表达式)-
图示
-
验证 (2 + 4) * 3 是表达式
-
变量与赋值
-
表达式
(2 + 4) * 7 + ((12 - 3) * 6) / 2
过于复杂; -
用名字代表中间的过程,例如:爸爸的妹妹的老公,叫做「姑丈」;
-
a = (2 + 4)
原式 =a * 3
-
-
函数:
t -> 2*t
-
参数和变量
-
函数:有名字的运算过程
a = 2 + 4
f = t -> t * 2
f(t) = t * 2
-
函数调用
f(2)
-
分支
t -> if (t < 22) { "hotpot" } else { "ice cream" }
-
变量的类型,不同的符号有不同的用途
- 4 + 2 ( 数字 )
- 四 加 二 、肆 加 贰 、兔子、鸡、abc、21411 (字符串)
- 是,否 (布尔型)
-
抽象:屏蔽具体的细节和步骤,只考虑输入和输出。例如:出租车司机的案例、圆的面积公式 pi*r^2。
-
注:本篇文章的内容大部分来源于 https://www.yinwang.org/blog-cn/2018/04/13/computer-science