您的位置:首页 > 编程语言 > Python开发

Python学习笔记(八):Python语句简介、赋值、表达式和打印

2013-07-19 16:06 691 查看
以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话

2013-7-19 14:30 学习笔记

1,Python程序的结构是这样的:程序由模块构成,模块包含语句,语句包含表达式,表达式建立并处理对象。

2,与C语言不同,Python语句会要求强制缩进,来保证代码的可读性和可维护性。同时语句顶端位于测试两端的括号是可以省略的。语句也不需要分号结尾。这样做Python会允许通过,但全世界都会知道你是一个正在学习Python的前C程序员。

x = 1
y = 2
if x > y:
print x
else:
print y


3,赋值语句建立对象引用值,变量名在首次赋值时会被创建,变量名在引用前必须先赋值。Python中赋值语句的形式如下表:

运算解释
name = 'mathboy'基本形式
name, age = 'mathboy', 23元组赋值
[name, age] = ['mathboy', 23]列表赋值
a,b,c,d = 'girl'序列赋值
boy = girl = 'mo'多目标赋值
age += 23增强赋值(相当于age = age + 23)
4,元组赋值可以利用来交换两个变量的值。例如:

a = 1
b = 2
a,b = b,a
print a,b
输出结果为:

2 1


5,理论上,序列赋值的右侧可以是任意可迭代的对象,但右边元素的数目要跟左侧变量的数目相同。例如:

name = 'math'

a,b,c,d = name
print a,b,c,d

a,b,c = name[0], name[1], name[2:]
print a,b,c

a,b,c = list(name[:2]) + [name[2:]]
print a,b,c

a,b = name[:2]
print a,b

(a,b),c = name[:2], name[2:]
print a,b,c
结果为:
m a t h
m a th
m a th
m a
m a th


6,利用range()函数可以给系列变量赋整数值。例如:

a,b,c,d = range(4)
print a,b,c,d
结果为:

0 1 2 3


7,多目标赋值时,要注意共享引用的情况。例如:

a = b = 0
b += 1
print a,b

c = d = []
d.append(3.14)
print c,d
输出结果为:

0 1
[3.14] [3.14]


8,增强赋值通常比完整形式的赋值执行得更快,同时会自动选择优化技术。例如对于列表,+= 赋值会自动调用较快的extend()方法,而不是使用较慢的 + 合并运算。

L = [1,2]
L = L + [3,4]		# slower
L.extend([5,6])		# faster
L += [7,8]			# mapped to L.extend([7,8])


9,Python的变量名以下划线或字母开头,后面可以接任意数目的字母、数字或下划线。变量名区分大小写。

10,由于import语句中的模块变量名会变成脚本中的变量,所以虽然你可以写and.py和my-code.py这类文件,但你无法将其导入。因为and是Python保留字,而my-code中含有Python变量不允许的符号。

11,Python变量命名还有一些惯例,这些并非必要的规则,但一般在实际中都会遵守。

以单一下划线开头的变量名(_X)不会被 from module import * 语句导入
前后各有两个下划线的变量名(__X__)是系统定义的变量名,对解释器有特殊的意义
以两个下划线开头、但结尾没有连个下划线的变量名(__X)是类的本地(“压缩”)变量
通过交互模式运行时,只有单个下划线的变量名(_)会保存最后表达式的结果

12,Python允许吧大小比较测试串在一起。例如(A < B <C) 相当于 (A < B and B < C)

13,Python不允许把赋值语句(=)嵌入到其它表达式中,这样做的理由是为了避免常见的编码错误。例如用“==”做相等测试时,不会打成"="而意外修改变量的值。

14,下面两个打印程序等价:

X = 3.14
print X


等价于

import sys
X = 3.14
sys.stdout.write(str(X) + '\n')


15,标准输出流可以重定向。例如:

import sys
sys.stdout = open('log.txt', 'w')
a,b,c = 1,2,3
print a,b,c
在上面这段程序中,print语句会调用sys.stdout的write方法。

16,print可以通过>>重定向到文件流,这种重定向只是暂时的。例如:

a,b,c = 1,2,3
x,y,z = 8,9,10
log = open('log.txt','w')
print >> log, a,b,c
print x,y,z
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: