Python

基础

  • 运算顺序:先乘除 再加减 括号最优先
  • 基础类型:
    • 变量
    • 数值
    • 字符串
    • 转义字符
    • %s 占位
  • 逻辑关系

    • == 等于
    • ! = 不等于
    • 大于

    • = 大于等于

    • < 小于
    • <= 小于等于
    • and 与
    • or 或

      类型

      1. #coding:utf-8
      2. #上面的编码,防止中文出错
      3. a = 100 #a->变量 100->数值
      4. b = "Hello World" #"Hello World"->字符串
      5. print point = %s \n \” %s \” % (a, b) # \n->转义字符(回车) %s->占位符
  • 列表 [ ]

    • 列表名 [索引号]:索引列表中的元素

      1. #coding:utf-8
      2. d=["张三","李四","王五"]
      3. d[0] #d[0]->列表 d 中的第0个元素 “张三”
    • 用列表名[起:止]:切片,从列表中切出相应的元素 前闭后开

  1. #coding:utf-8
  2. c = [1,2,3,4,5,6,7]
  3. c[0:2] # 列表c中从第0个元素切到第1(2-1)个元素:切出 [1,2]
  4. c[:] # 切出全部
  • 用列表名[起:止:步长]:带步长的切片,步长有方向
  1. #coding:utf-8
  2. c = [1,2,3,4,5,6,7]
  3. c[4:0:-1] # 列表c中从第4个元素开始,反向步长为1(-1),切到第1(0--1)个元素:切出 [5,4,3,2]
  4. c[4::-1] # 列表c中从第4个元素开始,反向步长为1(-1),切到最后:切出[5,4,3,2,1]
  5. c[-2::-2] # 列表c中从倒数第2个元素开始,反向步长为2(-2),切到最后:切出[6,4,2]
  • 操作
    • 修改:列表名 [索引号]=新值
    • 删除:del 列表名 [索引号]
    • 插入:列表名.insert(插入位置索引号,新元素)
      1. #coding:utf-8
      2. c = [1,2,3,4,5,6,7]
      3. c[3]=8 # c=[1,2,3,8,5,6,7]
      4. c.insert(3,38) # c=[1,2,3,38,8,5,6,7]
      5. del c[3] # c=[1,2,3,8,5,6,7]
  • 元组( )

    1. #coding:utf-8
    2. f = (1,2,3)
  • 字典{ }

    • 字典名[键]:索引字典中的值
    • 操作
      • 修改:字典名[键]=新值
      • 删除:del 字典名[键]
      • 插入:字典名[新键] = 新值
        1. #coding:utf-8
        2. dic={1:"123","name":"zhangsan","height":180}
        3. dic["name"] # 输出zhangsan
        4. deL dic["name"] # dic={1:"123","height":180}
        5. dic["name"] = "lisi" # dic={1:"123","name":"lisi","height":180}

        语句

  • 条件语句

    1. #coding:utf-8
    2. age = input("请输入你的年龄\n")
    3. if age > 18:
    4. print "大于十八岁"
    5. elif age == 18:
    6. print "今年十八了"
    7. else
    8. print "还未成年"
  • 语句层次:四个空格缩进

  • 循环语句

    • for 变量 in range(开始值,结束值)

      1. #coding:utf-8
      2. for i in range(0:5):
      3. print "Hello World %s" %i # 打出4次
    • for 变量 in 列表名

      1. #coding:utf-8
      2. h = ["a","b","c","d"]
      3. for i in h:
      4. print i
      5. for j in h :
      6. print j
      7. #aabcdbabcdcabcddabcd
    • while 条件

      1. #coding:utf-8
      2. x = 1
      3. y = 2
      4. while x < 5 and y < 5:
      5. x = x + 1
      6. y = y + 1
      7. print x,y
      8. #2 3,3 4, 4 5
    • break:终止循环

      函数、模块、包

  • 函数

    • def 函数名(参数表):定义函数
    • 函数名(参数):使用函数
    • return:函数返回值
      1. #coding:utf-8
      2. def add(a,b):
      3. return a + b
      4. c = add(5,6)
      5. c #11
  • 模块

模块 (module):是一个 Python 文件,以 .py 结尾,包含了Python函数等语句。 先导入,再使用,用模块.函数名调用。

  1. #coding:utf-8
  2. import time
  3. time.asctime() # 输出当前时间

包:包含多个模块

  1. #coding:utf-8
  2. from PIL import Image

类、对象、面向对象编程

  • 类、对象:对象是类的实例。 类是可实例化出对象的模具。对象实实在在存在,完成具体工作。
  • 面向对象:程序员反复修改优化类,类实例化出对象,对象调用类里的函数执行具体的操作。
  • pass:作为函数体占位
  • 有父类,写(父类);没有父类,可不写或( )
  • self:类里定义函数,语法规定的第一个参数
  • init:在新对象实例化时会自动运行,用于给新对象赋初值
  • 对象.函数名()/变量名:对象调用类里的函数/变量
  • self.函数名()/变量名: 类内定义函数时,如调用自身或父类的函数/变量
  • 访问控制

    • _foo:protected 类型变量,只能允许其本身与子类进行访问,不能用于 from module import *
    • __foo:private 类型变量, 只能是允许这个类本身进行访问
    • foo:特列方法,类似__init()之类的
      1. #coding:utf-8
      2. class Animals: # 无父类,可以不写()
      3. # pass # 占位
      4. def breathe(self):
      5. print "breathing"
      6. def move(self):
      7. print "moving"
      8. def eat(self):
      9. print "eating food"
      10. class Mammals(Animals): #有父类,写(父类)
      11. def breastfeed(self): # 首个参数self
      12. print "feeding young"
      13. class Cats(Mammals):
      14. def __init__(self,spots): # 实例化时,赋初值
      15. self.spots = spots #self.变量名,调用自身变量定义
      16. def catch_mouse(self):
      17. print "catch mouse"
      18. def left_foot_forward(self):
      19. print "left foot forward"
      20. def left_foot_backward(self):
      21. print "left foot backward"
      22. def dance(self):
      23. self.left_foot_forward()
      24. self.left_foot_backward()
      25. self.left_foot_forward()
      26. self.left_foot_backward()
      27. kitty = Cats(10) # 实例化类Cat为对象kitty
      28. print kitty.spots # 对象.变量,调用对象变量
      29. kitty.dance() # 对象.函数(),调用相对应的函数
      30. kitty.breastfeed()
      31. kitty.move()

      文件操作 import pickle

    • 开:文件变量 = open(“文件路径文件名,”wb”)
    • 存: pickle.dump(待写入变量,文件变量)
    • 关:文件变量 .close()
      1. #coding:utf-8
      2. import pickle
      3. game_data={"position":"N2 E3","pocket":["key","knife"],"money":160} # 待写入变量
      4. save_file=open("save.dat","wb") # 开
      5. pickle.dump(game_data,save_file) # 存
      6. save_file.close() # 关
    • 开:文件变量 = open(“文件路径文件名”,”rb”)
    • 取:放内容的变量 = pickle.load(文件变量)
    • 关:文件变量 .close()
      1. #coding:utf-8
      2. import pickle
      3. load_file=open("save.dat","rb") # 开
      4. load_game_data=pickle.load(load_file) # 取,赋值给变量
      5. load_file.close() #先关,然后再对变量做处理
      6. load_game_data