05 2018 档案
摘要:import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置socket选项, 开启发送广播消息的功能 # 1. SOL_SOCKET:当前socket # 2. SO_BR...
阅读全文
摘要:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。 初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Po
阅读全文
摘要:1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理: 运行结果: 初始化Queue()对象时(例如:q=Queue()),若括号中没有指定最大可接收的消息数量,或数量
阅读全文
摘要:import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入数据 msg = input("\n请输入要发送的数据:") # 2. 输入对方的ip地址 dest_ip = ...
阅读全文
摘要:flist = [] # 创建了一个空列表 for i in range(3): # 循环三次 def foo(x): # 定义三次函数 print (x + i) flist.append(foo) # 把三次函数的引用放到列表中 for a in flist: # 按个遍历列表里的三个函数的引用 a(2) # 每个...
阅读全文
摘要:import socket import gevent from gevent import monkey monkey.patch_all() def cb_work(recv_num,send_num): while True: recv_data=list_client[recv_num][0].recv(1024).decode("gbk") ...
阅读全文
摘要:import re str='sfafsf,34234234234,1231313132,37132719991123463x,sdefgr54184785ds85,' \ '4864465asf86845,372526198911233456' con = re.findall(r'[\d]{17}[0-9xX]' , str) for i in con: print('身...
阅读全文
摘要:这里我们暂且先不提全局解释器锁,从这个代码例子里我们可以看出,一个锁在上锁以后,如果在没有释放它的情况下再要对它上锁,他就会阻塞住,一直到它的锁被释放了以后才能够再次被上锁,这样就实现了两个线程的交替执行。
阅读全文
摘要:这里让客户端给服务端发送的数据被服务端自动发回来 客户端: 服务端: 服务端这里不需要编码或者解码,直接回发就行
阅读全文
摘要:import socket if __name__ == '__main__': # 创建tcp服务端socket tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 立即释放端口号,重用端口 # SOL_SOCKET: 表示当前socket # SO_REUSE...
阅读全文
摘要:import socket # 和udp的区别显而易见,udp发送和接收的是一个元祖,因为udp是不建立连接的,只有得到了对方的端口和ip才能进行沟通。 # 而tcp不是,tcp发送和接受的是一个字符串,因为在进行通信前必须先建立好连接确定好了ip以及端口, # 所以不用在接受和发送的时候去特地的发送或者接受端口号和ip地址。 # 总结来说TCP有以下几点: # 面向连接(确认有创建三...
阅读全文
摘要:import turtle turtle.screensize(400, 300, "pink") turtle.setup(1000, 600) turtle.write('作者:好一朵玫瑰花 ', move = True, align = 'left', font = ('楷体', 16, 'normal')) # 设置初始位置 turtle.penup() turt...
阅读全文
摘要:from turtle import * a = Turtle() screensize(400, 300, "blue") setup(width=1300, height=650, startx=20, starty=20) a.speed(10) a.hideturtle() a.pensize(2) a.color('red', 'pink') a.up() a.goto(200, 0...
阅读全文
摘要:上一篇我们说了关于自排如果主键是0的问题,在这里我搞清楚了原因,导致这种情况是因为在SQL中对自排设置了初始值: 从这里可以看到这两个变量一个是自增的初始值,一个是增量,这里都是1,所以在设置自增的时候会把那个字段原来存在的所有0变成从1开始的步长为1的等差数列。 但是这个数值是可以被修改的(不过在
阅读全文
摘要:开始不设置主键 表的设计如下: 如果id的位置有好几个0的话:设置主键并且自动排序时,0会从1开始递增; Insert 进去 id = 0的数据,数据会从实际的行数开始增加,和从0变化不一样; 现在主键是没有0的,如果把某个id改成0的话,0不会变!直接会进行排序; 再insert一个id=0的看看
阅读全文
摘要:写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主。 # !每行命令必须以分号(;)结尾 先通过命令行进入数据库客户端 mysql -h服务端ip地址 -P(大写)服务端使用的端口,一般为3306 -p(小写) 回车之后
阅读全文
摘要:1.安装mysql客户端流程: - 登录navicat官网下载 - 将压缩包拷贝ubuntu中进行解压,解压命令:tar zxvf navicat.tar.gz - 进入解压目录,运行命令./start_navicatt - 如果试用是灰色的则进行下一步 - 删除 .navicat64/ 隐藏文件,
阅读全文
摘要:VIM - Vi IMproved 7.4 编辑器操作汇总 vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一
阅读全文
摘要:1. 快速启动终端:ctr+alt+t2. 终端字体放大: ctr+shift+'+'3. 终端字体缩小: ctr+'-'4. ls: 查看当前目录下文件信息 4.1 ls BD ABC 同时查看两个目录5. pwd: 查看目录的路径6. touch: 创建文件 6.1 touch 1.txt 2.
阅读全文
摘要:首先关于在python中单线程,多线程,多进程对cpu的利用率实测如下: 单线程,多线程,多进程测试代码使用死循环。 1)单线程: 2)多线程: 3)多进程: 查看cpu使用效率: 开始观察分别执行时候cpu的使用效率: 1)单线程执行的时候: 2)多线程执行的时候: 3)多进程执行的时候: 总结:
阅读全文
摘要:import socket import re import os import sys # 由于前面太繁琐,可以用类封装一下,也可以分几个模块 class HttpServer(object): def __init__(self,port): # 1、服务器创建负责监听的socket self.socket_watch = socket.socke...
阅读全文
摘要:import socket import re import os def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 1、服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() # 以行切割请求报文为列表 ...
阅读全文
摘要:import socket def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() print(request) # 服务器拼接响应报文并回复 ...
阅读全文
摘要:import socket def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() print(request) # 服务器拼接响应报文并回复 ...
阅读全文
摘要:import socket # 建立socket对象 socket_con = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接指定服务器地址 socket_con.connect(('www.baidu.com', 80)) # 拼接请求报文 # 请求行 request_line = 'GET / HTTP/1.1\r\n' # 请...
阅读全文
摘要:1、网络本质 进行资源共享和信息传输。 2、基于网络的应用程序的本质 就是获取数据和传输数据给用户使用。 3、TCP/IP协议栈工作流程 实体层是不属于TCP/IP协议栈的一层。也就是说TCP/IP协议栈共计四层。 首先得接入网络,局域网或者广域网,在计算机接入网络的时候,也就是插入网线的时候本地路
阅读全文
摘要:def FZZL(): print(" _ooOoo_ ") print(" o8888888o ") print(" 88 . 88 ") print(" ...
阅读全文
摘要:'''import pygame# 初始化pygame库,让计算机硬件准备pygame.init()# 窗口相关操作 # 创建窗口window = pygame.display.set_mode([窗口宽,窗口高])# 设置窗口标题pygame.display.set_caption("窗口标题")
阅读全文
摘要:rmonth = [0, 31, 29, 31, 30, 31, 30, 31,31, 30, 31, 30, 31] month = [0, 31, 28, 31, 30, 31, 30, 31,31, 30, 31, 30, 31] days = 0 def pd_days(y, m, d): global rmonth, month, days # 判断闰年 if...
阅读全文
摘要:class Animal(object): # 类对象 age = 0 # 公有类属性 __like = None # 私有类属性 def __init__(self): # 魔法方法 self.name = 'haha' # 公有实例属性 self.__sex = 'man' # 私有实例属性 def smile...
阅读全文
摘要:'''集合的方法 set1.add() set1.update() set1.copy() set1.pop() set1.remove() set1.discard() set1.clear() set1.union() set1.issubset() set1.issuperset...
阅读全文
摘要:# f.write() #字符串写入文件 # # f.writelines #将一串字符串写入文件。 该序列可以是生成字符串的任何可迭代对象,通常是字符串列表 # # f.read([size]) #默认读出文件中所有内容,可以指定size(字节) # # f.readline([size]) #默认每次读取一行,字符串中保留一个尾随的换行字符。 # # f.readl...
阅读全文
摘要:name = 'hello' for x in name: print(x) if x == 'l': break #退出for循环 else: print("==for循环过程中,如果没有break则执行==") name = 'hello' for x in name: print(x) #if x == 'l': ...
阅读全文
摘要:'''字典的方法 d1.get() d1.setdefault() d1.pop() d1.popitem() d1.copy() d1.update() d1.items() d1.keys() d1.values() d1.fromkeys() d1.clear() ''...
阅读全文
摘要:'''字符串的方法 s.index() s.rindex() s.find() s.rfind() s.count() s.replace() s.partition() s.rpartition() s.split() s.rsplit() s.splitlines() s.join() s.strip() s.lstri...
阅读全文
摘要:'''列表的方法 l.index() l.count() l.copy() l.insert() l.append() l.extend() l.pop() l.remove() l.clear() l.sort() l.reverse() ''' l = [...
阅读全文
摘要:'''元组的方法 t.index() t.count() ''' # 元组由于不可更改元组里面的数据(第一层) # 所以元组可操作的方法比较少 t = (1,) # 单个元素,为了区分,加个逗号才叫元组 t1 = (3, 4, 'hello', [2, 3, 'ppp'], 3) print(t1[2]) n1 = t1.count(3) # count(元组里面的元素)同之前的用...
阅读全文
摘要:# 函数的位置参数必须要传实参,可以按位置,也可以按关键字传 # 函数的默认参数可以不传实参,可以按位置,也可以按关键字 # 不定长参数*args只收集位置参数形成元组,不定长参数应放在后面,要不会把实参当做位置参数然后报错 # 用**,只要定义了关键字参数,以后针对这个参数传值就必须是关键字形式传递 # 关键字参数和关键字传值必须放在位置参数(实参)后面 # def add_num(li...
阅读全文
摘要:# 准备空列表 users = [] # 准备当前在线用户 online_user = {} while True: # 打印系统提示 print("欢迎使用 用户注册登录系统V2.0") print("1.登录") print("2.注册") print("3.注销登录") # 获取用户操作 command = input("请输入...
阅读全文
摘要:# 用户输入八位日期 date = input('请输入八位年月日(如20180405):') # 分割年月日 day = int(date[-2:]) month = int(date[4:6]) year = int(date[:4]) print(year, month, day) # 定义闰年开关 if year % 4 == 0 and year % 100 != 100 or yea...
阅读全文
摘要:s = input("请输入一个字符串:") if len(s) > 31: print("您输入的字符串过长,请重新输入:") else: l = len(s) print("字符串的长度:%d" % l) print(s[::-1])
阅读全文
摘要:name = input('请输入用户名:') password = input('请输入密码:') if 6 <= len(name) <= 20: print('提示:用户名符合命名规则') if password[0].isalpha(): print('提示:密码符合命名规则') else: print('错误:密码命名必须以字母开...
阅读全文
摘要:a = 'hello world' b = [] for i in a: if '%s:%s' % (i, a.count(i)) not in b: b.append('%s:%s' % (i, a.count(i))) print(b)
阅读全文
摘要:import random office = [[], [], []] teacher = ['t1', 't2', 't3', 't4', 't5', 't6', 't7', 't8'] for t in teacher: of = random.randint(0, 2) office[of].append(t) print(office) i = 0 for x in of...
阅读全文
摘要:i = 1 j = 1 while i <= 10: print('第%d个碗' % i) while j <= 10: if j == 5: break else: print('这是内循环的第%d个碗' % j) j += 1 i += 1
阅读全文
摘要:i = 1 sum = 0 while i <= 100: sum += i i += 1 print(sum)
阅读全文
摘要:i = 1 sum = 1 while i <= 100: sum *= i i += 1 print(sum)
阅读全文
摘要:一、子弹模块 二、敌人模块 三、游戏地图模块 四、我方英雄战机模块 五、飞机大战主模块
阅读全文
摘要:# 需求:类创建人的对象:初始化年龄0,让用户输入自己的年龄:1-100合法 小于1或大于100 抛出异常 # 自定义异常 -- 自定义异常类 也要继承exception class AgeError(Exception): def __init__(self): self.error_msg = 'AgeError: 年龄应该是在1-100之间!' def _...
阅读全文
摘要:# 首先了解object类实例化对象时候使用new的时候发生了什么 # class Person(): # def __init__(self): # print('这是init方法') # # # a = Person() # 不重写object的new方法不采用单例化模式的时候,则每实例化一个对象 # b = Person() # object的new...
阅读全文
摘要:# new:创建对象自动调用 # new原理:返回值,返回值对象,当前类 -- 条件满足了 init # 实例对象 -- instance class Person(object): cls_shuxing = None # 控制只做一次初始化的开关 -- 开关打开 -- 表示判断 is_First = True def __new__(cls, *args, ...
阅读全文
摘要:# 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): print('---奔驰车停车了---') # 定义宝马车类 class BMWCar(object): # 定义车的方法 def...
阅读全文
摘要:class Car(object): # 定义车的方法 def move(self): print('---车在移动---') def stop(self): print('---停车---') # 定义一个销售车的店类 class CarStore(object): def order(self): car = ...
阅读全文
摘要:# 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): print('---奔驰车停车了---') # 定义宝马车类 class BMWCar(object): # 定义车的方法 def...
阅读全文
摘要:# 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): print('---奔驰车停车了---') # 定义宝马车类 class BMWCar(object): # 定义车的方法 def...
阅读全文
摘要:class Animal(object): def eat(self): print("-----吃-----") def drink(self): print("-----喝-----") class Dog(Animal): def bark(self): print("-----汪汪叫------") ...
阅读全文
摘要:# class Test: # """文档字符串""" # name = 'scolia' # # print(Test.__doc__) # 提醒一下,函数是help(),实例也可以访问,但是子类并不会继承父类的文档字符串 # print(Test.__module__) # class Test: # """文档字符串""" # name ...
阅读全文
摘要:class People(object): country = 'china' def __init__(self,name): self.country = name def getCountry(self): # -- 实例方法 return self.country #类方法,用classmethod来进行修...
阅读全文
摘要:# class fun(): # a = 1 # 类属性 # def l(self): # a = 4 # print('a') # b = fun() # print(fun.a) # class Test(object): # name = 'scolia' # # a = Test() # Test.name = '...
阅读全文
摘要:#coding=utf-8 class base(object): def test(self): print('----base test----') class A(base): def test(self): print('----A test----') # 定义一个父类 class B(base): def test(self)...
阅读全文
摘要:# 地瓜肯定不止一个,类,创建地瓜,烤的程序都一样 # 类:初始化 和 如何烤 # 初始化:状态L::生的 烤过的时间为0 加调料:没有 -- 将来芥末,番茄酱 [] # 烤动作:0-3:生的;3-5半生不熟;5-8熟了;大于了8烤糊了 class SweetPotao(object): def __init__(self): # 状态 self....
阅读全文
摘要:# 有房子家具,把家具放到房子里面去 # 类:房子 初始化:家里地理位置,使用面积,房间剩余面积,家具列表[家具1,家具2] # 类:家具初始化:名字,占地面积 class Home(object): def __init__(self, address, area): self.address = address self.area = area ...
阅读全文
摘要:# class Dog(object): # def talk(self): # print('汪汪~~~') # print(self) # self就是对象,默认将对象传递到类方法,self不需要程序手动传递 # # erha = Dog() # talk是一个函数,是类里面的函数,只有对象能使用:对象名.函数名() # erha.talk() # p...
阅读全文
摘要:f = open('读取测试文件.txt', 'r', encoding='utf-8') n = open('读取测试文件存储文件.txt', 'w', encoding='utf-8') text = f.readlines() print(text) # 遍历所有行 for i in text: # 便利一行 for flag in range(len(i)): ...
阅读全文
摘要:# 缓冲区:cpu 一级缓存 二级缓存 三级缓存 import time f =open('2.txt','a+' ,encoding='utf-8') f.write('helloworld\n') f.write('helloworld\n') f.write('helloworld\n') f.write('helloworld\n') f.write('helloworld\n...
阅读全文
摘要:f = open('指针测试.txt','a+',encoding='utf-8') # 这里会直接创建文件,可查看a,w,r,以及分别加加号‘+’和加b的区别 # tell() 显示文件指针 print(f.tell()) # 更改文件指针的位置 seek(偏移量,whence) # 偏移量是数字
阅读全文
摘要:# 把当前文件夹的所有文件重命名为 WF .... # 把这个路径下的所有文件先查找到 -- 遍历所有文件 :有一个新的名字WF .. rename(旧,新) import os file_path = os.getcwd() list1 = os.listdir(file_path) print(list1) # 当前目录每个名字前面加'WF ' for name in list1...
阅读全文
摘要:# 1.txt,1.py 1.mp3 1.avi # 允许用户输入任何一个文件 -- 备份 # 打开源文件, 打开备份文件 -- 源文件执行读取,备份文件执行写入 -- 关闭两个文件 import os # 得到这个路径下的所有文件 file_list = os.listdir('./') print(file_list) file_name = input('请输入要备份的文件名:') i...
阅读全文
摘要:''' # os 模块 os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\' os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix' os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径 os.getenv() 获取一个环境变量,如果没有返回none os.put...
阅读全文
摘要:import time import os # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("---------------------------") print(" 学生管理系统 V1.0") print(" 1:添加学生") print(" 2:删除学...
阅读全文
摘要:Fibonacci数列,数列中第一个数为0,第二个数为1,其后的每一个数都可由前两个数相加得到: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
阅读全文
摘要:题外话:由于递归深度可控,一般写类似递归的方法时尽量使用迭代器,例如Fibonacci数列,在python高级中我会把迭代器实现Fibonacci数列的方法贴出来,而不是用递归。 递归深度尽量不去修改,用起来也会很绕。下面我贴出来如何测试出本机递归深度:
阅读全文
摘要:def test1(b): # 变量b一定是一个局部变量,就看它指向的是谁?可变还是不可变 b += b # += 是直接对b指向的空间进行修改,而不是让b指向一个新的 # b = b+b # xx = xx+yyy 先把=号右边的结果计算出来,然后让b指向这个新的地方,不管原来b指向谁 # 现在b一定指向这个新的地方 # a = [1...
阅读全文
摘要:# 总结:个人理解,引用不可变的的变量时,随着改变会指向新的地址 # 引用可变的变量时,位置不会随着变量改变而改变 a = 1 b = a print(b) a = 2 # 指向了新的内存地址 print(a) print(b) # b不会变 c = 100 d = 100 print(id(c), id(d)) a = [1, 2] b = a pri...
阅读全文
摘要:l = [{'name': 'wangfan', 'age': 18, 'sex': 'nan'}, {'name': 'wangerfan', 'age': 10, 'sex': 'nan'}, {'name': 'wangsanfan', 'age': 28, 'sex': 'nan'}, {'name': 'wangsifan&
阅读全文
摘要:import time import os # 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("---------------------------") print(" 学生管理系统 V1.0") print(" 1:添加学生") print(" 2:删除学...
阅读全文
摘要:# 定义全局变量 a = 100 print(a) # def test1(): # a = 200 # print(a) # # # def test2(): # print(a) # 虽然没有定义变量a但是依然可以获取其数据 # # 调用函数 # test1() # test2() # 如果函数内定义了,那么优先使用局部变量,没定义则使用全...
阅读全文
摘要:# 隐藏函数嵌套 f = (lambda a,b :a if a>b else b)(1000, 2000008) print((lambda a,g:a if a > g else g)(2000,f)) # lambda 推导式 l = [lambda x:x**i for i in range(4)] print(l[1](4))
阅读全文
摘要:# lambda 参数:返回值/表达式 # print((lambda :100)()) # f = lambda a,b : a + b # print(f(10, 20)) # f = lambda a,b,c=100: a + b + c # print(f(10, 20,200)) # print( (lambda *args:args)(20, 30, 40, 50) ) ...
阅读全文
摘要:def func1(): # return 值1,值2 --- return有一个作用是打断程序的运行 return 1 + 1 , 2 + 2, 3+4 num1,num2,num3 = func1() print(func1()) print(num1) print(num2) print(num3)
阅读全文
摘要:def test1(): print('Hello World') def test1(a, b, c): print('third Hello World') def test1(a, b): print('second Hello World') test1(1, 2, 3) # 函数名重复只能使用最后的那一个
阅读全文
摘要:# 输出:输出我在中国(大函数) 北京(小函数) def func_big(country): def func_small(city): print('我在%s,城市是%s' % (country, city)) func_small('北京') func_small('广州') func_big('中国') def func_big(coun...
阅读全文
摘要:def func1(name, age, sex, *args): ''' 打印姓名,年龄,性别 ''' print(name) print(age) print(sex) # func1('python', 28,sex='man','s','23') ## 工作经验:不定长参数都是放到最后 func1(name='python', age=3...
阅读全文
摘要:# *args:位置参数,收集成元组 def func1(*args): print(args) for i in args: print(i) func1('python', 28, 'man', 'meiguo') # **kwargs :收集关键字参数,合并字典 def func2(**kwargs): print(kwargs) for...
阅读全文
摘要:# 九九乘法表 i = 1 while i < 10: j = 1 while j <= i: print('%dx%d=%d' % (j, i, i*j), end='\t') j += 1 print('\n') i += 1
阅读全文
摘要:1、创建客户端socket开始进行通讯。2、这时服务端应该先启动,并在知道服务端的ip以及端口号的时候才能进行通讯。3、本地不需要绑定ip以及端口号,在用此套接字对象发送消息的时候会自动分配活动端口(1024-65535) 每次重启程序可能每次都不一样。4、然后对将要发送的信息进行编码处理,然后将编
阅读全文
摘要:1、创建服务端的socket以便开始通讯。2、绑定ip以及端口号,这样客户端才能找到这个程序。3、因为本地网卡不止一个所以尽量不写死,一般用""空来表示所有本地网卡。4、接下来开始通过绑定的ip以及端口开始监听消息,设置最大接收1024字节消息,以防文件过大,占满网络缓存区。5、收到消息之后,这时候就收到了客户端发送过来的ip以及端口,然后也可以再通过这个ip以及端口回发消息。6、收到消息的时候,...
阅读全文

浙公网安备 33010602011771号