Python
小小臭臭g
是什么? 为什么? 怎么做?
展开
-
pandas多条件模糊搜索(sql, like)
pandas实现多条件模糊搜索原创 2022-09-21 00:45:48 · 2042 阅读 · 0 评论 -
如何获取前端请求的真实IP/项目启动端口号
方法有两种1: 前端获取客户端IP,然后通过请求体等方式传给后端{“user_name”: “xiaoxiao”,“password”: “admin”,“ip”: “xx.xx.xx.xx”}2: 后端自行获取请求头中IP# 以django为例if request.META.get('HTTP_X_FORWARDED_FOR'): ip = request.META.get('HTTP_X_FORWARDED_FOR')else: ip = request.META.g原创 2020-11-29 19:07:27 · 5681 阅读 · 1 评论 -
Python单例模式创项目中的常量文件
# common_code.py 文件本身就是一个单例class CommonCode(object): def __init__(self): self.true_code = 100 self.logout_code = 101 self.no_permission = 301 self.error_code = 501 common_code = CommonCode()# utils.pyfrom commo原创 2020-11-13 09:53:00 · 243 阅读 · 0 评论 -
Python中的json和pickle模块序列化
json 序列化主要是用于前后端交互 dict/list/int/str ---> json json.dump() 再次追加的时候容易出问题pickle 序列化,主要是用于保存文件,pickle 单词本身的意思就是腌制(是把东西腌起来保存成文件,要用的时候读出来洗洗还能用) 优势: 所有的python对象, 变成一个二进制字节流,存储到硬盘(文件中), 用的时候再取出来 缺点: pickle序列化后的数据,可读性差,人一般无法识别。 详细说明原创 2020-10-28 16:22:19 · 170 阅读 · 0 评论 -
任意1个字符串, 一共有多少种排列组合
任意1个字符串, 一共有多少种排列组合例如: “123” 排列组合就是: 123 132 231 213 321 312 # 6种import itertoolsclass Solution(): # 方法1:一行代码 def func1(self, random_str): ret_list = sorted(list(set(map("".join, itertools.permutations(random_str))))) pr原创 2020-10-12 16:02:53 · 1294 阅读 · 0 评论 -
Python: 向上向下取整
import mathdef deal_num(num): num_up = math.ceil(num) num_down = math.floor(num) print(num_up, num_down) return num_up, num_downdeal_num(-2.5)原创 2020-06-08 17:34:41 · 744 阅读 · 0 评论 -
Python : 计算两个时间点相隔几周
from datetime import datetimedef week_num(start_time, end_time): week_start = datetime.strptime(start_time, '%Y-%m-%d') week_end = datetime.strptime(end_time, '%Y-%m-%d') return week_end.isocalendar()[1] - week_start.isocalendar()[1]pri.原创 2020-06-03 18:32:24 · 2425 阅读 · 4 评论 -
Python 计算时间
from datetime import datetime, timedeltanow_time = datetime.now()print(now_time)def change_time(time_str, days=0, hours=0, minutes=0): date_str = time_str if type(time_str) == str: date_str = datetime.strptime(time_str, '%Y-%m-%d %H:%原创 2020-06-03 16:33:31 · 424 阅读 · 0 评论 -
[干货]: Python程序员必须要知道的技术,值得收藏
注: 收集了一些python开发相关的技术名词(按英文字母排序), 并附上个人搜到的相关网站(仅供大家参考)aiohttp (爬虫框架)相关网站:https://blog.csdn.net/qq_31235811/article/details/93380242https://aiohttp.readthedocs.io/en/stable/...原创 2020-01-07 17:21:07 · 2330 阅读 · 4 评论 -
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月起每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?
根据上述表格得:f(n) - f(n-1) = (3b+2a) - (2b+a) = a+b = f(n-2)f(n) = f(n-1) + f(n-2)def fib(n): a, b= 1, 2 while n > 2: a, b = b, a + b n -= 1 return bn = 5 # 第五个月ret...原创 2019-12-26 13:23:41 · 639 阅读 · 0 评论 -
青蛙跳台阶和验证幂数的方法
# 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级……它也可以一次跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。# 当跳1级台阶时,f(1) = 1;# 当跳2级台阶时,f(2) = f(1) + 1 = 2;# 当跳3级台阶时,f(3) = f(2) + f(1) + 1 = 4;# 当跳4级台阶时,f(4) = f(3) + f(2) + f(1) + 1 = ...原创 2019-12-25 18:45:20 · 292 阅读 · 0 评论 -
Python判断字符串的构成
# istitle()print("How Are You".istitle()) # Trueprint("how are you".istitle()) # False# isspace 只有空格print(" ".isspace()) # Trueprint(" 132 ".isspace()) # False# isalpha 都是字母print("...原创 2019-12-16 15:26:12 · 812 阅读 · 0 评论 -
Python中的 and和or &和|
# 如果a,b是数值变量, 则&, |表示按位运算, and,or则依据是否非0来决定输出# print(1 & 2)# print(1 | 2)# print(0 and 2) # 有False返回False, 否则返回后一个# print(1 and 2)## print(1 or 2) # 2个都为True, 返回第一个## print(0 or ...原创 2019-12-16 14:41:42 · 716 阅读 · 0 评论 -
Python中的换位运算符
"""a = 100 二进制为: 01100100b = 200 二进制为: 11001000按位运算符: & 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 例: a & b = b'01000000' => 64 | 只要对应的二个二进位有一个为1时,结果位就为1 例: a...原创 2019-12-16 13:35:56 · 2585 阅读 · 0 评论 -
python十进制与二进制的转换
num2 = 100# 方式一:b_num = lambda num: "" if num == 0 else b_num(num // 2) + str(num % 2)ret = b_num(num2)print(ret)# 方式二:b_num2 = bin(num2)[2:] # bin()返回的值是 "0bxxxxx" 为了获得正常的二进制需要把"0b"去掉...原创 2019-12-16 11:01:36 · 2154 阅读 · 1 评论 -
python中三元表达式的几种写法
# 返回a和b中较大的一个def func(a, b): ret1 = a if a > b else b # 写法1, 如果a>b, ret1=a, 否则, ret1=b ret2 = {True: a, False: b}[a > b] # 写法2, 如果条件成立, ret2=True对应的值--> a, 反之, ret...原创 2019-12-12 17:05:28 · 786 阅读 · 0 评论 -
\\u559c\\u6b22\\u4e00\\u4e2a\\u4eba unicode编码问题
import jsonfrom idna import unicode# 方法1: json.loads()msg1 = '{"msg": "\\u559c\\u6b22\\u4e00\\u4e2a\\u4eba"}'# print(str())print(json.loads(msg1))# 方法2: 或者直接对value进行unicode编码msg2 = '{"msg":...原创 2019-10-31 18:30:29 · 9081 阅读 · 0 评论 -
把字符串变成unicode码位列表(列表推导式)
demo_str = "hello world"demo_ret = [ord(x) for x in demo_str] # ord函数 https://blog.csdn.net/qq_42327755/article/details/86596696print(demo_ret)原创 2019-06-10 17:42:47 · 428 阅读 · 0 评论 -
python中UTC格式和北京时间的转换
最近在使用阿里云直播功能时,发现他的时间采用的是UTC格式的from datetime import datetime, timedeltanow_time = datetime.now()utc_time = now_time - timedelta(hours=8) # UTC只是比北京时间提前了8个小时utc_time = utc_time.str...原创 2019-02-13 18:27:54 · 17097 阅读 · 3 评论 -
python的格式化语句的三种写法 %s , f "", format
name = "小王"age = 15f_str = f"姓名:{name} 年龄:{age}"s_str = "姓名:%s 年龄:%d" % (name, age)format_str = "姓名:{0} 年龄:{1} 姓名{0} 年龄{1}".format(name, age)print(f_str)print(s_str)print(format_str)...原创 2019-10-17 17:21:04 · 2268 阅读 · 0 评论 -
Python计算阶乘的三种方法
# 递归def func(n): if n == 0 or n == 1: return 1 else: return (n * func(n - 1))# reduce函数 + lambda函数from functools import reducedef fact(n): return reduce(lambda a, b...原创 2019-09-16 16:43:16 · 4832 阅读 · 0 评论 -
如何利用Pycharm对项目进行断点调适?
①②③④⑤debug启动(2种方式都行)原创 2019-03-01 11:55:32 · 984 阅读 · 0 评论 -
Python中sort, sorted, itemgetter 的排序
""" ret = sorted(参数1, 参数2, 参数3) 参数1: 任意的可迭代对象, 参数2: key, 可省略, 默认ASCII码排序 参数3: reverse 是否反转,默认为: reverse = False ret : 将结果以新列表形式返回, 并不会对参数1产生影响"""fruit = ["apple1", "pear", "gr...原创 2019-06-11 19:22:59 · 944 阅读 · 0 评论 -
Python函数的参数分类
# 5大类ParameterKind = [ {"POSITIONAL_OR_KEYWORD": "可以通过定位参数和关键字参数传入的形参, python函数的参数多数属于此类"}, # 普通参数 {"VAR_POSITIONAL": "定位参数元组"}, # *args {"VAR_KEYWORD": "关键字参数字典"}, # **kwargs {"K...原创 2019-09-10 15:40:48 · 772 阅读 · 0 评论 -
celery 启动关闭 命令
""" celery multi start -A 启动文件名(不带后缀) worker -l info --logfile=日志文件名 --pidfile=pid文件名"""# 测试环境启动celerycelery -A celery_tasks.main worker -l info# 服务器启动celerycelery multi start -A ...原创 2019-09-09 18:14:09 · 7159 阅读 · 1 评论 -
Python: 使用xlrd读取Excel文件
import xlrd# 打开文件, 返回一个操作对象excel_content = xlrd.open_workbook("C:\\Users\\L\\Desktop\\动物.xlsx")'''检查某个工作表是否导入完毕, 参数为工作表的下表'''ret_ok = excel_content.sheet_loaded(0) # True1-获取所有的工作表目录...原创 2019-03-06 15:46:35 · 10793 阅读 · 0 评论 -
Python连接redis和mysql
# 连接mysqlimport pymysqldef conn_mysql(): host = "mysql的IP" port = 3306 user = "账号" password = "密码" database = "数据库" charset = "utf8" conn = pymysql.connect(host=host, ...原创 2019-02-27 11:43:20 · 453 阅读 · 0 评论 -
Python如何捕获异常发生的文件和具体行数
try: print(a)except Exception as e: print(e) print(e.__traceback__.tb_frame.f_globals["__file__"]) # 发生异常所在的文件 print(e.__traceback__.tb_lineno) # 发生异常所在的行数...原创 2019-02-27 10:45:06 · 9810 阅读 · 2 评论 -
利用Django中间件做日志,异常捕获,反应超时
为了记录每次API的访问时传入的参数, 以及后端返回的数据, 使用中间件, 将所有的数据写到日志文件中.①在某个应用下创建一个middleware.py的文件, 并在配置文件中注册该中间件②import jsonimport timefrom django.http import JsonResponsefrom django.utils.deprecation i...原创 2019-02-27 10:20:10 · 2373 阅读 · 3 评论 -
python定义函数时,指定要传入参数的数据类型
当你写的函数方法,要被其他人调用时, 你想让他知道传入参数的数据类型, 可以这样定义def demo(name: str, age: 'int > 0'=20)->str: # ->str 表示该函数的返回值是str类型的 print(name, type(name)) print(age, type(age)) return "hello wo...原创 2019-02-13 18:14:49 · 45362 阅读 · 1 评论 -
Python中0补齐的方法
①纯数字补齐: %换位符 例如: 短信验证码import randomsms_code = "%06d" % random.randint(0, 999999) # 0是用0补齐, 6是默认位数, d代表是整数print(sms_code)②字符串补齐: 内置的zfill方法: (参考: http://www.sharejs.com/codes...原创 2019-02-13 17:06:06 · 6738 阅读 · 0 评论 -
Python计算时间,(1天前, 一个月前)
from datetime import datetime,timedeltafrom dateutil.relativedelta import relativedelta# 获得当前时间now_time = datetime.now()print(now_time, "当前时间")# 方法一def change_time(time_str, days=0, hours=0,...原创 2019-02-21 18:25:42 · 5211 阅读 · 0 评论 -
学习flask框架涉及到的四种session
①状态保持session 这个session与所有的框架和语言都无关, 就是用来实现状态保持的cookie和session都是基础键值对的字符串信息, session是基于cookie实现的 ②flask上下文的session session是请求上下文的一种,封装了用户信息,可以对数据库中缓存的用户信息进行读写操作. ③flask扩展包Session 可以通...原创 2018-06-06 19:15:44 · 2260 阅读 · 0 评论 -
Django获取 请求方式/ 请求路径/ 一个或多个文件/
场景: 前端: postman接口上传文件 后台: django框架,接收文件def get_other_params(request): """ 获取其他参数: method/path/file :param request: :return: """ ret_method = reques...原创 2019-04-17 09:39:53 · 2126 阅读 · 0 评论 -
''%s'' is an invalid keyword argument for this function
使用django时出现这个问题, 是因为这个%s代表的字段名写错了!!!原创 2019-04-22 11:33:21 · 1776 阅读 · 0 评论 -
ValueError: Dependency on app with no migrations: account
启动django项目时报错: ValueError: Dependency on app with no migrations: account原因没有迁移表造成的: python manage.py makemigrations python manage.py migrate...原创 2019-05-15 11:13:00 · 6621 阅读 · 0 评论 -
Python中用来替代if , elif ,else的装饰器 singledispatch
参考资料 1-<流畅的python> 第7章 7.8.2 单分派泛函数(170页) 2-https://www.icode9.com/content-1-231851.html# 1-根据参数的类型def demo_test(para): ret = html.escape(repr(para)) return "<pre>{}...原创 2019-07-01 10:54:28 · 1444 阅读 · 0 评论 -
如何确定某一天是星期几, 是今年的第几周
wek_day = { "0": "周日", "1": "周一", "2": "周二", "3": "周三", "4": "周四", "5": "周五", "6": "周六",}import datetimeimport timetoday=time.strftime("%w")print(today)print("今天...原创 2019-07-14 18:53:58 · 758 阅读 · 0 评论 -
JWT相关总结(二)
# 如果有错误的地方, 请留言指正""" 想要使用代码访问JWT验证登录的接口, 就是在请求体中加入一个键值对 header = { ''' "Authorization": "JWT " + 登录接口返回的token ''' }"""# 1_访问登录接口import requestsurl...原创 2019-06-24 18:50:37 · 1398 阅读 · 1 评论 -
itemgetter 取字典中的部分元素以及排序功能
from operator import itemgettermy_dict = { "name": "小黄", "age": 20, "gender": "man", "class": "middle", "height": 150,}# 现在只想要gender和age属性request_key = ("name", "gender")...原创 2019-07-08 12:23:33 · 483 阅读 · 0 评论