05 2018 档案
摘要:ftp_client文件夹下的ftp_client.py: ftp server文件夹下的: 1 bin文件夹下ftp_server。py:bin作为启动文件夹 2 conf文件夹下settings.py:conf作为配置文件夹 3 core文件夹下:3.1 main.py: core文件夹下:3.
阅读全文
摘要:#(venv) C:\Users\hound\PycharmProjects\test>cd ftp server #(venv) C:\Users\hound\PycharmProjects\test\ftp server>cd bin ftpserver页面:
阅读全文
摘要:服务端:当无端端口有问题时,改个端口 客户端: 客户端1与客户端代码相同,
阅读全文
摘要:# 错误:语法错误,少了些啥导致的错误不按照语言规定, #逻辑错误:#IndentationError;语法错误#IndexError:索引超出边界#NameError:变量没有名字#SyntaxError:代码错误#异常是由错误触发的age=input('>>>')if age.isdigit()
阅读全文
摘要:#多态:指出了对象通过共同的属性和动作来操作即访问们不需要考虑他们具体的类 #类就相当于工厂,产生一个个的实例 #不同的对象调用相同的方法,多态是继承的一种体现方式 #斐波那契数列,1 1 2 3 5 8.。。前2个数的和 class Fib: def __init__(self): self._a=1 self._b=1 def __iter__...
阅读全文
摘要:#当父类名改动时,显然需要改动内容巨大,所以用super方法 #super()代替了父类名,也不需要传递参数self,父类名可以随意改动不影响 class Vehichle1: Country='china' #名字='ales'不好这样 def __init__(self,name,speed,load,power): self.name=name ...
阅读全文
摘要:#子类调用父类的方法 class Vehichle: Country='china' #名字='ales'不好这样 def __init__(self,name,speed,load,power): self.name=name self.speed=speed self.load=load self.pow...
阅读全文
摘要:#深度优先和广度优先 #新式类基本都是广度优先 class A:#如果没有具体继承类默认继承类是object def test(self): print('A') class B(A): pass # def test(self): # print('B') class C(A): pass # def test(self):...
阅读全文
摘要:#接口继承:导入 abc、metaclass=abc.ABCMeta、@abc.abstractmethod # 1 父类只定义方法不需要具体实现 #2 子类必须实现父类所有规定的方法,具体实现 # 有了类,实例化就可以实现 import abc#导入接口模块 class All_file(metaclass=abc.ABCMeta):#加上这个句子 #metaclass=abc.ABC...
阅读全文
摘要:#继承,()里加上一个父类名 #子类继承了父类的所有属性 class Dad: money=10#遗产 def __init__(self,name):#一旦实例化就会出发这个方法的执行 print('父类') self.name=name def hitson(self): print('%s正在打儿子'%self.na...
阅读全文
摘要:class Room: tag=1 # def __init__(self,name,width,owner):#self表示对象,可以大家用的如p1 # self.name=name # self.owner=owner # self.width=width @classmethod#调用类方法类
阅读全文
摘要:类方法classmethod,cls#静态属性@property和静态方法self #静态属性就是数据属性 class Room: tag=1 # def __init__(self,name,width,owner):#self表示对象,可以大家用的如p1 # self.name=name # self.owner=owner # ...
阅读全文
摘要:#静态属性@property和静态方法 #静态属性就是数据属性 class Room: def __init__(self,name,width,owner):#self表示对象,可以大家用的如p1 self.name=name self.owner=owner self.width=width @property#属性 d...
阅读全文
摘要:class Chinese: country='china' def __init__(self,name): self.name=name def playball(self,ball): print('%s正在打%s'%(self.name,ball))name1=input('>>>')#输入
阅读全文
摘要:实例化:类名加上小括号就是实例化 python中声明类和函数相似,class 类名类是用来描述一类事物,类的对象指的是这一类事物的一个个体属性:1 数据属性 就是变量 2 函数属性,就是函数 #类名加上小括号就是实例化 #print(Chinese.__dict__)#产看类的属性字典 # #新式类:括号里是其父类,可以用来表示继承 # class chinese(object): # ...
阅读全文
摘要:def school(name,addr,type): # school={#这样就写死了,不好 # 'name':'三小', # 'addr':'沙河', # 'type':'私立', # } def kaoshi(school): print('%s学校正在考试'%school['name']) ...
阅读全文
摘要:三大编程范式:1.面向过程编程 2.函数式编程 3.面向对象编程特征和动作何在一起就是一个类,如def dog()这就是一个类对象是由类产生的具体的存在。如d1=dog(.....), d2=deog(...) # name='刘德华' # sex='母' # type='哈士奇' #动作 def dog(name,sex,type): ...
阅读全文
摘要:##元字符:.^$*+?{}[]|()\在re中最重要的就是元字符与findall配合使用 # re模块(就是正则表示式模块)主要功能就是做匹配 #正则表达式(re)是一种小型的高度专业化的编程语言, #例子:12345665、4563111、4565778、可以通过123.。。6+*正则匹配 import re #元字符:.^$*+?{}[]|()\ res=re.findall('\d+...
阅读全文
摘要:#xml是实现不同语言或程序之间交换的协议 # import xml.etree.ElementTree as ET # # tree=ET.parse("fee")#parse是解析fee。xml文件 # root=tree.getroot()#拿到根节点 # print(root.tag)#输出确认一下 #遍历xml文档 # for i in root: # # print(i.ta...
阅读全文
摘要:import pickle#序列化dic={'name':'afs'}print(type(dic))#<class 'dict'>j=pickle.dumps(dic)#pickle处理成字节print(type(j))#<class 'bytes'>字节
阅读全文
摘要:#json数据交换,,跨语言的数据交换。先进行json处理加上’‘变成字符串 # json.dumps封装成str,json.loads取出来 # pickle是python内部数据交换语言 # dic='{"name":"cay"}'写 # f=open('dog.txt','w') # f.write(dic) # fread=open("dog.txt",'r')读 # data=f...
阅读全文
摘要:实验 一、 xss跨站脚本实验 XSS全称(cross site scripting)跨站脚本攻击,是web程序最常见的漏洞。指攻击者在网页嵌入客户端脚本如javascript,当用户浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取cookkie,导航到恶意网站等,主要原因就
阅读全文
摘要:#随机模块。random随机数 import random print(random.random())#打印随机数,0-1 print(random.randint(1,3))#打印1和3之间的数 print(random.randrange(1,4))#1-4 print(random.choice([1,2,3,4]))#选一个 print(random.sample([1,2,3,4],...
阅读全文
摘要:import time#直接import time导入的是内置模块而不是自己建立的模块 #时间戳-->struct模块得出年月日 print(time.time())#1525854672.2897966秒, # 浮点型数据从1970年1月1日0点开始计算,这就是一个时间戳 print(time.localtime())#结构化的时间struct_time(tm_year=2018, tm_mo...
阅读全文
摘要:txt解释模块 功能函数模块cal.py 执行函数模块bin.py main模块main.py
阅读全文
摘要:def fecth(data): print('\033[1:43m这是查询\033[0m') print('用户数据是',data) backdata='backend %s'%data with open('dog.txt','r')as read: for readline in read: if readline.strip()...
阅读全文
摘要:def renzheng(func):#高阶函数传的是函数名func作为参数 def wrapper(*args,**kwargs): username=input('用户名:').strip() passwd=input('密码:').strip() if username=='qwe' and passwd=='123': ...
阅读全文
摘要:#装饰器的架子 # @timer 就相当于 test=timer(test0 import time def timer(func): def wrapper(): starttime=time.time() func()#就是在运行test() stoptime=time.time() print('运行时间%s'%(s...
阅读全文
摘要:层级嵌套函数就是闭包,包就是一层的意思,闭就是封装的意思封装的变量 #函数嵌套 def father(name): print('from father %s' %name)#函数值传递方式,参数,函数。。 def son(): print('from son') print(locals()) father('dog') def father(nam...
阅读全文
摘要:# #高阶函数 # # 1 函数接受的参数是一个函数名 # # 2 函数的返回值是一个函数名 # # 满足上述条件的任意一个,都可称为高阶函数 # import time # def foo(): # time.sleep(3)#睡了3秒以延长函数运行时间,方便查看 # print('你好啊,cat') # def test(func): # # starttime=ti...
阅读全文
摘要:# #列表变成迭代器 # s=[1,2] # s.__iter__() # #iter(s) #装饰器: 本质就是函数,功能为其他函数添加附加功能 #原则: #1 不修改被修饰函数的源代码 #2 不修改本装饰函数的 #下面函数就是本函数,但需要附加新的功能 #装饰器=高阶函数+函数嵌套+闭包 imp
阅读全文
摘要:生产者和消费者模型,同时此函数就是单线程执行并发操处理的过程import time def consume(name): print('我是%s,我准备开始吃包子了'%name) while True: baozi=yield#函数当中有yield就是生成器函数 time.sleep(1) print('%s开心的吃了包子【%s】'...
阅读全文
摘要:#生成器 并发处理其实就是函数的切换 #yield 相当于return控制的是函数的返回值 #x=yield接受send传过来的值付给x def test(): print('开始了') first=yield 1# return 1,yield接受一个值传给first=None,没有1的时候返回的是none print('第一次',first)#first值是那一句话...
阅读全文
摘要:def population(): ret = [] with open('test.py', 'r', encoding='utf-8') as f: for i in f: ret.append() return ret g = population() print(g._next_())
阅读全文
摘要:s = (i for i in range(10)) print(s) # at 0x0000028C206AB0F8>生成器对象 #生成器函数必须要有yield def test(): yield 1 yield 2 yield 3 res=test() print(res) print(res.__next__())#生成器必须要有next方法才能正确产生输出...
阅读全文
摘要:迭代器s=['dog','cat'] res=s.__iter__() print(res.__next__()) print(res.__next__()) 迭代器就是_iter_(),laomuji=('鸡蛋%s'%i for i in range(10))#生成器表达式不需要再调用iter res=['鸡蛋%s'%i for i in range(10)]#列表解析把【】换掉就是生成器表...
阅读全文