Python编程中理解对象的概念很重要,因为其宗旨是'一切皆对象'。(提前预告)
高级语言Python,Perl和Java等语言有许多相似之处。但是,也存在一些差异。
交互式编程:
脚本式编程
Python IDE 编写.py
Python 标识符
区分大小写
以_开头的标识符有特殊意义
以单_开头(_foo)的代表不能直接访问的类属性,需要提供类提供的接口进行访问,不能用from xxx import **而导入。
以双下划线开头(__foo)代表私有成员
以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数
Python保留字符
不能做任何其他标识符名称、常数或变量
and
exec
not
assert
finally
or
break
for
pass
class
from
continue
global
raise
def
if
return
del
import
try
elif
in
while
else
is
with
except
lambda
yield
行和缩进
Python有严格的行缩进要求,用缩进来写模块。所有的代码块必须包含相同的缩进空白数量。
if True:
print "True"
else:
print "False" #错误的
python 语句以新行作为语句的结束符。用斜杠(\)连接一行语句多行显示。
语句包含[],{},()就不需要使用多行连接符。
days=['Mon','Tue','Wed',
'Thu','Fri']
注释
#!/usr/bin/python
空行
函数或类的方法之间用空行分隔表示一段新的代码开始。类和函数入口也用以空行分隔,以突出函数入口的开始。
并不是python语言的一部分。
同一行显示多条语句 import sys; x='foo'
一、数据类型:
Python能够直接处理以下数据,不需要提前声明。
整数,Python可以处理任意大小的整数。
浮点数,也就是小数,对于很大或很小的浮点数就必须用科学计数法表示,1.23e9 ,1.2e-5
字符串,"",'' 'I\'m \"OK\"!' 转义字符\n \t \\
print '''line1
line2
line3'''
布尔值,True False, 3>2 3>5, and or not
空值,None,一种特殊的空值
标准数据类型
Numbers(数字)
数字数据类型用于存储数值。
他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建:
int long float complex
del 删除对象
长整型51924361L ,a+bj--complex(a,b)
String(字符串)
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
#coding=utf-8 #!/usr/bin/python str = 'Hello World!' print str # 输出完整字符串 print str[0] # 输出字符串中的第一个字符 print str[2:5] # 输出字符串中第三个至第五个之间的字符串 print str[2:] # 输出从第三个字符开始的字符串 print str * 2 # 输出字符串两次 print str + "TEST" # 输出连接的字符串
>
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
List[列表]
[]
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。
列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
加号(+)是列表连接运算符,星号(*)是重复操作
1 #coding=utf-8
2 #!/usr/bin/python
3
4 list = [ 'abcd', 786 , 2.23, 'john', 70.2]5 tinylist = [123, 'john']6
7 print list #输出完整列表
8 print list[0] #输出列表的第一个元素
9 print list[1:3] #输出第二个至第三个的元素
10 print list[2:] #输出从第三个开始至列表末尾的所有元素
11 print tinylist * 2 #输出列表两次
12 print list + tinylist #打印组合的列表
输出:
1 ['abcd', 786, 2.23, 'john', 70.2]2 abcd3 [786, 2.23]4 [2.23, 'john', 70.2]5 [123, 'john', 123, 'john']6 ['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Tuple(元组)
内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
元组是不允许更新的。而列表是允许更新的
1 #coding=utf-8
2 #!/usr/bin/python
3
4 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2)5 tinytuple = (123, 'john')6
7 print tuple #输出完整元组
8 print tuple[0] #输出元组的第一个元素
9 print tuple[1:3] #输出第二个至第三个的元素
10 print tuple[2:] #输出从第三个开始至列表末尾的所有元素
11 print tinytuple * 2 #输出元组两次
12 print tuple + tinytuple #打印组合的元组
>
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
Dictionary{字典}
字典(dictionary)是除列表意外python之中最灵活的内置数
结构类型。列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
1 #coding=utf-8
2 #!/usr/bin/python
3
4 dict ={}5 dict['one'] = "This is one"
6 dict[2] = "This is two"
7
8 tinydict = {'name': 'john','code':6734, 'dept': 'sales'}9
10
11 print dict['one'] #输出键为'one' 的值
12 print dict[2] #输出键为 2 的值
13 print tinydict #输出完整的字典
14 print tinydict.keys() #输出所有键
15 print tinydict.values() #输出所有值
>
This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']
数据类型转换
函数
描述
int(x [,base])
将x转换为一个整数
long(x [,base] )
将x转换为一个长整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
二、变量
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
赋值 =
多变量赋值 a, b, c = 1, 2, "john"
三、常量
通常用全部大写的变量名表示常量。PI
10/3 10.0/3 10%3
四、运算符
Python算术运算符
以下假设变量a为10,变量b为20:
运算符
描述
实例
+
加 - 两个对象相加
a + b 输出结果 30
-
减 - 得到负数或是一个数减去另一个数
a - b 输出结果 -10
*
乘 - 两个数相乘或是返回一个被重复若干次的字符串
a * b 输出结果 200
/
除 - x除以y
b / a 输出结果 2
%
取模 - 返回除法的余数
b % a 输出结果 0
**
幂 - 返回x的y次幂
a**b 为10的20次方, 输出结果 100000000000000000000
//
取整除 - 返回商的整数部分
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
Python比较运算符
以下假设变量a为10,变量b为20:
运算符
描述
实例
==
等于 - 比较对象是否相等
(a == b) 返回 False。
!=
不等于 - 比较两个对象是否不相等
(a != b) 返回 true.
<>
不等于 - 比较两个对象是否不相等
(a <> b) 返回 true。这个运算符类似 != 。
>
大于 - 返回x是否大于y
(a > b) 返回 False。
<
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
(a < b) 返回 true。
>=
大于等于 - 返回x是否大于等于y。
(a >= b) 返回 False。
<=
小于等于 - 返回x是否小于等于y。
(a <= b) 返回 true。
Python赋值运算符
以下假设变量a为10,变量b为20:
运算符
描述
实例
=
简单的赋值运算符
c = a + b 将 a + b 的运算结果赋值为 c
+=
加法赋值运算符
c += a 等效于 c = c + a
-=
减法赋值运算符
c -= a 等效于 c = c - a
*=
乘法赋值运算符
c *= a 等效于 c = c * a
/=
除法赋值运算符
c /= a 等效于 c = c / a
%=
取模赋值运算符
c %= a 等效于 c = c % a
**=
幂赋值运算符
c **= a 等效于 c = c ** a
//=
取整除赋值运算符
c //= a 等效于 c = c // a
Python位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
运算符
描述
实例
&
按位与运算符
(a & b) 输出结果 12 ,二进制解释: 0000 1100
|
按位或运算符
(a | b) 输出结果 61 ,二进制解释: 0011 1101
^
按位异或运算符
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~
按位取反运算符
(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<
左移动运算符
a << 2 输出结果 240 ,二进制解释: 1111 0000
>>
右移动运算符
a >> 2 输出结果 15 ,二进制解释: 0000 1111
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量a为10,变量b为20:
运算符
描述
实例
and
布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。
(a and b) 返回 true。
or
布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。
(a or b) 返回 true。
not
布尔"非" - 如果x为True,返回False。如果x为False,它返回True。
not(a and b) 返回 false。
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符
描述
实例
is
is是判断两个标识符是不是引用自一个对象
x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not
is not是判断两个标识符是不是引用自不同对象
x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符
描述
**
指数 (最高优先级)
~ + -
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //
乘,除,取模和取整除
+ -
加法减法
>> <<
右移,左移运算符
&
位 'AND'
^ |
位运算符
<= < > >=
比较运算符
<> == !=
等于运算符
= %= /= //= -= += *= **=
赋值运算符
is is not
身份运算符
in not in
成员运算符
not or and
逻辑运算符