03 2020 档案

摘要:filter函数会将经过函数过滤后的结果返回 map函数会将计算结果返回 1 from functools import reduce 2 3 l = [2, 3, 4, 5, 6, 7, 8, 9, 10] 4 s = ['ss', '你好', 'hello'] 5 6 7 def test(x) 阅读全文
posted @ 2020-03-25 19:07 竹石2020 阅读(132) 评论(0) 推荐(0) 编辑
摘要:服务端代码: 1 from socket import * 2 import os, hmac 3 4 secret_key = b'hello world' 5 6 7 def coon_handle(coon): 8 '''判断是否为合法客户端''' 9 num = os.urandom(32) 阅读全文
posted @ 2020-03-25 18:05 竹石2020 阅读(223) 评论(0) 推荐(0) 编辑
摘要:客户端 1 import socketserver 2 3 4 class MyServer(socketserver.BaseRequestHandler): # 该类主要用来处理通信循环 5 # self.request为(data,self.socket) self.addr为client_a 阅读全文
posted @ 2020-03-25 13:24 竹石2020 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1 import socketserver 2 3 4 class MyServer(socketserver.BaseRequestHandler): # 该类主要用来处理通信循环 5 def handle(self): 6 print(self.request) 7 print(self.cli 阅读全文
posted @ 2020-03-24 18:59 竹石2020 阅读(301) 评论(0) 推荐(0) 编辑
摘要:复习用tcp协议进行远程运行终端。 服务端代码: 1 from socket import * 2 import struct 3 import subprocess 4 tcp_server = socket(AF_INET,SOCK_STREAM) 5 tcp_server.setsockopt 阅读全文
posted @ 2020-03-21 20:42 竹石2020 阅读(199) 评论(0) 推荐(0) 编辑
摘要:用tcp协议进行远程控制;服务端代码: 解决粘包方法一: 1 from socket import * 2 import subprocess 3 4 tcp_server = socket(AF_INET, SOCK_STREAM) 5 tcp_server.bind(('127.0.0.1', 阅读全文
posted @ 2020-03-20 22:43 竹石2020 阅读(210) 评论(0) 推荐(0) 编辑
摘要:客户端 1 from socket import * 2 3 tcp_server = socket(AF_INET, SOCK_STREAM) 4 tcp_server.bind(('127.0.0.1', 8080)) 5 tcp_server.listen(124) 6 coon, addr 阅读全文
posted @ 2020-03-19 23:50 竹石2020 阅读(141) 评论(0) 推荐(0) 编辑
摘要:粘包现象就是设置的接受大小过小,导致一次接受没有完,导致缓冲区还有未接受完的信息,导致下一次的接受会出现接收到上一次的信息。 这就是粘包现象 udp不会出现粘包,tcp会出现粘包 粘包可以通过设置接受字节的长度进行解除 udp远程控制的代码,服务端: 1 from socket import * 2 阅读全文
posted @ 2020-03-19 22:52 竹石2020 阅读(250) 评论(0) 推荐(0) 编辑
摘要:远程控制服务端: 1 from socket import * 2 import subprocess 3 4 tcp_server = socket(AF_INET, SOCK_STREAM) 5 tcp_server.bind(('127.0.0.1', 8080)) 6 tcp_server. 阅读全文
posted @ 2020-03-19 20:50 竹石2020 阅读(768) 评论(0) 推荐(0) 编辑
摘要:服务端 代码: 1 from socket import * 2 3 udp_server = socket(AF_INET,SOCK_DGRAM) # 数据报式套接字 4 udp_server.bind(('127.0.0.1',8080)) 5 while True: 6 data = udp_ 阅读全文
posted @ 2020-03-19 15:50 竹石2020 阅读(260) 评论(0) 推荐(0) 编辑
摘要:堆栈 相当于先进后出 俗话吃了吐 队列相当于先进先出 吃了拉 1 from socket import * 2 3 tcp_server = socket(AF_INET, SOCK_STREAM) 4 tcp_server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 阅读全文
posted @ 2020-03-19 13:55 竹石2020 阅读(188) 评论(0) 推荐(0) 编辑
摘要:系统缓存就相当于内核态内存,就是图中的小箱子代码: 1 from socket import * 2 3 tcp_server = socket(AF_INET, SOCK_STREAM) 4 tcp_server.bind(('127.0.0.1', 8080)) 5 tcp_server.lis 阅读全文
posted @ 2020-03-19 11:35 竹石2020 阅读(825) 评论(0) 推荐(0) 编辑
摘要:服务端: 1 # import socket 2 # 3 # tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 4 # tcp_server.bind(('127.0.0.1', 8888)) 5 # tcp_server. 阅读全文
posted @ 2020-03-19 11:28 竹石2020 阅读(447) 评论(0) 推荐(0) 编辑
摘要:FIN_WAIT_1 表示主动断开连接的请求 FIN_WAIT_2 表示被动断开连接 TIME_WAIT 表示马上就要断开连接 阅读全文
posted @ 2020-03-19 10:36 竹石2020 阅读(175) 评论(0) 推荐(0) 编辑
摘要:客户端 阅读全文
posted @ 2020-03-18 22:45 竹石2020 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-18 22:42 竹石2020 阅读(180) 评论(0) 推荐(0) 编辑
摘要:tcp协议人称好人协议,无论是谁发过来的请求,它都会回应 洪水攻击 backlog 半链接池 1 import socket 2 3 phone = socket.socket(socket.AF_INET, 4 socket.SOCK_STREAM) # socket.AF_INET代表网络通信, 阅读全文
posted @ 2020-03-18 21:52 竹石2020 阅读(127) 评论(0) 推荐(0) 编辑
摘要:服务端 例子: 1 import socket 2 3 phone = socket.socket(socket.AF_INET, 4 socket.SOCK_STREAM) # socket.AF_INET代表网络通信,socket.SOCKET_STREAM代表基于tcp协议 相当于买了一个手机 阅读全文
posted @ 2020-03-18 18:43 竹石2020 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-18 17:42 竹石2020 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1是物理层:双绞线、光纤、无线电 发射高低信号,也就是一堆二进制 2是链路层:进行数据包的分组,数据包就有意义了。以太网协议报头和数据部分。理论上全世界的计算机都可以借助以太网协议(ethernet)进行通信,相当于全世界在一个局域网当中 3是网络层:ip协议,用来找到网络地址(例外一个局域网),相 阅读全文
posted @ 2020-03-18 17:24 竹石2020 阅读(164) 评论(0) 推荐(0) 编辑
摘要:如果不在一个网段内,首先计算发现不在一个网段内,那么就需要经过网关去转发出去。 第一步先获取网关的mac地址 网关收到后会返回自己的mac地址给pc1. 第二步基于以太网去发包这个包到达pc3这个网关这里之后,也是通过广播的方式吼一嗓子,只有pc3收到了 然后pc3,继续以相同的方式给pc1发包。 阅读全文
posted @ 2020-03-18 16:36 竹石2020 阅读(87) 评论(0) 推荐(0) 编辑
摘要:osi(open system internetwork reference model)七层协议为 :应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 链路层 主要以以太网协议 包括两个部分header和data两个部分 head部分共18个字节 发送者\原地址(mac) 48位二进制也 阅读全文
posted @ 2020-03-18 13:29 竹石2020 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1 try: 2 age = input('请输入年龄') 3 int(age) 4 num2 = input('请输入') 5 int(num2) 6 l = list() 7 l[100] 8 except KeyError as e: 9 print(e) 10 except ValueErr 阅读全文
posted @ 2020-03-17 22:46 竹石2020 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一切的类都是通过type这个类来创建的,例如: 1 class Foo: 2 a = 1 3 pass 4 5 6 print(type(Foo)) 7 print(Foo.__dict__) 8 9 10 def __init__(self, name, age): 11 self.name = 阅读全文
posted @ 2020-03-16 21:05 竹石2020 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1 class Goods: 2 def __init__(self,price,discount): 3 self.price = price 4 self.discount = discount 5 6 @property 7 def price1(self): 8 return self.pr 阅读全文
posted @ 2020-03-16 15:40 竹石2020 阅读(130) 评论(0) 推荐(0) 编辑
摘要:1 class property2: 2 def __init__(self, func): 3 print('执行property2') 4 self.func = func 5 6 def __get__(self, instance, owner): 7 print('执行get') 8 se 阅读全文
posted @ 2020-03-16 15:29 竹石2020 阅读(180) 评论(0) 推荐(0) 编辑
摘要:1 class property2: 2 def __init__(self, func): 3 print('执行property2') 4 self.func = func 5 6 def __get__(self, instance, owner): 7 return self.func(in 阅读全文
posted @ 2020-03-16 12:19 竹石2020 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1 class Type: 2 def __init__(self, key, expcet_type): 3 self.key = key 4 self.expct_type = expcet_type 5 6 def __get__(self, instance, owner): 7 print 阅读全文
posted @ 2020-03-16 10:32 竹石2020 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1 def demo(obj): 2 print(' ') 3 obj.x = 1 4 obj.y = 2 5 obj.z = 3 6 return obj 7 8 @demo 9 class Foo: 10 pass 11 12 f1 = Foo() 13 print(Foo.__dict__) 阅读全文
posted @ 2020-03-13 21:48 竹石2020 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1 class Type: 2 def __init__(self,key): 3 self.key = key 4 5 def __get__(self, instance, owner): 6 print('执行get方法') 7 return instance.__dict__[self.ke 阅读全文
posted @ 2020-03-13 10:44 竹石2020 阅读(180) 评论(0) 推荐(0) 编辑
摘要:with open as f: 等同于 f = obj.__enter__() 代码块 with obj >触发obj.__enter__(),拿到返回值 as f >f = 返回值 执行代码块: 一:没有异常的情况下,整个代码块运行完毕后去触发__excit__,它的三个参数都为None 二:有异 阅读全文
posted @ 2020-03-11 17:21 竹石2020 阅读(186) 评论(0) 推荐(0) 编辑
摘要:#自省、反射 hasattr(obj,'属性') # 判断obj.属性是否存在 getattr(obj,'属性') 获取obj.属性 不存在则报错 getattr(obj,'属性','默认值') 获取obj.属性的值,不存在则返回默认值 setattr(obj,'属性','属性的值') 设置属性ob 阅读全文
posted @ 2020-03-10 11:58 竹石2020 阅读(90) 评论(0) 推荐(0) 编辑
摘要:描述符的本质是一个新式类,在这个新式类中,至少实现了__get__()、__set__()、__delete__()中的一个,这也被称为描述符协议 __get__() :调用一个属性时,触发 __set__() :为一个属性赋值时,触发 __delete__() :采用del删除属性时,触发 数据描 阅读全文
posted @ 2020-03-09 23:41 竹石2020 阅读(138) 评论(0) 推荐(0) 编辑
摘要:1 class Num: 2 total1 = 0 3 4 def __init__(self, num, num1): 5 self.num = num 6 self.num1 = num1 7 8 def __iter__(self): 9 return self 10 11 def __nex 阅读全文
posted @ 2020-03-09 16:21 竹石2020 阅读(113) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 '迭代器协议:对象可以调用next()方法,且当不可迭代的时候会产生stopiteration,且只能向后,不能向前。' 3 a = 10 4 5 def __iter__(self): # 根据迭代器协议定义一个__iter__()方法 6 return self 7 阅读全文
posted @ 2020-03-09 15:47 竹石2020 阅读(81) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 def __call__(self, *args, **kwargs): 3 print('实例被调用 obj') 4 5 f1 = Foo() 6 f1() 7 print(Foo()) 8 输出: 9 实例被调用 obj 10 <__main__.Foo objec 阅读全文
posted @ 2020-03-09 10:05 竹石2020 阅读(90) 评论(0) 推荐(0) 编辑
摘要:析构方法:当对象在内存中被释放时,自动触发执行 此方法一般无需定义,因为python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给python解释器执行,所以,析构函数的调用是解释器在进行垃圾回收时自动触发执行的。 1 class Foo: 2 def __init__( 阅读全文
posted @ 2020-03-09 09:49 竹石2020 阅读(143) 评论(0) 推荐(0) 编辑
摘要:1 from lib.test import test 2 3 t1 = test() 4 print(t1.__module__) # 找出这个实例来自于哪个模块 5 print(t1.__class__) # 查看这个实例由哪个类产生 6 输出: 7 lib.test 8 <class 'lib 阅读全文
posted @ 2020-03-08 22:15 竹石2020 阅读(131) 评论(0) 推荐(0) 编辑
摘要:获取文档注释 例如: 1 class Foo: 2 '''这是个文档注释''' 3 pass 4 f1 = Foo() 5 print(f1.__doc__) 6 输出: 7 这是个文档注释 该属性无法被继承 例如: 1 class Foo: 2 '''这是个文档注释''' 3 pass 4 cla 阅读全文
posted @ 2020-03-08 21:53 竹石2020 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 __slots__ = ['name', 'age'] 3 4 def test(self): 5 print(self.name) 6 7 8 f1 = Foo() 9 f1.name = 'alex' 10 print(f1.name) 11 print(f1.__ 阅读全文
posted @ 2020-03-08 21:47 竹石2020 阅读(118) 评论(0) 推荐(0) 编辑
摘要:1 format_dic = { 2 'y-m-d': '{0.year}-{0.mon}-{0.day}', 3 'y:m:d': '{0.year}:{0.mon}:{0.day}', 4 'dmy': '{0.day}{0.mon}{0.year}', 5 } 6 7 8 class Date 阅读全文
posted @ 2020-03-08 21:14 竹石2020 阅读(117) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 num = 3 3 4 def __init__(self, name, age): 5 self.name = name 6 self.age = age 7 8 def __str__(self): # 自己定制打印信息 9 return '新的自定制显示的方法名字 阅读全文
posted @ 2020-03-08 20:23 竹石2020 阅读(123) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 def __getitem__(self, item): 3 print('getitem') 4 return self.__dict__[item] 5 6 def __setitem__(self, key, value): 7 self.__dict__[key 阅读全文
posted @ 2020-03-08 19:47 竹石2020 阅读(283) 评论(0) 推荐(0) 编辑
摘要:1 class Foo: 2 x = 2 3 4 def __init__(self, name): 5 self.name = name 6 7 def __getattr__(self, item): 8 print('没有该属性') 9 10 def __getattribute__(self 阅读全文
posted @ 2020-03-08 19:23 竹石2020 阅读(141) 评论(0) 推荐(0) 编辑
摘要:使用__getattr__ 进行中转 1 import time 2 3 4 class Open: 5 def __init__(self, filename, mode='r', encoding='utf-8'): 6 self.filename = open(filename, mode) 阅读全文
posted @ 2020-03-07 21:32 竹石2020 阅读(74) 评论(0) 推荐(0) 编辑
摘要:可以用类继承的方法,对其他类进行重写。例如: 1 class List(list): 2 def show_middle(self): # 自己定义一个方法 3 num = int(len(self) / 2) 4 return self[num] 5 6 def __setattr__(self, 阅读全文
posted @ 2020-03-07 18:40 竹石2020 阅读(198) 评论(0) 推荐(0) 编辑
摘要:1 class Job: 2 def __init__(self, name): 3 self.name = name 4 5 def __getattr__(self, item): # 当调用的属性不存在的时候,就会触发此方法 6 print('没有此属性') 7 8 def __delattr 阅读全文
posted @ 2020-03-07 18:02 竹石2020 阅读(152) 评论(0) 推荐(0) 编辑
摘要:自省和反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。 1 class BlackMeium: 2 def __init__(self, name, addr): 3 self.name = name 4 self.addr = addr 5 6 def sell_house(sel 阅读全文
posted @ 2020-03-07 16:03 竹石2020 阅读(127) 评论(0) 推荐(0) 编辑
摘要:封装:装 就是将一堆东西装在一个麻袋; 封 就是将这一堆东西隐藏起来 ,是外面只能看到一个麻袋 麻袋就相当于类 装的东西就是属性和方法,写类属性和类方法,就是装的过程 属性前面加_ 表示隐藏属性 一个下划线开头 表示私有的 python不会真正限时访问 两个下划线开头 __star = 'earth 阅读全文
posted @ 2020-03-07 14:42 竹石2020 阅读(96) 评论(0) 推荐(0) 编辑
摘要:多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同 即不同的数据有相同的方法或者属性 多态的概念指出了对象如何通过他们共同的属性和动作来操作及访问,而不需要考虑他们具体的类 例如: 1 a = '1234' 2 b = [1,2,3,4] 3 c = (1,2,3,4) 4 print 阅读全文
posted @ 2020-03-07 11:36 竹石2020 阅读(162) 评论(0) 推荐(0) 编辑
摘要:1 class Vehicle: 2 country = 'china' 3 4 def __init__(self, name, speed, load, power): 5 self.name = name 6 self.speed = speed 7 self.load = load 8 se 阅读全文
posted @ 2020-03-06 22:34 竹石2020 阅读(330) 评论(0) 推荐(0) 编辑
摘要:1 class Vehicle: 2 country = 'china' 3 4 def __init__(self, name, speed, load, power): 5 self.name = name 6 self.speed = speed 7 self.load = load 8 se 阅读全文
posted @ 2020-03-06 22:22 竹石2020 阅读(242) 评论(0) 推荐(0) 编辑
摘要:继承 子类继承父类所有属性 如果属性名重名了,则先从子类开始找,不会覆盖父类的属性 1 class Dad: 2 money = 10 3 4 def __init__(self, name): 5 print('开始') 6 self.name = name 7 8 def hit_son(sel 阅读全文
posted @ 2020-03-06 20:22 竹石2020 阅读(120) 评论(0) 推荐(0) 编辑
摘要:1 class School: 2 def __init__(self, name, addr): 3 self.name = name 4 self.addr = addr 5 6 class Teacher: 7 def __init__(self,name,gender,age): 8 sel 阅读全文
posted @ 2020-03-06 20:01 竹石2020 阅读(214) 评论(0) 推荐(0) 编辑
摘要:静态方法只是名义上的归属类管理,不能使用类变量和实例变量,是类的工具包 1 class Room: 2 def __init__(self, name, owner, width, length, heigh): 3 self.name = name 4 self.owner = owner 5 s 阅读全文
posted @ 2020-03-06 16:07 竹石2020 阅读(171) 评论(0) 推荐(0) 编辑
摘要:通过加上@ classmethod 将函数属性变为类方法 调用方式变为类名加上函数名 从而不需要经过实例化 例如: 1 class Room: 2 def __init__(self, name, owner, width, length, heigh): 3 self.name = name 4 阅读全文
posted @ 2020-03-06 15:45 竹石2020 阅读(189) 评论(0) 推荐(0) 编辑
摘要:1 class Room: 2 def __init__(self, name, owner, width, length, heigh): 3 self.name = name 4 self.owner = owner 5 self.width = width 6 self.length = le 阅读全文
posted @ 2020-03-06 15:36 竹石2020 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1 class Chinese: 2 def __init__(self,name): 3 self.name = name 4 age = input('请输入年龄') 5 self.age = age 6 def play_ball(self): 7 print('%s %s岁 正在打篮球'%( 阅读全文
posted @ 2020-03-06 14:34 竹石2020 阅读(134) 评论(0) 推荐(0) 编辑
摘要:class Chinese: def __init__(self, name): self.name = name def play_ball(self): print('%s 正在打篮球' % self.name) p1 = Chinese('小白') p1.age = 19 # 实例只有数据属性 阅读全文
posted @ 2020-03-06 12:40 竹石2020 阅读(101) 评论(0) 推荐(0) 编辑
摘要:实例只有数据属性,没有函数属性 实例没有函数属性,只有类有函数属性 1 class Chinese: 2 dang = '当' # 类属性 3 4 def __init__(self, name, age, gender): 5 print('我是初始化函数,我开始运行了') 6 self.ming 阅读全文
posted @ 2020-03-06 11:12 竹石2020 阅读(181) 评论(0) 推荐(0) 编辑
摘要:类是一个抽象的概念,对象是一个具体的存在 对象就是数据和函数整合到一起的产物 用嵌套函数进行面向对象设计 1 def dog(name, gender, type): 2 def jiao(name): 3 print('一条叫【%s】的狗,汪汪汪') 4 5 def chi(name): 6 pr 阅读全文
posted @ 2020-03-05 23:02 竹石2020 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1 import hashlib 2 obj = hashlib.sha256() 3 obj.update('admin'.encode('utf-8')) 4 print(obj.hexdigest()) 5 print(len(obj.hexdigest())) 6 输出: 7 8c6976e 阅读全文
posted @ 2020-03-05 16:32 竹石2020 阅读(117) 评论(0) 推荐(0) 编辑
摘要:1 import configparser 2 3 config = configparser.ConfigParser() 4 config['DEFAULT'] = { 5 'ServerAliveInterval': 45, 6 'Compression': 'yes', 7 'Compres 阅读全文
posted @ 2020-03-05 12:28 竹石2020 阅读(141) 评论(0) 推荐(0) 编辑
摘要:参数 调用logging.basicConfig() 函数进行设置配置 filename='' 设置保存日志的文件名字 filemode=' ' 设置写入日志的方式 format=' ' 指定handler使用的日志显示格式 %()s 字符串 %()d 数字类型 level=' ' 设置rootlo 阅读全文
posted @ 2020-03-04 22:59 竹石2020 阅读(158) 评论(0) 推荐(0) 编辑
摘要:\d 匹配任何十进制数;它相当于类[0-9] \D 匹配任何非数字字符;它相当于类[^0-9] \s 匹配任何空白字符;它相当于类[\t\n\r\f\v] \S 匹配任何非空白字符;它相当于类[^\t\n\r\f\v] \w 匹配任何字母数字字符;它相当于类[a-zA-Z0-9_] \W 匹配任何非 阅读全文
posted @ 2020-03-04 20:43 竹石2020 阅读(308) 评论(0) 推荐(0) 编辑
摘要:1 import re 2 3 num_one = '(98798465*5465+4654-5464*45616846+84654)' 4 print(eval(num_one)) 5 6 total = 0 7 print(num_one) 8 while True: 9 try: 10 a = 阅读全文
posted @ 2020-03-04 20:37 竹石2020 阅读(204) 评论(0) 推荐(0) 编辑
摘要:正则表达式主要是进行模糊匹配 1、普通字符 完全匹配 2、元字符 ^ $ * + ? {} [] | \ . 通配符 什么都可以代替数字、字母等等 出来换行符\n 代表任意一个字符例如: 1 import re 2 a = 'sddfsaljhhxsdlkjfeojfk' 3 b = re.find 阅读全文
posted @ 2020-03-03 22:42 竹石2020 阅读(259) 评论(0) 推荐(0) 编辑
摘要:1 import xml.etree.ElementTree as ET 2 3 tree = ET.parse('xmltest.xml') 4 root = tree.getroot() # 一个对象 5 print(root.tag) # 打印标签名 6 for country in root 阅读全文
posted @ 2020-03-03 18:26 竹石2020 阅读(134) 评论(0) 推荐(0) 编辑
摘要:shelve将所有内容处理为字典 1 import shelve 2 f = shelve.open(r'abc') # 拿到句柄 3 f['name'] = {'name':'yumeng'} # 写入文件 4 f['name1'] = {'info':'liyulu','age':17} 5 f 阅读全文
posted @ 2020-03-03 10:42 竹石2020 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1 import json 2 a = {'name':'alex','age':27} 3 b = json.dumps(a) 4 print(b,type(b)) 5 a = 8 6 print(json.dumps(a),type(json.dumps(a))) 7 f = open('new 阅读全文
posted @ 2020-03-02 22:31 竹石2020 阅读(132) 评论(0) 推荐(0) 编辑
摘要:1 import time 2 import sys # 可以在运行文件的时候添加参数 3 # 使用sys.argv 来调用参数 4 print(sys.path) # 返回模块的搜索路径,初始化时使用pythonpath环境变量的值 5 print(sys.platform) # 返回平台的信息 阅读全文
posted @ 2020-03-02 20:31 竹石2020 阅读(105) 评论(0) 推荐(0) 编辑
摘要:1 import os 2 print(os.getcwd()) # 获取当前工作目录 3 os.chdir('test') # 更改当前工作目录 4 print(os.getcwd()) 5 os.chdir('..') # 返回上一层 6 print(os.getcwd()) 7 os.make 阅读全文
posted @ 2020-03-02 17:32 竹石2020 阅读(139) 评论(0) 推荐(0) 编辑
摘要:1 import os 2 import sys 3 print(__file__) 4 print(os.path.abspath(__file__)) 5 print(os.path.dirname(os.path.dirname(__file__))) 6 sys.path.append(os 阅读全文
posted @ 2020-03-02 14:20 竹石2020 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1 def v_code(): 2 code_str = '' 3 for i in range(5): 4 import random 5 num = random.randint(0,9) 6 str1 = chr(random.randint(65,90)) 7 str2 = chr(rand 阅读全文
posted @ 2020-03-02 13:39 竹石2020 阅读(146) 评论(0) 推荐(0) 编辑
摘要:time.asctime() 可以将结构化时间转换为一种标准形式的时间 time.ctime() 可以将时间戳转化为一种标准的时间格式 默认传递时间戳 1 import time 2 import datetime 3 print(time.strftime('%Y-%m-%d %X',time.l 阅读全文
posted @ 2020-03-02 10:20 竹石2020 阅读(177) 评论(0) 推荐(0) 编辑
摘要:time.time() 时间戳 从19070年开始 通常用来计算时间用的 格式化时间转换过程 从时间戳到结构化时间再到格式化时间Format string 结构化时间struct_time 可以由localtime()、gmtime() 传入时间戳(timestamp)进行转化 例如: 1 impo 阅读全文
posted @ 2020-03-01 23:01 竹石2020 阅读(154) 评论(0) 推荐(0) 编辑
摘要:如果在本文件开始运行 __name__ 变量为__main__ 如果从外部调用本文件__name__变量就为 该文件的路径 作用,可以作为一个文件运行的开始,二是可以用来调试一个函数文件是否有bug,事后调用不用注释掉调试的代码,直接调用。 功能: 一:用于被调用文件的测试。 二:不想让该文件成为被 阅读全文
posted @ 2020-03-01 11:33 竹石2020 阅读(321) 评论(0) 推荐(0) 编辑