课程重点:分支、条件和循环
一、基础数据类型:数字、字符串(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为最小值