MIT计算机科学及编程导论02课学习笔记

 

课程重点:分支、条件和循环
一、基础数据类型:数字、字符串(Numbers and strings)
 
数据值和数据类型(Value and type)
 
表达式(combine things in expressions)
 
表达式由运算对象和运算符组成
 
简单的运算举例:
 
3 * 'ab'= ' ababab '    正确表达式
 
'a' + 'bcd'= 'abcd'       正确表达式
 
3 + 'ab'         错误表达式   静态语义错误,不符合运算符要求的特定结构
 
Str(3) + 'ab' =3ab      正确表达式      类型转换(type conversion),表示将数字3转换为字符串的类型
 
程序在运算前做了类型检测,检测到错误的运算对象类型,所以就会报错
 
'a' < 3     返回结果    False      字符串与数字无法进行比较
 
4 < '3'     返回结果    True     
 
'4' < '3'   返回结果    False
 
 9/5        返回结果    1              整数做除法
 
9%5   返回结果 4       取余数
 
3+4*5 返回结果 23      运算优先级,先乘后加(指数运算优于乘除,乘除优于加减)
 
(3+4)* 5   返回结果 35   
 
以上例子就是表达式的概念
 
 
二、变量的概念(可以理解为指针,将某个变量指向某个值)
 
变量可以有自己的值,这通过赋值语句来实现
 
例子     X=3     取变量名X,将等号后表达式的值绑定给该变量,也可以 X=3*5
 
表达式不仅仅是数,还可以是任意表达式
 
给变量赋值就相当于取某个变量名,然后创建一个变量名与值之间的连接或指针,将它理解为指针
 
Y=15   给变量Y赋一个值是15
 
Z=X    变量语句将Z与X的值绑定   Z的指针将指向X的值,而不是X
 
变量的类型是什么?
 
变量的类型继承于其值   X=3   当前X的类型是整数
 
变量的类型随着当前值的类型而改变
     
如是后面出现这样的语句 X='abc'   X的类型又变为字符串
 
建议养成好的编程风格,不要随意改变变量类型,以免跟自己制造不必要的麻烦
 
变量用在哪里呢?
 
任何可以合法使用数据值的时候,都可以用变量
 
 
三、语句的概念
 
语句就是可以解释的合法命令,例如 Print语名、赋值语句都是
 
#后的内容代表注释信息,帮助看代码的人理解代码,编程时加入注释信息是好的编程习惯
 
另一个好的编程习惯是:变量名选择,变量名也相当于一种很好的注释,尽量选择有意义的
 
变量名是记录数据的重要途径,但有些是不能用的,如Print是保留命令
 
 
四、分支式程序(branching programs)
执行过程中,可以根据某差别结果改变指令顺序,而判别通常是对某变量值进行的
 
例:判别X的奇偶性(下面的代码可以看到条件语法)
 
X = 15
if    (x/2) * 2 ==  X:
      print      'Even'
else     print     'Odd'
 
 
 

赋值语句,给X赋了一个值15,由於单个=号做为赋值的给变量使用,所以下面的表达式中使用两个=号来比较两边的值是否相等

 

 

冒号很重要,它定义“指令块”的开始,表示将下面几条指令看成一整块,冒号表示开始,而回车表示结束,If将计算表达式的值

 

 

如果值为真,它会计算一些语句,这些被执行的语句,表示在一个缩进的语句块中,缩进取消,表示语句块结束

 

 

如果差别为假,程序会跳过上面的语句,执行这一条语句,冒号后面是判别为假时执行的语句

 

If   < 某种特定的判别式 > :
              指令块
else:   另一个指令块

 

例:比较两者的大小
 
Z = 'b'
If 'x'<z:            
    Print 'Hello'
    Print 'Mom'
 
由于判断的结果为假,所以什么都不执行了,返回结果为空

 

Z = 'b'
If 'x'<z:            
    Print 'Hello'
Print 'Mom'
 
由于判断的结果为假,所以跳过了下面缩进的指令块,跳到下一行与if同一层的指令块并执行,所以返回结果为‘Mom’
 
 
例:打印三个数中的最小值
 
X = 15
y = 5
Z =   11
 
Print    X,Y,Z
 
If   X < Y:
      if X < Z :     Print   ' X is least'                          
      else :     Print   ' Z is least '
else:    'y is least '
 
最后返回结果为y是最小值,但是程序差别不够完整,如果将Y=13,最后还是输出Y为最小值

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章