1.python是解释型语言,不需要经过编译,所以存在执行速度比较慢的问题,且提供出来的不是像C语言那种可执行文件,而是源码,可被别人看到。
2.python解释器比较多,常用CPYTHON.
3.可以直接在命令行输入代码运行。
4.打印输出语句 print 'hello world' 结尾不需要任何符号,字符串可以用单引号,也可以双引号。
5.输入:raw_input() name = raw_input(“input your name”),注意所有输入都当字符串处理,想得到整形等其他类型需要经过转换 num = int (raw_input())。
6.变量不需要声明类型,对于我这种C出身的来说感觉很诧异,且不同类型数值可以赋给同一个变量。
7.布尔类型:True 、False 注意大小写,布尔类型可以用and or not 进行运算。
8.转义字符:通过“\”, 比如 \n \' \" \t \\ 。Python还允许用r''
包含内容不转义。
9.打印多行时,Python允许用'''...'''
的格式表示多行内容。
10.下面的注释表示使用utf-8进行编码,u"中国"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
11.格式化方式通过%进行,且跟实际变量用%隔开:'Hello, %s' % 'world'
12.List:列表,相当于数组。classmates = ['Michael', 'Bob', 'Tracy'],用[]表示。通过len()函数获得List长度。可通过下标访问。 函数.append()追加元素。
pop(i):删除某个元素,i为空时删除最后一个元素。
13.Tuple:tuple和list非常类似,但是tuple一旦初始化就不能修改,classmates = ('Michael', 'Bob', 'Tracy')。
14.list 和 Tuple其中的每个元素都可以是list or Tuple,相当于是二位数组,可通过[ ][ ]方式访问。
15.if语句:if和else行后面要加冒号:,控制语句段通过缩进控制。使用elif代替else if。
16.循环:1 for:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
......
也可以使用for x in range(101),表示x从0取到100
2.while : while n > 0:
17.dict:字典,相当于map,使用key-value形式存储数据。插入和查找速度较快。不允许同一个key存储多个value.
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85},插入d["abc'] = 76.删除,pop(key),关键字in确认key是否存在。
18.set:集合,效率和dict相似,不存储value,只有key。删除:remove (key);add(key)。
19.定义函数使用def 使用return返回值,可返回多个值。
必须参数和默认参数:默认参数使用=表示,def fun(x, y=1):
可变参数,参数个数可以改变:通过参数名前面加*表示 def calc(*numbers): 调用时可以加* calc(*numbers),numbers表示List 等。
关键字参数:可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。 def person(name, age, **kw):
牛逼的来了:所以,对于任意函数,都可以通过类似func(*args, **kw)
的形式调用它,无论它的参数是如何定义的。
递归函数类似跟C类似。
20.切片:L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'],去前三个L[0:3] ,注意L[-1]表示取倒数第一个元素,即L[-1]== 'Jack'.非常灵活好用,代替循环操作。
21.for循环可以使用两个变量作为迭代。。。
22.函数式编程:与C中的指针函数比较类似,把函数当成变量来使用,可以返回函数。
22.导入模块 import, import sys,导入sys模块,常常使用到sys模块的argv list,表示传入的所有参数。sys.argv.
23.别名,import ...as ...,
try:
import cStringIO as StringIO
except ImportError: # 导入失败会捕获到ImportError
import StringIO
24.sorted(,cmp_fun):排序函数,cmp_fun是自定义的排序函数
25.作用域:有的函数和变量希望仅仅在模块内部使用。在Python中,是通过 _
前缀来实现的。
26.使用pip install 命令导入第三方库
27.类的定义:
class Student(object):
def __init__(self, name, score): //全部以_init_定义构造函数,然后第一个参数永远是self
self.name = name
self.score = score
def print_score(self):
print '%s: %s' % (self.name, self.score)
初始化调用 bart = Student('Bart Simpson', 59)
对于类的实例可以随时随地绑定新的变量,不同实例之间拥有的变量数目不同,初始化中的变量知识只是必须 的。
28.多态和继承:
class Animal(object):
def run(self):
print 'Animal is running...'
class Dog(Animal):
def run(self):
print 'Dog is running..'
isinstance(b, Dog)... isintance函数判断是否为某各类的实例。
object类是所有类的父类,其余类都是从它继承来的。
29:type函数用于判断类型,获取对象信息,type(123)== types.StringType,type(Dog),并且可以进行逻辑运算,比较。导入types 模块
types.UnicodeType types.TypeType types.ListType
30.dir()返回对象的所有属性和方法。。。
31.给实例绑定方法:
>>> def set_age(self, age): # 定义一个函数作为实例方法
... self.age = age
...
>>> from types import MethodType
>>> s.set_age = MethodType(set_age, s, Student) # 给实例绑定一个方法
>>> s.set_age(25) # 调用实例方法
>>> s.age # 测试结果
给类绑定方法 Student.set_score = MethodType(set_score, None, Student)
总结自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832151866c052395d62814708a14c4fa1c933d85e000