python
wlq*
Love life,love Code.
展开
-
python--Counter()统计列表中超过一半的数字
# 方法一:使用collections模块中的Counter函数 # 然后调用most_common()方法 # from collections import Counter # a = Counter(nums) # b = a.most_common()[0][0] # return b ============ a = [1, 2, 3, 2, 2, 2, 5, 4, 2] b = Counte原创 2021-11-24 16:36:43 · 728 阅读 · 0 评论 -
python--两种判断奇偶数的方法&和%
# 1按位与运算符:判断奇偶数print(3 & 1) # 1print(2 & 1) # 0# 2取模运算:判断奇偶数print(3 % 2) # 1print(2 % 2) # 0原创 2021-11-22 13:45:34 · 1479 阅读 · 0 评论 -
python--双端队列deque
import collectionstmp = collections.deque()tmp.appendleft(1) # appendleft()左边插入tmp.appendleft(2)tmp.appendleft(3)tmp.append(4) # append() 右边(尾部)插入tmp.append(5)tmp.append(6)print(tmp) # deque([3, 2, 1, 4, 5, 6])print(list(tmp)) # [3, 2, 1, 4,原创 2021-11-21 21:41:53 · 538 阅读 · 0 评论 -
python--实现二叉搜索树的插入功能
class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None self.rchild = None self.parent = Noneclass BST: def __init__(self, li=None): self.root = None if li: for原创 2021-11-07 17:25:14 · 357 阅读 · 0 评论 -
Django项目部署(阿里云linux服务器Centos7.6 2核2G)
一、安装python3.7二、把相关django项目拷贝到linux服务器三、安装django相关依赖(1)pip3 install django==2.2.12(2)安装mysqlclient(确保已安装mysql,见下文)若pip3 install mysqlclient执行报错,先执行yum install mysql-devel(3)若项目的models.py文件在服务器上有改动,cd切换到manage.py同名目录下,先 执行 python3 manage.py makemigrati原创 2021-11-06 14:05:39 · 650 阅读 · 0 评论 -
python--从a-zA-Z0-9生成指定数量的随机字符:
ran_str = ‘’.join(random.sample(string.ascii_letters + string.digits, 8))print(ran_str) # 3oS8wu6M原创 2021-10-11 16:52:55 · 586 阅读 · 0 评论 -
pyhon--找出列表中字符串长度最短(长)的长度
strs = [“flower”, “flow”, “flight”]minLength = min(len(s) for s in strs)maxLength = max(len(s) for s in strs)原创 2021-08-20 16:50:56 · 2261 阅读 · 0 评论 -
python--在指定目录下创建文件夹
import os#os.makedirs(“奥迪”)path = r’D:\aPyProjects\pyProject\LeetCode\che168.com\images2’name = ‘奥迪’os.mkdir(path + ‘./’ + name)原创 2021-07-28 17:46:14 · 4498 阅读 · 0 评论 -
python--FastAPI框架异步
import asyncioimport uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def index(): """普通操作接口""" return {"message": "Hello world"}if __name__ == '__main__': uvicorn.run("wlq:app", host="localhost", port=8888, log_level=.原创 2021-05-18 16:18:52 · 446 阅读 · 0 评论 -
python--异步操作mysql
import asyncioimport aiomysqlasync def execute(): # 网络IO操作:连接MSQL conn = await aiomysql.connect(host='localhost',port=3306,user='root', password='123456', db='crawler') # 网络IO操作:创建CUSOR cur = await conn.cursor() # 网络IO操作:执行SQL .原创 2021-05-18 15:40:56 · 998 阅读 · 0 评论 -
python--异步redis
import asyncioimport aioredis# 无passwordasync def execute(address): print("开始执行", address) # 网络IO操作:创建redis连接 redis = await aioredis.create_redis(address) await redis.hmset_dict('car', key1=1, key2=2, key3=4) # 网络IO操作:去redis中获取值.原创 2021-05-18 15:18:50 · 520 阅读 · 0 评论 -
python--uvloop
uvloop是asyncio的事件循环的替代方案。事件循环->默认asyncio的事件循环asyncio是遵循Python标准库的一个异步I/O框架.可以完整替代asyncio事件循环.uvloop是用Cython写的,基于libuv.uvloop 使得 asyncio 更快. 实际上,比nodejs,gevent,以及其他任何Python异步框架至少快两倍.uvloopasyncio基于性能的测试接近于Go程序.pip3 install uvloopimport async...原创 2021-05-18 14:48:48 · 532 阅读 · 0 评论 -
python异步和非异步模块混合案例下载图片
import asyncioimport requestsasync def download_image(url): print("开始下载:", url) loop = asyncio.get_event_loop() # requests模块默认不支持异步操作,所以就使用线程池来配合实现 future = loop.run_in_executor(None, requests.get, url) response = await future .原创 2021-05-18 14:15:48 · 118 阅读 · 0 评论 -
asyncio异步编程:Future对象
Future对象Task 继承Future,Task对象内部await结果的处理基于Future对象来的。示例1:import asyncioasync def main(): # 获取当前事件循环 loop = async.get_running_loop() # 创建一个任务(Future对象),这个任务什么都不做 fut = loop.create_future() # 等待任务最终结果(Future对象),没有结果则会一直等下去 a...原创 2021-05-18 10:06:59 · 760 阅读 · 0 评论 -
python 基于协程下载图片(asyncio)
#!/usr/bin/env pythonimport datetimeimport aiohttpimport asyncio# 异步async def fetch(session, url): print("发送请求:", url) async with session.get(url, verify_ssl=False) as response: content = await response.content.read() file_n.原创 2021-05-17 17:50:48 · 380 阅读 · 0 评论 -
python异步编程(asyncio)
异步编程 3.1 事件循环 inport asyncio # 去生成或获取一个事件循环 loop = asyncio.get_event_loop() # 将任务放到'任务列表' loop.run_until_complete(任务) 3.2 快速上手 协程函数,定义函数时候async def 函数名 协程对象,执行协程函数()得到的协程对象 async def func(): p.原创 2021-05-17 17:49:09 · 434 阅读 · 0 评论 -
python--uvloop超级快的 Python 异步网络框架
asyncio是遵循Python标准库的一个异步I/O框架.在这篇文章里,我将介绍uvloop: 可以完整替代asyncio事件循环.uvloop是用Cython写的,基于libuv.uvloop 使得 asyncio 更快. 实际上,比nodejs,gevent,以及其他任何Python异步框架至少快两倍.uvloopasyncio基于性能的测试接近于Go程序.Uvloop最终目的使得Asyncio更加快速。asyncio 和uvloopasyncio 模块, 是在 PEP...原创 2021-05-10 14:08:03 · 1103 阅读 · 0 评论 -
python--上下文管理器with
class Sample: # 上下文管理器协议 def __enter__(self): print("enter") # 获取资源 return self def __exit__(self, exc_type, exc_val, exc_tb): # 释放资源 print("exit") def do_something(self): print("111")with .原创 2021-04-18 17:18:59 · 79 阅读 · 0 评论 -
python--isinstance()
class A: passclass B(A): passb = B()print(isinstance(b, B)) # Trueprint(isinstance(b, A)) # Trueprint(B.__mro__)原创 2021-04-15 13:37:37 · 74 阅读 · 0 评论 -
python子类重写父类的抽象方法
# 如何去模拟一个抽象基类# class CacheBase():# def get(self, key):# raise NotImplementedError## def set(self, key, value):# raise NotImplementedError### class RedisCache(CacheBase):# def set(self, key, value):# print(111.原创 2021-04-15 13:36:48 · 585 阅读 · 0 评论 -
python--魔法函数之__getitem__()
class Company(object): def __init__(self, employee_list): self.employee = employee_list def __getitem__(self, item): # 魔法函数 (使对象变为可迭代的对象) return self.employee[item] def __len__(self): return len(self.employee) .原创 2021-04-15 13:35:37 · 115 阅读 · 0 评论 -
python--@staticmethod和@classmethod
class Date: def __init__(self, year, month, day): self.year = year self.month = month self.day = day def tomorrow(self): self.day += 1 @staticmethod # 静态方法 def parse__from_string(date_str): # 静态方法不需要传类对象.原创 2021-04-15 13:33:51 · 86 阅读 · 0 评论 -
python--tuple()
date_str = "2021-04-15"a = tuple(date_str.split("-"))print(a)year, month, day = tuple(date_str.split("-"))print(year, month, day)print(type(year))#输出('2021', '04', '15')2021 04 15<class 'str'>原创 2021-04-15 11:51:50 · 106 阅读 · 0 评论 -
python--时间格式处理(年月日时分秒)
import datetimenow = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')print(now) # 2021-03-19 15:02:01原创 2021-03-19 15:03:24 · 2563 阅读 · 1 评论 -
python--装饰器
registry = []def register(func): print('runnning register(%s)' % func) registry.append(func) return func@registerdef f1(): print('running f1()')@registerdef f2(): print('running f2()')def f3(): print('running f3()').原创 2021-03-18 13:30:06 · 92 阅读 · 0 评论 -
python set()
set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于set不能包含重复的值。这在很多情况下非常有用。例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用for循环,就像这样:some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']duplicates = []for value in some_list: if some_list.count(value) > 1: if原创 2021-03-18 10:26:30 · 74 阅读 · 0 评论 -
python--reduce()
当需要对一个列表进行一些计算并返回结果时,Reduce是个非常有用的函数。举个例子,当你需要计算一个整数列表的乘积时。通常在 python 中你可能会使用基本的 for 循环来完成这个任务。现在我们来试试 reduce:from functools import reduceproduct = reduce((lambda x, y: x * y), [1, 2, 3, 4])print(product)# Output: 24...原创 2021-03-18 10:23:24 · 84 阅读 · 0 评论 -
Python count()方法
原创 2021-03-18 10:18:14 · 87 阅读 · 0 评论 -
Python--filter()
顾名思义,filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表,符合要求即函数映射到该元素时返回值为True. 这里是一个简短的例子:number_list = range(-5, 5) less_than_zero = filter(lambda x: x < 0, number_list) print(list(less_than_zero)) # 译者注:上面print时,加了list转换,是为了python2/3的兼容性 # 在python2中filter直接返回列表原创 2021-03-18 10:09:58 · 60 阅读 · 0 评论 -
Python--map()
原创 2021-03-17 17:57:12 · 83 阅读 · 0 评论 -
python--生成器(Generators)
生成器也是一种迭代器,但是你只能对其迭代一次。这是因为它们并没有把所有的值存在内存中,而是在运行时生成值。你通过遍历来使用它们,要么用一个“for”循环,要么将它们传递给任意可以进行迭代的函数和结构。大多数时候生成器是以函数来实现的。然而,它们并不返回一个值,而是yield(暂且译作“生出”)一个值。这里有个生成器函数的简单例子:def generator_function(): for i in range(10): yield ifor item in generato原创 2021-03-16 16:57:02 · 166 阅读 · 1 评论 -
python f‘字符串‘作用
python的字符串前面加f表示格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,如果字符串里面没有表达式,那么前面加不加f输出应该都一样。Python3.6新增了一种f-字符串格式化格式化的字符串文字前缀为’f’和接受的格式字符串相似str.format()。它们包含由花括号包围的替换区域。替换字段是表达式,在运行时进行评估,然后使用format()协议进行格式化。formatted string literals, 以 f 开头,包含的{}表达式在程序运行时会被表达式的值代替原创 2021-03-15 14:17:43 · 21122 阅读 · 0 评论 -
python 深度拷贝deepcopy()
import copyparams = self.query()lis = [{"code": "3","value": "WW", "seq_sign":"w","status":0},{"code": "4","value": "QQ", "seq_sign":"w","status":0}]lis2 = []default = {"code": "", "value": "", "seq_sign": "", "status": 0}for i, j in enumerate(params[原创 2021-03-12 17:58:28 · 128 阅读 · 0 评论 -
python异步编程爬虫实例
"""同步编程实现下载图片使用第三方模块requests,请提前安装:pip3 install requests"""import requestsdef download_image(url): print("开始下载:",url) # 发送网络请求,下载图片 response = requests.get(url) print("下载完成") # 图片保存到本地文件 file_name = url.rsplit('_')[-1] wit.原创 2021-03-05 10:58:19 · 266 阅读 · 1 评论 -
Python学习网址收藏
https://www.cnblogs.com/wupeiqi/https://pythonav.com/wiki/detail/6/91/#1.2%20yield原创 2021-03-04 17:30:56 · 996 阅读 · 1 评论 -
python tornado get_query_argument()
get_query_argument()/get_query_arguments()/get_body_argument()/get_body_arguments()上述四个获取值方法统一参数:(name, default=_ARG_DEFAULT, strip=True)# name:获取name属性的值default:设置默认值,如果没有参数传递过来,那么就是用默认值strip: 去除左右空格# 使用get方式传递参数 def get(self): # 获取单...原创 2021-03-04 16:56:05 · 716 阅读 · 1 评论 -
python Tornado
Tornado是使用Python编写的Web服务器兼Web应用框架,与主流Web服务器框架不同的是,Tornado是异步非阻塞式服务器,得益于非阻塞式和对epoll模型的运用,Tornado是实时Web服务的一个理想框架,它非常适合开发长轮询、WebSocket和需要与每个用户建立持久连接的应用。注:epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。转载 2021-03-04 16:54:15 · 140 阅读 · 1 评论 -
python3.5 typing — 类型标注支持
函数接受并返回一个字符串,注释像下面这样:def greeting(name: str) -> str: return 'Hello' + name在函数greeting中,参数name预期是str类型,并且返回str类型。子类型允许作为参数。1.1. 类型别名型别名通过将类型分配给别名来定义。在这个例子中,Vector和List[float]将被视为可互换的同义词:from typing import ListVector = List[fl...原创 2021-03-04 15:47:44 · 156 阅读 · 1 评论 -
Python chr() 函数
原创 2021-03-04 14:01:44 · 165 阅读 · 1 评论 -
python datetime.timedelta()
datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。import datetimenow=datetime.datetime.now() # 2021-03-04 09:31:35.179579t = now-datetime.timedelta(hours=3)print(t) # 2021-03-04 06:31:35.179579t2 = now-datetime.timedelta(hou原创 2021-03-04 09:40:57 · 740 阅读 · 1 评论