##python基础教程

基础知识

####整数和表达式

  1. 长整数,后面加L
  2. 十六进制和八进制,分别为0x与0

####变量

  1. 变量的定义,不需要类型。直接赋值。
  2. 变量名只能是字母、数字和下划线。并且不能以数字开头。为什么?

####语句与表达式

  1. 表达式有值,而语句没有。

####获取用户输入

  1. input与rawinput。input会假设用户输入的是合法的Python表达式。而raw_input只会把所有输入当原始数据。

####函数、模块

  1. import导入模块。“模块.函数”
  2. from 模块 import 导入函数。
  3. cmath。复数
  4. __future__

####运行脚本

  1. 通过python 脚本文件名
  2. Unix标准。pound bang。 #!. #!/usr/bin/env python放在首行,并且讲改脚本加入可执行权限。

####注释

  1. #来注释。

####字符串

  1. ""''没啥区别,需要注意配套使用。
  2. 转义\用于字符串转义。
  3. 拼接字符串 +
  4. strrepr的区别。
    • str把值转化为合理形式的字符串----相当于java的toString
    • repr会创建一个字符串,它以合法的python表达式的形式来表示值。---相当于把字符串,转化为代码?
  5. 长字符串:""" """可以用于跨多行,并且'',""不需要进行转义。
  6. 原始字符串:r"",不会把反斜杠当做特殊字符;但是在需要的时候我们还是需要对引号进行转义;而且反斜杠不能放在字符串结尾。
  7. Unicode字符串:u"".python普通字符串在内部是以8位的ASCII码形式存储,Unicode字符串则是存储为16位Unicode字符。注意在3.0里,所有字符串都是Unicode字符串。

###列表和元组

####数据结构

  1. 序列(序号):列表、元组、字符串、Unicode字符串、buffer对象、xrange对象
  2. 映射(键值):字典
  3. 集合:---应该是通过映射来实现的。

####序列

  1. 定义:每个元素,分配一个序号。序列的元素可以是序列。
  2. 列表与元组的区别:列表可以修改,元组不能。
  3. 内建函数,大部分返回的是元组。
  4. 元素之间通过分号相隔[1, 2]

####通用序列操作

  1. 索引。 greeting[0],以0为起点,可以为负数。
  2. 分片。闭区间。num[3:6] 1. 索引可以置空num[:3] 2. 可以设置步长num[0:10:2]步长也可以是负数。
  3. 加。相同的序列可以相加。相当于列表连接。
  4. 乘。[None] * 10
  5. in。'x' in 'xw'
  6. 序列长度len、最大元素max、最小元素min等内建函数

####列表

  1. 放在[]里。
  2. list(操作任何序列)、join(列表)。
  3. 赋值。分片赋值。
  4. 删除。del, 还可以删除变量,字典元素。
  5. 列表方法。函数与方法不同的定义。append,count,extend,index,insert,pop,remove,reverse,sort,高级排序sort(cmp)

####元组

  1. 元组不能修改,字符串也是一样
  2. 用逗号分割一些值,自动创建元组,注意不需要括号1, 2, 3就创建了元组(1, 2, 3)
  3. 大部分放在()里。即使是只有一个元素,,是必须的。
  4. tuple函数,把一个序列转化为一个元组。
  5. 存在的意义: 1. 元组可以做键值 2. 内建函数或方法,会返回元组。

####字符串

  1. 字符串是序列。可以使用序列的一切操作。
  2. 格式化字符串。用 %,左侧用格式化的字符串,右侧放希望格式化的值。print "Hello %s!" % ("world",). 1. 格式化的时候,只有元组和字典可以格式化一个以上的值。 2. %s, s表示值会被转换为字符串,如果不是字符串,会用str函数转化为字符串。 3. string模块里的Template.模版字符串,另外一个格式化字符串的方法。
  3. 字符串方法 1. 字符串常量string.digits,string.letters 2. find,replace,translate,join,split

####字典

  1. 形式{'Alice':'1234', 'Beth':'4888'}键与值,以:隔开; 键值对(称为项),以,号隔开,外面用{}.
  2. dict类型。dict(name = 'Alice', age = 42)
  3. 字典基本操作。 1. 键可以为任何不可变类型。包括字符串和元组。 2. 自动添加。如果起初键不存在,会自动建立新的项。 3. in。
  4. 用字典 格式化字符串。"My name is %(name)s" % {'name': 'Alice'}
  5. 字典方法 1. clear,copy,get,has_key,update,items,keys,values

####其他

  1. as语句 from math import sqrt as foobar
  2. 序列解包。
  3. 语句块。代码前放置空格,同一代码块,每行缩进同等量,并且以:标示开始。
  4. 被解释器看做假的有False,None, 0,"",(),[],{},其他看作为真。bool可以用于转换。
  5. ==isis表示的是不是同一个对象,一个地址。
  6. 断言assert
  7. xrange与range。 xrange一次只创建一个数。
  8. 迭代工具:itertools模块。zip函数,并行迭代。
  9. 编号迭代:enumerate函数
  10. reversedsorted,作用于任何序列或科迭代的对象上,返回修改后的版本。
  11. 循环中的else语句。
  12. 列表推导式:利用其他列表创建新列表,类似与for。[x*x for x in range(10) if x %3 ==0]
  13. 占位符pass,del删除名称, execeval in <scope>命名空间,保护安全。eval有返回值

####抽象

  1. callable(func) hasattr(func, __call__)判断该函数可以调用。
  2. 文档字符串:__doc__用于查看。函数的开头写下的字符串,它就作为函数一部分进行存储。要善于利用help函数
  3. 函数:python函数肯定有返回值。return只起到接触函数的作用。即使没有接返回值,就当作返回None
  4. 参数 1. 传的参数相当于c里面的引用。 2. 位置参数:实參的位置很重要。 3. 关键字参数:可以提供参数默认值def hello(greeting='hello', name='world') 4. 收集参数:*param收集位置参数,**params收集关键字参数.但注意位置参数要放在关键字参数前面 5. 翻转参数:def add(x, y): return x+y add(*(1,2))
  5. 作用域:vars()返回作用域(命名空间)。 1. globals() locals()分别返回全局和局部作用域。 global x声明全局变量。 2. 嵌套作用域,外层函数返回内层函数。
  6. 递归函数:
  7. 总结: 1. 函数可以分配给变量,作为参数传递,以及从其他函数中返回 2. functools模块。map filter reduce 3. lambda创建匿名函数

####python的对象系统

  1. 创建自己的类。__metaclass__class, 方法定义的时候,第一个参数,为self. def setName(self, name)
  2. self参数,是函数与方法的区别所在
  3. type isinstance issubclass
  4. 私有。方法前加__,翻译成ClassName_functionName
  5. 所有位于class语句中的代码都在特殊命名空间内执行。类的定义其实就是执行代码块。
  6. class childClass(superClass)继承父类。特殊特性__bases__,并且支持多重继承。
  7. hasattr callable hasattr(x, '__call__'),getattr,setattr 1. __dict__ 2. inspect模块
  8. __init__ __del__构造函数与析构函数。super函数。
  9. __len__(self),__getitem__(self,key),__setitem__(self,key, value),__delitem(self,key)
  10. property函数。property(getSize,setSize)
  11. __get__,__set__,__del__实现property的工作原理。
  12. 类方法。参数cls,或装饰器。
  13. __getattr__ __setattr__ __delattr__ __iter__

####模块

  1. __name____main__
  2. init.py”,定义为包。
  3. 探究模块dic函数, __all__
  4. help, __doc__, __file__查看模块内容。
  5. sys, os, fileinput, sets, time, random, shelve, re, functools, difflib, hashlib, csv, timeit, profile, trace, datetime, itertools, logging, getopt, optparse, cmd