Python学习总结

来源:互联网 发布:sql注入是什么意思 编辑:程序博客网 时间:2024/05/12 16:49
Python中空白符是有意义的,当代码处于同一缩进时,形成代码块
语句结束没有分号

基础部分
1. 变量不需要声明类型
2. 字符串
‘abc’ 或者 " abc"
‘’':可以含有回车,’,",的字符串
字符串占位符:k = ”a%s%s”=>拼接:k % 1//只有一个%s
                                                             k % (1,2)//有两个%s
                         k = “a%02x”=>拼接:十六进制数字
’a’ * 3 = ‘aaa'
3.数组
[xx,xx]
3.1用下标访问[2],从0索引
                  [2 : 5] 区间
3.2可以混合各种类型(数字,字符串。。。)
3.3添加元素:某个list.append(xx)
3.4删除元素:del 某个list[2]
3.5链接两个数组:list1 + list2
     list1 * 3 = list1 + list1 + list1
3.6遍历: for i in list1: print(i);
4.元组
(xx,xx)一旦定以后不能更改
5.map
5.1{key1 : val1, key2 : val2}
5.2删除:del map1[key1]
5.3添加:map[key3] = val3
5.4不能 map1+map2
5.5遍历:for key in map1.keys():
               key1 = key
               val1 = map1[key]
5.6map1.clear() //清空map内容
     del map1 //删除整个map
5.7map1.keys()/.values()
6.turtle库,用于绘图
import turtle
t = turtle.Pen()
t.forward(10)//向前
t.left(90)//向右转
t.right(90)
t.up()//拿起
t.down()//放下
t.circle()
6.1填充颜色
t.color(1,0,0)//r g b
t.begin_fill()
画图
t.end_fill()
7. if…else
7.1 if 条件:
          语句//有个冒号
7.2 if 条件:
          语句
      else:
          语句
7.3 if 条件:
          语句
      elif 条件:
          语句//else if
7.4条件中可以用or 或者and 连接not
8.空值:None
9.int(’10’) => 10
float(’10.1’) => 10.1
10.循环
10.1 for x in range(0,5) :
10.2 list,map的遍历
10.3 while i < 100 : 
10.4 break/continue/True/False
11.range代表范围
print(list(range(10,20)))
将10-19的数字转换成list,打印出来
12.注释#
13. Tkinter
from Tinter import *
tk = Tk()
13.1     btn = Button(tk, text = “click”, command = hello)//定义一个函数hello
            btn.pack()
13.2     canvas = Canvas(tk, width = 500, height = 500)
            canvas.pack()
在这之后画线: canvas.create_line(0, 0, 500, 500)
画矩形:canvas.create_rectangle(10,10, 50, 50) or (10,10, 50, 50, fill = ‘red’) or fill = ‘#ffdd00'
调色板:c = colorchooser.askcolor()
画弧线:canvas.create_arc(10, 10, 200, 100, extent = 180, style = ARC)
画多边形:canvas.create_polygon(10, 10, 100, 10, 100, 100, fill = “”, online = “black”)
显示文字:canvas.create_text(150, 100, text = ‘123’, fill=‘red’)//起点,文字
显示图片:img = PhotoImage(file = “c:\\test.gif”)
                  canvas.create_image(0, 0, anchor = NW, image = img)
动画:
tri = canvas.create_polygon(10, 10, 100, 10, 100, 100, fill = “”, online = “black”)
for x in range(0, 60):
        canvas.move(tri, 5, 0)
        tk.update()
        time.sleep(0.05)
处理事件:
事件处理函数 def move(event):
                              canvas.move(tri, 5, 0)//event.keysym == ‘Up’...检查按键类型tri是ID
canvas.bind_all(‘<Key-Return>’, move)



提高部分
1. 函数
定义  def fun(param1, p2, p3):
               内容
调用  fun(p1,p2,p3)
2. 模块
import 模块名字
form 模块名字 import * : 不需要在函数前加上模块名字.函数名
sys, time
3.类,对象
class Base:
     pass//该类没有更多信息了
3.1 继承
class Derived(Base):
     pass
3.2 对象
d = Derived()
3.3 函数成员
class Derived(Base):
     def f1(self):
          内容
d.f1()
要调用同一个类中或者父类中的其他函数,使用self作参数,同时调用时仍然没有参数
def f1(self):
     self.f2()
d.f1()
3.4 初始化参数
构造函数__init__(self, p1, p2):
     内容
可以通过self.p1 = p1 赋值,Derived中不需要有p1
ps一定要有self, 否则会报错 “Type Error: takes 0 positional arguments but 1 was given”

库函数
1.输出  print()
2.输入 input() / sys.stdin.readline()
3. abs()
4.转型:bool(), int(), float()
//0=>False
//None=>False
//[]=>False
//“”=>False
5. len() =>对list, map, string
6. max(), min()
返回list,元组中的最大,最小值。也可以返回用,隔开的字符串中的最大最小值(“a,v,b")
也可以直接将数字用,隔开作为参数传入(a,b,c)
7.sum() 列表中元素想家
8. range(0,5) 返回一个迭代器,可以重复一个动作很多次
range(开始,结束, 步长)
开始不一定要>结束
9. dir()
dir(list, int, string, map)=>可以对某个类型使用的函数列表,__Fun__Python自己调用的函数
10. help(fun)//不加()
返回函数怎么用
11. eval() 将字符串作为参数并且返回它作为表达式的结果
eval(’10 * 5’)
eval(‘print(“123”)')
但不能运算拆分成多行的表达式
12. exec() 和eval类似,可以将多行字符串作为参数,一般可以从另外一个文件中读取Python代码,再运行
eval()返回一个值,exec()不返回
13. 库copy
a = copy.copy(b) 浅拷贝
copy.deepcopy(b) 深拷贝
14. 库random
random.randint(start, end)
random.choice(list) 从列表中随机取出一个数
random.shuffle(list) 洗牌
15. 库sys
sys.exit() 退出shell程序
sys.stdin.readline()
sys.stdin.readline(读入字数)
sys.stdout.write()
sys.version 版本
16. 库time
time.time() 秒数
time.asctime()可读的方式返回日期时间
time.asctime((年,月,日,时,分,秒,周几,一年中的第几天,是否为夏令时间))最后可以两个为0,返回可读的日期时间
time.localtime()返回time对象,含有日期时间
time.sleep(秒数)
17. 库types
包含了各种类型,用于type(?)的检查
type(1) is types.IntType
18. 库re 正则表达式
re.match(正则表达式, 字符串,[flag]) 从头匹配
re.search(正则表达式, 字符串,[flag]) 任意匹配
pattern = re.compile(正则表达式)
pattern.search/match(字符串)
re.split(正则表达式, 字符串,[flag]) 用正则表达式分割字符串
re.findall(正则表达式, 字符串,[flag]) 返回所有合法的子串列表
re.escape(字符串) 转义
19. 库gc
gc.collect() 强制启动垃圾回收: 将所有可达的设为reachable, 最后删除unreachable的
gc.enable/disable() 强制启动垃圾回收
gc.collect() 强制启动垃圾回收
20. getattr(对象, ”函数/属性”) 返回某个对象的方法或者属性

文件操作
1.打开 file = open(“c;\\test.txt")
2.读取 text = file.read()
3.写入 file = open(“c;\\test.txt”, ”w”) //write
           file.write(“...")
4.关闭 file.close()
5. 库os
  • os.listdir() 返回所有文件和目录名
  • os.remove() 删除文件
  • os.removedirs() 删除目录
  • os.path.isfile()/isdir()/exists()/isabs() 是否是一个文件/目录/存在/是否是绝对目录
  • os.path.split() 返回目录,文件名
  • os.path.dirname()/basename()
  • os.system() 运行shell命令
  • os.makedirs() 创建目录
  • os.mkir() 在当前path中创建目录
  • os.exit() 终止进程
  • os.rename()
6. 库shutil
  • shutil.copyfile() 文件
  • shutil.copy() 目录
  • shutil.move()
  • shutil.rmtree() 删除目录
6. 库pickle 将python对象转换成可以读写到文件中的形式=>序列化
  • pickle.dump(data, file)
  • data = pickle.load(file)
0 0