
# 1 .
# '%s %d' %('a',18)
# '%(name),%(age)' %{'name':'a','age':18}
# ' {name},{age}'.format(name='a',age=18)
# 2.
# a=()
# a=[]
# a.append()
# a.insert()
# a[0]='asd'
# del a[0]
# a.remove('xxx')
# a={}
# a['name'] = xxx
# a.pop('key')
# del a['key']
# a=set()
# a.add()
# a.update()
# a.pop()
# a.remove()
# 3.
# import time
# time_s=time.time()
# time_s-=86400*2
#
# time_g=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time_s))
# print(time_g)
# 4.
# seach()
# 函数会在整个字符串内查找模式匹配,
# 只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,
# 如果字符串没有匹配,则返回None。
# match()
# 函数只检测字符串开头位置是否匹配,
# 匹配成功才会返回结果,
# 否则返回None
# 5.
# lambda 是匿名函数
# Python支持一种有趣的语法,它允许你快速定义单行的最小函数。
# 1、lambda函数比较轻便,即用即扔,很适合需要完成某一项简单功能,但是这个简单的功能只在此一处使用,连名字都很随意的情况下;
# 2、lambda是匿名函数,一般用来给filter,map,reduce这样的函数式编程服务;
# 3、作为回调函数,可以传递给某些应用,比如消息处理等
# 6.
# init 方法是用来创建实例的
# new 方法是用来创建这个类的
# 7.
# 判断是否存在字符串对应的变量及方法。
# 8.
# 浅copy 只拷贝第一层,深copy 是整个都拷贝一份
# 9.
# print([2**i for i in range(2,8) if i !=3])
# 10.
# random.random() 0 - 1 之间的浮点数
# 11.
# 经典类是深度优先
# 新式类是广度优先
# 12.
# 在被装饰函数之前执行
# 13.
# 并发:在一个时间段,处理多个任务,单核也可以并发(CPU分时间片);
# 并行:在同一个时刻,处理多个任务,必须多核才能并行;
# 14.
# Event
# wait() 阻塞,等待标志位被设置
# clear() 清除标志位
# set() 设置标志位
# 15.
# TCP(transport control protocol,传输控制协议)
# 是面向连接的,面向流的,
# 提供高可靠性服务。
# 收发两端(客户端和服务器端)
# 都要有一一成对的socket,
# 因此,发送端为了将多个发往接收端的包,
# 更有效的发到对方,使用了优化方法(Nagle算法),
# 将多次间隔较小且数据量小的数据,
# 合并成一个大的数据块,然后进行封包。
# 首先检查要发送的文件的大小,
# 再通过struct模块把要发送文件的大小,
# 变成固定4个字节的长度发送过去,
# 接收端循环接收1024字节
# 再把文件大小减去接收到的字节大小,
# 判断文件大小大于1024 就接收1024,
# 小于1024,就接收当前文件大小
# 16.
# 通俗理解一个运行的程序或者软件,进程是操作系统资源分配的基本单位
# 17.
# 线程是真正干活的,线程是操作系统中最小的调度单位
# 18.
# 队列 = 管道 + 锁
# 双向通信
# 数据不安全,
# 19.
# def warpper(func):
# def inner(*args,**kwargs):
# import time
# start=time.time()
# ret=func(*args,**kwargs)
# print(time.time()-start)
# return ret
# return inner
# 20.
# def f(x,l=[]):
# for i in range(x):
# append(i*i)
# print(l)
# f(2) # 0 ,1
# f(3,[3,2,1]) # 3,2,1,0,1,4
# f(3) # 0,1,0,1,4
# 21.
# for i in range(1,10):
# for j in range(1,10):
# print('%s*%s'%(i,j))
# 22.
# GIL确保了python每时每刻只允许一个线程执行,
# 致使Python的多线程程序并不能利用多核CPU的优势。
# 23.
# class A:
# __a_obj=None
# def __init__(self,name):
# self.name=name
#
#
# def __new__(cls, *args, **kwargs):
# if cls.__a_obj:
# return cls.__a_obj
# cls.__a_obj=object.__new__(cls)
# return cls.__a_obj
# a=A('tang')
# b=A('hao')
# print(a.name)
# print(b.name)