• Python程序hello.py改成一个可执行的脚本,直接执行
#!/usr/bin/env python
    print('Hello World!')

    $ chmod 755 hello.py
    $ ./hello.py
  • print 输出语句,python2不用加括号,python3需要加括号,在语句结尾加逗号,则不换行
  • Python的变量不需要声明,数据类型是Python自动决定的。
    内置函数type(), 用以查询变量的类型。
    print(type(a))
  • sequence(序列)是一组有顺序的元素的集合,序列可以包含一个或多个元素,也可以没有任何元素。
  • 序列有两种:tuple(元组) 和 list (表)
    tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。
  • 序列元素的下标从0开始;由于list的元素可变更,你可以对list的某个元素赋值;但tuple不可以赋值
  • 范围引用: 基本样式[下限:上限:步长] :注意:上限本身不包括在内
>>>print(s1[:5])             # 从开始到下标4 (下标5的元素 不包括在内)
    >>>print(s1[2:])             # 从下标2到最后
    >>>print(s1[0:5:2])          # 从下标0到下标4 (下标5不包括在内),每隔2取一个
    >>>print(s1[-3])             # 序列倒数第三个元素
  • 字符串是一种特殊的元组,因此可以执行元组的相关操作
>>>str = 'abcdef'
    >>>print(str[2:4])
  • 数学运算符 +, -, , /, *, %
    判断 ==, !=, >, >=, <, <=, in
    逻辑 and, or, not

  • if语句之后的冒号,下一行以四个空格的缩进来表示隶属关系, Python中不能随意缩进
if  <条件1>:
        statement
    elif <条件2>:
        statement
    else:
        statement
  • for循环基本构造:
>>> for 元素 in 序列: 
           statement
这个循环就是每次从表序列中取出一个元素,然后将这个元素赋值给元素,之后执行隶属于for的操作
  • 函数range():这个函数的功能是新建一个表。这个表的元素都是整数,从0开始,下一个元素比前一个大1, 直到函数中所写的上限
>>> idx = range(5)
    >>> print idx
    output: [0,1,2,3,4]

  • while循环 :while会不停地循环执行隶属于它的语句,直到条件为假(False)
>>> while 条件:
            statement
  • 中断循环:
    continue # 在循环的某一次执行中,如果遇到continue, 那么跳过这一次执行,进行下一次的操作
    break # 停止执行整个循环

  • 函数的定义,基本结构
def square_sum(a,b):
        c = a**2 + b**2
        return c
注意:
(1)def关键字,square_num函数名;
(2)(a,b)函数的参数,是对函数的输入;参数可以有多个,也可以完全没有(但括号要保留)
(3)return可以返回多个值,以逗号分隔。相当于返回一个tuple(定值表)。
(4)return a,b,c          # 相当于 return (a,b,c)
(5)return并不是必须的,当没有return, 或者return后面没有返回值时,函数将自动返回None
(6)对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为值传递)
(7)对于表,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。(我们称此为指针传递)

  • 定义一个类:
class Bird(object):                     #定义一个类
        have_feather = True                 #类的属性
        way_of_reproduction = 'egg'
        def move(self, dx, dy):             #类的方法
            position = [0,0]
            position[0] = position[0] + dx
            position[1] = position[1] + dy
            return position

    class Chicken(Bird):                    #子类,继承父类的所有属性和方法
        way_of_move = 'walk'
        possible_in_KFC = True

    summer = Chicken()                      #创建一个对象
    print summer.have_feather               #调用对象的方法
    print summer.move(5,8)                  #调用对象的函数
注意:
(1)将东西根据属性归类 ( 将object归为class )
(2)方法是一种属性,表示动作
(3)用继承来说明父类-子类关系。子类自动具有父类的所有属性。
(3)方法的第一个参数必须是self,无论是否用到
(4)self代表了根据类定义而创建的对象
(5)建立对一个对象: 对象名 = 类名()
  • 面向对象
    (1)对象通过self.attrName来调用类属性和方法
    (2)init()方法:对象创建是自动调用的初始化方法
  • dir():用来查询一个类或者对象所有属性。
    help()用来查询的说明文档
    len()用来返回list所包含的元素的总数

  • list是一个类
>>>nl = [1,2,5,3,5]
        nl是类list的一个对象。

    >>>print nl.count(5)       # 计数,看总共有多少个5
    >>>print nl.index(3)       # 查询 nl 的第一个3的下标
    >>>nl.append(6)            # 在 nl 的最后增添一个新元素6
    >>>nl.sort()               # 对nl的元素排序
    >>>print nl.pop()          # 从nl中去除最后一个元素,并将该元素返回。
    >>>nl.remove(2)            # 从nl中去除第一个2
    >>>nl.insert(0,9)          # 在下标为0的位置插入9
运算符,比如+, -, >, <, 以及下标引用[start:end]等等,从根本上都是定义在类内部的方法。

  • list类没有对 - 定义,我们可以继承list类,添加对’-‘的定义
class superList(list):
        def __sub__(self, b):
            a = self[:]     # 这里,self是supeList的对象。由于superList继承于list,它可以利用和list[:]相同的引用方法来表示整个对象。
            b = b[:]        
            while len(b) > 0:
                element_b = b.pop()
                if element_b in a:
                    a.remove(element_b)
            return a

    print superList([1,2,3]) - superList([3,4])