python-grammar

  • 安装与使用
    • 安装目录
      • 环境
    • 包的部署与管理
      • pip
      • egg
  • 基本语法
    • 变量
      • 整数
      • 字符串
      • 列表list
      • 元组tuple
      • 字典
      • 时间日期
    • 面向对象
      • 构造函数
      • 类变量类成员变量
      • 继承
    • 多线程
  • 注意点
  • 常用

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
- 解释型 = 不需要编译、链接之类的,直接可以在python解释器中执行;
- 面向对象 = 同c++一样是面向对象
- 动态数据类型 = 声明变量时不需要声明变量的类型。(是不是只有定义变量这一说了)

安装与使用

安装目录

/usr/share/pyshared/

这些库不管是哪个版本的python都能用

/usr/lib/python2.6(2.7/3)

这下面的库,只能是特定版本的python能用

环境

sys.path —— 动态地改变Python搜索路径

import sys  
sys.path.append(’引用模块的地址')  
sys.path.insert(0, '引用模块的地址')  

包的部署与管理

pip

可配置源之类的,~/.pip/pip.conf

egg

python的egg文件有点像java中的jar文件,是一个工程打包文件,便于安装部署。

基本语法

变量

整数

字符串

列表list []

函数名 说明
cmp(lst1, lst2)
len()
Max/min(lst)
List(tuple) tuple to list
方法名 说明
Append(obj) vs extend(seq)
Count(obj)
Index(obj)
Insert(index, obj)
Remove(obj) vs pop(obj=lst[-1])
Sort([func]) vs reverse()

元组tuple ()

同于列表,唯有元素不可改。

只有一个值时,需要注意后缀的逗号

t2 = (3)
print t2  #3
t3 = (3,)
print t3  #(3,)
函数名 说明
Cmp(tuple1, tuple2)/len()
Max/min(t)
Tuple(list) Seq to tuple

字典 {}

函数名 说明
cmp
len
Str()
Type()
方法名 说明
keys()/values()/items() Items()返回(key,value)元组的list
Copy() 浅拷贝(我的理解是指拷贝了指针的值,但没拷贝指针所指向的资源,亦即两个对象共享某一资源)怎么理解?因为pyton没有指针,所以哪来的浅拷贝???
has_key(key) 返回True/False
get(key, default=None)
setdefault(key, default=None)
update(dict2)
fromkeys(seq[, val]))
clear()

时间、日期

面向对象

类中要经常用self == cpp中的this指针
- 类函数的声明;
- 类函数的调用;

没有用public,private等关键词来标志;

__ 前缀为私有标志
self.__A() 可以调用 self.__B吗? —可以的

构造函数

子类的构造函数定要手动调用基类的构造函数,否则默认是不会调用基类构造的。

class Base(object):
    def __init__(self):
        print "Base created"

class ChildA(Base):
    def __init__(self):
        #老式类的写法;
        Base.__init__(self)

class ChildB(Base):
    def __init__(self):
        #新式类的写法,避免了写基类的名字(在多继承下应该很管用)
        super(ChildB, self).__init__()
print ChildA(),ChildB()

问题:新式类有什么特点??

type(对象)的时候是类名,而非是一个实例。
调用基类的函数可以用super关键字。

类变量、类成员变量

如下:
这是一张图片

继承

多线程

thread 有些缺陷,threading是对thread的补充

t1 = threading.Thread(target=fun1, args=('1111111111',))  #args元组中有个逗号
t1.start()

注意点

  • for

    • 只有for.. in.., 没有for(;;)这种步阶
  • 空对象
    None和任何其他的数据类型比较永远返回False
    可以将None复制给任何变量,但是你不能创建其他NoneType对象。

>>> type(None)
<class 'NoneType'>
>>> None == 0
False
>>> None == ' '
False
>>> None == None
True
>>> None == False
False
- if x:  这是True/False判断  
None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False
- if x is not None: 这是单独判断x不是None
  • 没有自增、自减 i++ i–

常用

  • sleep

    time.sleep(1)

  • 时间截

    Print time.ctime()

你可能感兴趣的:(python)