第 4 课 计算的本质

第 4 课 计算的本质

上次的课后作业

:如果你不理解视频里的内容,不要反复观看试图理解,不懂的先去群里问,或者去看答案,重要的是去练习,我们不能从概念到概念,而是应该从实践(解决问题),然后再结合理论知识。

只有实践的经验才会转换为你的编程能力。

  1. 程序要满足:输入分数 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("优秀")
  2. 程序要满足:首先输入一个整数 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))
  3. 左旋转字符串

    class Solution(object):
       def reverseLeftWords(self, s, n):
           """
           :type s: str
           :type n: int
           :rtype: str
           """
           # s n
           return s[n:] + s[0:n]
  4. 一维数组的动态和

    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 根手指、画“正”字、算盘…… (可操作模型)

  • 计算图模型:更加本质的模型。加法器:具体怎么计算我们并不关心。函数1

  • 表达式:(2 + 4) * 3 函数2

    • 数字是表达式;递归

    • 表达式 + 表达式。两个表达式相加是表达式;

    • 表达式 - 表达式。两个表达式相减是表达式;

    • 表达式 * 表达式。两个表达式相乘是表达式;

    • 表达式 / 表达式。两个表达式相除是表达式;

    (即构成表达式 运算符 表达式 的顺序的式子是表达式)

    • 图示 表达式

    • 验证 (2 + 4) * 3 是表达式

    • 变量与赋值

    • 表达式 (2 + 4) * 7 + ((12 - 3) * 6) / 2 过于复杂;

    • 用名字代表中间的过程,例如:爸爸的妹妹的老公,叫做「姑丈」;

    • a = (2 + 4) 原式 = a * 3

  • 函数:t -> 2*t

    function1

    function2 (1)

  • 参数和变量

    变量

  • 函数:有名字的运算过程

    a = 2 + 4

    f = t -> t * 2

    f(t) = t * 2

  • 函数调用 f(2)

  • 分支

    branch

    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

订阅评论
提醒
guest
1 评论
最旧
最新 最多投票
内联反馈
查看所有评论
trackback

[…] | 博客 | […]