第二课 分支,条件和循环

2016-09-28

  • Primitive data -- numbers and strings

  • 把基础类型组合起来

  • value and type

  • Combine in expressions: operands and operators.(运算符和运算对象组成)

  • Interpreter -- evaluate and print 解释器本质上是运算和输出

  • Silent -- no print unless explicit.

  • 类型转换 type conversion

  • Type checking 类型检查 要尽早做

    • week vs. strong typing

    • type discipline

      • A. 检测运算符在不同条件下做什么操作

      • B. 写代码时要约束运算符的运算对象或者参数类型

  • Operator precedence 操作优先规则

    • 有疑问时用括号 when in doubt, use parentheses

  • Variables have own values

  • Assignment

    • x = 3 * 5

    • x是指向内存的一个链接(指针)

    • y = 15

    • z = x z指向15而不是x

  • Type of variable -- inherits from value 继承类型来自于值

  • Dynamic types 动态类型,类型根据当前绑定的值而改变

    • x = 'abc' 类型改变成string

    • 养成好的编程习惯,不要反复改变变量类型

    • don't change types arbitrarily

  • Variable used any place it's legal to use the value.

  • Statement = legal commands that python can interpret.

    • print , assignment

  • 好的编码风格

    • comments 帮助代码阅读者理解代码

    • 变量名的选择,用有意的词

  • Variable names -- important to document.

  • 28 Keywords excluded. 不用系统保留字,python有28个保留字

  • Straight-line programs 一个接一个地执行一系列的指令的程序

  • Branching programs 分支程序 -- can change the order of instructions based on some test( usually value of variable).

  • Conditional

  • Syntax colon is important

    • idetifies a block

      • colon is start

      • carriage return is the end

  • if :

    • Block of instructions

  • else :

    • Block of instructions

  • if 可以嵌套

  • 给有分支结构的程序设计测试用例,要覆盖每一个路径

  • 对条件里的每一个进行检查

  • Boolean combination

    • AND, OR, NOT

    • Type -- two values

      • True

      • False

  • 直线程序的执行时间和指令数成正比

  • 简单分支程序,算法时间复杂度是常数,最多和指令总数一样,和输入无关

  • 计算算法代价

  • 迭代循环,需要持续地判断,这是一个不同的控制结构

  • 循环,重复执行一个代码片段

  • 搞清楚对输入的期望

  • create iterations

Last updated