参考:Python tutorial, A byte of python, Dive into python, Python Package Index, python style rules, Algorithms & Data Structures
变量是用来存储数据的,存储的数据就是变量的值,如:
>>> age = 20
>>> print age
>>> print(age)
>>> print 'age'
>>> print "age"
注意:1.python中的单引号和双引号,用法是完全相同的;2.前两个print会调用变量的值,后两个则直接输出引号中的字符串。
变量可以存储字符串、数字和布尔值,通过tpye()
可以查看变量的数据类型,如:
>>> type(age)
>>> type('age')
python中有整数、长整数、浮点数和复数4种类型的数字,数字可以进行比较操作和数值操作。比较操作包括:小于<
,大于>
,等于==
,小于等于<=
,大于等于>=
和不等于!=
,数值操作包括:加+
,减-
,乘*
,除/
,求余%
,求整//
,乘方**
。
字符串用单引号或双引号扩起来,常用的字符串操作有:
string[x] |
获取第x个字符 |
"abcde"[2]
>"b"
string[x:y] |
获取从x到y的字符 |
"abcde"[1:3]
>"bc"
string[:y] |
获取从开始到y的字符 |
"abcde"[:3]
>"abc"
string[x:] |
获取从x到末尾的字符 |
"abcde"[3:]
>"de"
len(string) |
返回字符串长度 |
len("abcde")
>"5"
string1+string2 |
合并两个字符串 |
"abc"+"de"
>"abcde"
更多字符串操作请看这里。
数据类型可以合法地转换,常用的函数有int()
、float()
和str()
。
[TOP]
将数据一个接一个地存起来,如列表lists和元组tuples,就构成了最简单的线性结构。
>>> list_1 = [5,4,3,2,1]
>>> tuple_1 = (5,4,3,2,1)
列表和元组非常相似,区别在于列表使用方括号,元组使用圆括号。访问列表和元组的方式也是一样的,如list_1[0]
和tuple_1[0]
分别用于访问其第一个元素。
列表和元组更新元素的方式不同,列表中的元素可以单独更新,元组则不可以,如:
>>> list_1[1]=0
>>> list_1
[0,4,3,2,1]
>>> tuple_[1]=0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> tuple_1 = (0,4,3,2,1)
>>> tuple_1
(0,4,3,2,1)
列表和元组的元素可以是数字、字符串,也可以是列表、元组,最常见的是“列表的列表”,构成一个二维表。
列表的操作有很多,如对于list=[3,2,1]
:
list.append(i) |
添加元素到列表尾部 |
list.append(0)
>[3,2,1,0]
list.extend(list0) |
合并list0到列表尾部 |
list.extend([0,9])
>[3,2,1,0,9]
list.pop(x) |
返回并删除第x个元素 |
list.pop(1)
>2
,[3,1]
list.insert(x,i) |
插入元素到第x个位置 |
list.insert(2,0)
>[3,2,0,1]
list.sort() |
排序列表元素 |
list.sort()
>[1,2,3]
list.index(i) |
返回列表中第一次出现该元素的位置 |
list.index(2)
>1
list.count(i) |
计算列表中该元素出现的次数 |
list.count(2)
>1
list.remove(i) |
删除列表中第一次出现的该元素 |
list.remove(2)
>[3,1]
只要不会改变元素值,这些列表操作,大多数都同样适用于元组。
这些操作的使用说明几乎都内置在python的__doc__
中,可通过help([])
调取帮助信息,也可通过dir([])
查看列表对象所有的属性和方法,然后通过print [].extend.__doc__
查看详细内容。
列表和元组是元素的集合,这些元素依次对应一个数字下标。“数字下标”并不是必要的,字典就是一种“非数字下标”的数据结构,如:
>>> dict = {'a':'aaa','b':'bbb','c':'ccc'}
实际上,“下标”也不是必要的,python可以将数据放在一起,不指定次序,也没有下标,这就是集合,如:
>>> set = {'aaa','bbb','ccc'}
常见的集合操作有:
set_1 & set_2 |
返回两个集合共有的元素 |
set_1 | set_2 |
合并两个集合的元素 |
set_1 - set_2 |
set_1中存在,set_2中不存在的元素 |
set_1 ^ set_2 |
set_1或set_2中存在的元素,且剔除共有的元素 |
[TOP]
if 判断条件(非零) :
执行语句
elif 判断条件 :
执行语句
else :
执行语句
while 判断条件 :
执行语句
for 元素 in 列表或元组:
执行语句
break
和continue
用于跳出或跳过循环,pass
是一个特殊的占位语句,用于保持程序结构的完整性,而不会做任何动作。
try:
执行语句
except 错误返回名:
执行语句
except 错误返回名,错误返回值 :
执行语句
else :
执行语句
[TOP]
函数定义:
def functionname(parameters):
函数体
return [expression]
函数调用:
functionname(n)
关于匿名函数:lambda
被称为python的匿名函数,其主体是一个表达式,而非代码块,并且只能写一行,如:
>>> sum = lambda arg1, arg2: arg1 + arg2
>>> sum(20,80)
[TOP]
标准输出和标准输入:
>>> print "Hello World";
Hello World
>>> str = raw_input("Enter your input : ");
>>> print "Received input is : ", str
打开和关闭文件:
poem = '''\
What language is thine, O sea?
The language of eternal question.
What language is thy anser, O sky?
The language of eternal silence.
'''
f = file('poem.txt', 'w')
f.write(poem)
f.close()
f = file('poem.txt')
while True:
line = f.readline()
if len(line) == 0:
break
print line,
f.close()
'w'
是”写“文件模式,常见的还有只读'r'
、追加'a'
、读写'r+'
等模式。
文件处理完以后都需要关闭,下边这种方法可以自动关闭文件:
with open('letter.txt', mode="w") as file_a:
for letter in "hello":
file_a.write(letter + "\n")
with open('letter.txt') as a:
for line in a:
print line.strip()
更多文件处理,请看这里。
[TOP]
创建一个类:
class Person:
def __init__(self, age, name):
self.age = age
self.name = name
def birthday(self):
self.age = self.age + 1
这里创建了一个名为Person
的类,__init__
设置了类的属性,birthday()
是Person
对象的一个方法。
下面来看看怎么使用这个类(创建实例):
hanmeimei = Person(15, "HanMeimei")
lilei = Person(16,"LiLei")
print lilei.name, lilei.age
print hanmeimei.name, hanmeimei.age
类可以继承,构成“超类”、“子类”等,类中的方法还可以重写,这些概念的作用需要在写代码过程中理解和领悟。
[TOP]
import
用于导入模块,也就是将python代码从另一个文件中转移到当前程序中,如:
import re
也可以只导入模块中的一部分代码(函数、类等),如:
from re import match
此外,还有相对导入、局部导入等调用模块的方法,请查看这里。
[TOP]
virtualenv用于创建虚拟的python环境,在虚拟环境中可以:
在没有权限的情况下安装新套件
根据不同的应用,使用不同的套件版本
套件升级不影响其他应用
安装:
$ sudo apt-get install python-virtualenv
创建虚拟环境:
$ virtualenv SPI
$ virtualenv -p python3 SPI
创建一个名为SPI的虚拟环境。
启动虚拟环境:
$ cd SPI
$ source ./bin/activate
退出虚拟环境:
(SPI)$ deactivate
安装套件:
(SPI)$ pip3 install numpy
[TOP]
python语言的优势需要在实际应用中才能体会到,而编程中所遇到的问题,很多时候并不是因为不懂语法,而是没有建立起“编程思想”,编程思想的建立只能通过不断地写代码,同时,应尽早掌握以下几条技巧:
[TOP]