python基础笔记

来源:互联网 发布:南充市行知小学 编辑:程序博客网 时间:2024/05/27 02:33

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

0 0
原创粉丝点击