基础
- 运算顺序:先乘除 再加减 括号最优先
- 基础类型:
- 变量
- 数值
- 字符串
- 转义字符
- %s 占位
逻辑关系
列表 [ ]
列表名 [索引号]:索引列表中的元素
#coding:utf-8d=["张三","李四","王五"]d[0] #d[0]->列表 d 中的第0个元素 “张三”
用列表名[起:止]:切片,从列表中切出相应的元素 前闭后开
#coding:utf-8c = [1,2,3,4,5,6,7]c[0:2] # 列表c中从第0个元素切到第1(2-1)个元素:切出 [1,2]c[:] # 切出全部
- 用列表名[起:止:步长]:带步长的切片,步长有方向
#coding:utf-8c = [1,2,3,4,5,6,7]c[4:0:-1] # 列表c中从第4个元素开始,反向步长为1(-1),切到第1(0--1)个元素:切出 [5,4,3,2]c[4::-1] # 列表c中从第4个元素开始,反向步长为1(-1),切到最后:切出[5,4,3,2,1]c[-2::-2] # 列表c中从倒数第2个元素开始,反向步长为2(-2),切到最后:切出[6,4,2]
- 操作
- 修改:列表名 [索引号]=新值
- 删除:del 列表名 [索引号]
- 插入:列表名.insert(插入位置索引号,新元素)
#coding:utf-8c = [1,2,3,4,5,6,7]c[3]=8 # c=[1,2,3,8,5,6,7]c.insert(3,38) # c=[1,2,3,38,8,5,6,7]del c[3] # c=[1,2,3,8,5,6,7]
元组( )
#coding:utf-8f = (1,2,3)
字典{ }
条件语句
#coding:utf-8age = input("请输入你的年龄\n")if age > 18:print "大于十八岁"elif age == 18:print "今年十八了"else:print "还未成年"
语句层次:四个空格缩进
循环语句
for 变量 in range(开始值,结束值)
#coding:utf-8for i in range(0:5):print "Hello World %s" %i # 打出4次
for 变量 in 列表名
#coding:utf-8h = ["a","b","c","d"]for i in h:print ifor j in h :print j#aabcdbabcdcabcddabcd
while 条件
#coding:utf-8x = 1y = 2while x < 5 and y < 5:x = x + 1y = y + 1print x,y#2 3,3 4, 4 5
-
函数、模块、包
函数
- def 函数名(参数表):定义函数
- 函数名(参数):使用函数
- return:函数返回值
#coding:utf-8def add(a,b):return a + bc = add(5,6)c #11
模块
模块 (module):是一个 Python 文件,以 .py 结尾,包含了Python函数等语句。 先导入,再使用,用模块.函数名调用。
#coding:utf-8import timetime.asctime() # 输出当前时间
- 包
包:包含多个模块
#coding:utf-8from PIL import Image
类、对象、面向对象编程
- 类、对象:对象是类的实例。 类是可实例化出对象的模具。对象实实在在存在,完成具体工作。
- 面向对象:程序员反复修改优化类,类实例化出对象,对象调用类里的函数执行具体的操作。
- pass:作为函数体占位
- 有父类,写(父类);没有父类,可不写或( )
- self:类里定义函数,语法规定的第一个参数
- init:在新对象实例化时会自动运行,用于给新对象赋初值
- 对象.函数名()/变量名:对象调用类里的函数/变量
- self.函数名()/变量名: 类内定义函数时,如调用自身或父类的函数/变量
访问控制
- _foo:protected 类型变量,只能允许其本身与子类进行访问,不能用于 from module import *
- __foo:private 类型变量, 只能是允许这个类本身进行访问
- foo:特列方法,类似__init()之类的
#coding:utf-8class Animals: # 无父类,可以不写()# pass # 占位def breathe(self):print "breathing"def move(self):print "moving"def eat(self):print "eating food"class Mammals(Animals): #有父类,写(父类)def breastfeed(self): # 首个参数selfprint "feeding young"class Cats(Mammals):def __init__(self,spots): # 实例化时,赋初值self.spots = spots #self.变量名,调用自身变量定义def catch_mouse(self):print "catch mouse"def left_foot_forward(self):print "left foot forward"def left_foot_backward(self):print "left foot backward"def dance(self):self.left_foot_forward()self.left_foot_backward()self.left_foot_forward()self.left_foot_backward()kitty = Cats(10) # 实例化类Cat为对象kittyprint kitty.spots # 对象.变量,调用对象变量kitty.dance() # 对象.函数(),调用相对应的函数kitty.breastfeed()kitty.move()
文件操作 import pickle
写
- 开:文件变量 = open(“文件路径文件名,”wb”)
- 存: pickle.dump(待写入变量,文件变量)
- 关:文件变量 .close()
#coding:utf-8import picklegame_data={"position":"N2 E3","pocket":["key","knife"],"money":160} # 待写入变量save_file=open("save.dat","wb") # 开pickle.dump(game_data,save_file) # 存save_file.close() # 关
读
- 开:文件变量 = open(“文件路径文件名”,”rb”)
- 取:放内容的变量 = pickle.load(文件变量)
- 关:文件变量 .close()
#coding:utf-8import pickleload_file=open("save.dat","rb") # 开load_game_data=pickle.load(load_file) # 取,赋值给变量load_file.close() #先关,然后再对变量做处理load_game_data
