1、python的语言特色
简单、易学、免费开源 、高层语言、可移植性、解释性、面向对象、可嵌入式、丰富的库
2、为什么不使用Perl?
Perl程序是简单的。它可以胜任于小型的应用程序和脚本,“使工作完成”。然而,当你
想开始写一些大一点的程序的时候,Perl程序就变得不实用了。
$是shell的提示符。根据你的操作系统的设置,它可能与你那个不同,因此我只用$符号表示提
示符
3、使用带提示符的解释器
在命令行的shell提示符下键入python,启动解释器。现在输入print 'H ello W orld',然后按Enter
键。你应该可以看到输出的单词H ello W orld。
对于W indows用户,只要你正确的设置了PATH 变量,你应该可以从命令行启动解释器。或者
你可以选择使用ID LE程序。ID LE是集成开发环境的缩写。点击开始->程序->Python 2.3->ID LE
(Python G U I)。Linux用户也可以使用ID LE。
>>>是你键入Python语句的提示符。
例子
$ python
Python 2.3.4 (#1, O ct 26 2004, 16:42:40)
[G CC 3.4.2 20041017 (Red H at 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for m ore inform ation.
>>> print 'hello world'
hello world
>>>
如何退出Python提示符
如果你使用的是Linux/BSD shell,那么按Ctrl-d退出提示符。如果是在W indows命令行中,则按
Ctrl-z再按Enter。
4、在Python中有4种类型的数——整数、长整数、浮点数和复数。
● 2是一个整数的例子。
● 长整数不过是大一些的整数。
● 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10 -4 。
● (-5+4j)和(2.3-4.6j)是复数的例子。
5、字符串
有单引号、双引号、三引号、转义符、字符串是不可变的、
6、变量
们需要一种既可以储存信息 又可以对它
们进行操作的方法。这是为什么要引入 变量 。变量就是我们想要的东西——它们的值可以变
化,即你可以使用变量存储任何东西。变量只是你的计算机中存储信息的一部分内存。
7、标识符的命名
变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循
这些规则:
● 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _
’)。
● 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组
成。
● 标识符名称是对大小写敏感的。例如,m ynam e和m yN am e不是一个标识符。注意前者中
的小写n和后者中的大写N 。
● 有效 标识符名称的例子有i、__m y_nam e、nam e_23和a1b2_c3。
● 无效 标识符名称的例子有2things、this is spaced out和m y-nam e。
8、数据类型
9、对象
记住,Python把在程序中用到的任何东西都称为 对象 。这是从广义上说的。因此我们不会
说“某某 东西 ”,我们说“某个 对象 ”。
10、逻辑行与物理行
这些都是为了尽可能避免使用分号,从而让代码更加易读。事实上,
我 从来没有 在Python程序中使用过或看到过分号。
11、运算符
运算符与它们的用法
运算符 名称 说明 例子
+ 加 两个对象相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 减
得到负数或是一个数减去另一个
数
-5.2得到一个负数。50 - 24得到26。
* 乘
两个数相乘或是返回一个被重复
若干次的字符串
2 * 3得到6。'la' * 3得到'lalala'。
** 幂
返回x的y次幂
3 ** 4得到81(即3 * 3 * 3 * 3)
/ 除 x除以y
4/3得到1(整数的除法得到整数结
果)。4.0/3或4/3.0得到
1.3333333333333333
// 取整除 返回商的整数部分 4 // 3.0得到1.0
% 取模 返回除法的余数 8% 3得到2。-25.5% 2.25得到1.5
<< 左移
把一个数的比特向左移一定数目
(每个数在内存中都表示为比特
或二进制数字,即0和1)
2 << 2得到8。——2按比特表示为10
>> 右移 把一个数的比特向右移一定数目
11 >> 1得到5。——11按比特表示为
1011,向右移动1比特后得到101,即十
进制的5。
& 按位与 数的按位与 5 & 3得到1。
| 按位或 数的按位或 5 | 3得到7。
^ 按位异或 数的按位异或 5 ^ 3得到6
~ 按位翻转 x的按位翻转是-(x+1) ~5得到-6。
< 小于
返回x是否小于y。所有比较运算
符返回1表示真,返回0表示假。
这分别与特殊的变量True和False
等价。注意,这些变量名的大
写。
5 < 3返回0(即False)而3 < 5返回1(即
True)。比较可以被任意连接:3 < 5 <
7返回True。
> 大于 返回x是否大于y
5 > 3返回True。如果两个操作数都是数
字,它们首先被转换为一个共同的类
型。否则,它总是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比较对象是否相等
x = 2; y = 2; x == y返回True。x = 'str'; y =
'stR'; x == y返回False。x = 'str'; y = 'str'; x
== y返回True。
!= 不等于 比较两个对象是否不相等 x = 2; y = 3; x != y返回True。
not
布
尔“非”
如果x为True,返回False。如果x
为False,它返回True。
x = True; not y返回False。
and
布
尔“与”
如果x为False,x and y返回False,
否则它返回y的计算值。
x = False; y = True; x and y,由于x是
False,返回False。在这里,Python不会
计算y,因为它知道这个表达式的值肯
定是False(因为x是False)。这个现象
称为短路计算。
or
布
尔“或”
如果x是True,它返回True,否则
它返回y的计算值。
x = True; y = False; x or y返回True。短路
计算在这里也适用。
运算符优先级
运算符 描述
lam bda Lam bda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,
>=,!=,==
比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,%
乘法、除法与取
余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(argum ents...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum ,...} 字典显示
'expression,...' 字符串转换
其中我们还没有接触过的运算符将在后面的章节中介绍。
12、使用表达式
#!/usr/bin/python
# Filenam e: expression.py
length = 5
breadth = 2
area = length * breadth
print 'Area is', area
print 'Perim eter is', 2 * (length + breadth)
13、控制流
while语句
只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓 循环 语
句的一个例子。while语句有一个可选的else从句。
for循环
or..in是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目。我们会
在后面的章节中更加详细地学习序列
使用for语句
#!/usr/bin/python
# Filenam e: for.py
for i in range(1, 5):
print i
else:
print 'The for loop is over'
for循环在这个范围内递归——for i in range(1,5)等价于for i in [1, 2, 3, 4],这就如同把序列中的每
个数(或对象)赋值给i,一次一个,然后以每个i的值执行这个程序块。在这个例子中,我们
只是打印i的值。
记住,else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语
句。
记住,for..in循环对于任何序列都适用。这里我们使用的是一个由内建range函数生成的数的列
表,但是广义说来我们可以使用任何种类的由任何对象组成的序列!我们会在后面的章节中详
细探索这个观点。
break语句
break语句是用来 终止 循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归,
也停止执行循环语句。
continue语句
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环。
14、函数
函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使
用这个名称任意多次地运行这个语句块。这被称为 调用 函数。我们已经使用了许多内建的函
数,比如len和range
函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号
之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。下面这个例
子将说明这事实上是十分简单的:
函数的行参
函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数就
像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。
参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式
提供值。注意我们使用过的术语——函数中的参数名称为 形参 而你提供给函数调用的值称为
实参 。
局部变量
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即
变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的
块,从它们的名称被定义的那点开始。
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的
话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后
加上赋值运算符(=)和默认值,从而给形参指定默认参数值。