Python
weeds606
加速成长……
展开
-
python基础--列表的高级用法
1.列表推导式# 列表推导式,求列表中能被3整除的数a = [i for i in range(100) if i % 3 == 0]print(a)2.获取列表中出现最多的元素# 找出列表中出现次数最多的元素。max(iter,key),当max中同时传入可迭代对象和key时,key为一个函数。# 这种情况下,需要将可迭代对象中的元素传入key函数中,取函数返回最大的元素a = [1, 2, 3, 5, 2, 2, 3, 4]b = set(a)# 将列表b中的元素传入函数a.原创 2020-07-13 23:51:44 · 801 阅读 · 0 评论 -
python对mysql进行增删改查
#!usr/bin/env python# -*- coding:utf-8 -*-"""@author:DOULIHANG@file: db_operation.py@time: 2020/07/01 """import jsonimport pymysqlclass DbOperation(): def __init__(self, host, user, password, database, port=3306): """ host:数.原创 2020-07-02 10:16:58 · 490 阅读 · 0 评论 -
letcode刷题(2020.01.11--2020.01.20)
1.移动零(2020.1.11)题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem...原创 2020-01-12 18:14:48 · 359 阅读 · 0 评论 -
letcode刷题(2020.01.01--2020.01.10)
1.移除元素(2020.1.1)题目描述:给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn....原创 2020-01-02 19:45:27 · 412 阅读 · 0 评论 -
letcode刷题(2019.12.20--2019.12.31)
1.数组的相对排序(2019.12.20)题目描述:给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。来源:力扣(LeetCode)链接:https://leet...原创 2019-12-20 09:56:49 · 224 阅读 · 0 评论 -
django删除表后重新建表
django删除数据库表后重建表总共分为四步1.在数据库中删除对应的表2.删除表django_migrations中要删除表所在项目的记录3.删除表所在项目migrations目录下除init.py外的所有python文件4.重新执行数据库迁移命令python manage.py makemigrations 应用名称python manage.py migra...原创 2019-11-08 15:08:48 · 3558 阅读 · 0 评论 -
django 问题汇总
1.django页面时间显示Oct. 16, 2019, 11:44 a.m.解决方案:使用通用时间过滤器|date:"Y-m-d H:i:s"示例:<td>{{ module.update_time|date:"Y-m-d H:i:s" }}</td>2.django查询结果排序解决方案:order_by("条件1", "条件2"),先按条件...原创 2019-10-16 19:48:14 · 277 阅读 · 0 评论 -
django 实现列表分页功能
一、创建过滤器1. 在应用(case)下创建templatestag包,创建pagetag.py。具体层级结构如下:具体代码如下:from django import template#实例化过滤器register = template.Library()from django.utils.html import format_html@register.simple_...原创 2019-10-15 08:42:27 · 1051 阅读 · 0 评论 -
ddt,unittest接口测试demo
ddt接口测试的好处在于可以很大程度上减少重复的代码量,注意ddt为第三方库,需要手动安装具体代码如下:from ddt import ddt,data,unpackimport unittest@ddtclass Ddt_Test(unittest.TestCase): #测试数据 test1 = {"data":{"account":"5585865"},"res...原创 2019-07-31 16:28:16 · 306 阅读 · 0 评论 -
python 类的继承
继承:重用已经存在的数据和方法,减少代码量。子类继承父类所有的属性和方法1.类属性的继承#类属性的继承class Animal(object): run = True#Dog类继承Animal类class Dog(Animal): pass#Dog类继承Animal的类属性print(Dog.run)2.实例属性继承的两种方法第一种:父类名.__in...原创 2019-07-26 14:29:19 · 214 阅读 · 0 评论 -
python smtplib发送邮件
1.发送邮件给多个收件人,具体代码如下def sendmail(subject, content): #发送者邮箱服务器 email_host = 'smtp.163.com' #发送者账号 email_user = '发件人邮箱' email_pwd = '发件人邮箱密码' tolist =["收件人1","收件人2"] cclist...原创 2019-08-02 17:00:01 · 326 阅读 · 0 评论 -
django学习笔记02-Django工作流
Django工作流,我理解应该分为五步1.浏览器访问url2.django服务器在setting.py文件中的ROOT_URLCONF中查看跳转的路由文件,下面配置的意思就是路由文件为guest目录的urls.py3.进入路由文件,寻找urlpatterns配置4.用浏览器url的路径与urlpatterns中的配置进行匹配,很明显浏览器中的路径匹配到第二行的路由...原创 2019-09-10 19:48:24 · 406 阅读 · 0 评论 -
python 反射
1.什么是反射通过字符串映射object对象的方法或属性2.反射的方法1)根据字符串在某个模块或对象中寻找xx方法或属性--getattr(),传递参数:模块或对象名,方法或属性名登录模块代码:def login(): print("登录成功")def logout(): print("退出登录成功")使用getattr()方法的代码:impor...原创 2019-07-29 18:38:42 · 98 阅读 · 0 评论 -
python 类的内置方法
1.__doc__打印类的备注class Animal(object): """创建动物类""" def run(self): """动物都会跑""" passA = Animal()#打印Animal类的备注print(A.__doc__)2.__call__,将类进行实例化后,调用该实例时,会执行__call__方法。注意:类...原创 2019-07-26 17:58:44 · 208 阅读 · 0 评论 -
python logging模块简单使用
1.创建一个日志对象,代码如下import logging#创建一个日志对象,传入对象名称logger = logging.getLogger("test")print(logger.name)控制台输出如下test2,定义日志对象的输出等级,输出等级从大到小依次为:CRITICAL、ERROR、WARNING、INFO、DEBUG、NOTEST。代码如下:imp...原创 2019-08-05 15:38:49 · 189 阅读 · 0 评论 -
python 迭代器、列表生成式、生成器
1.迭代器迭代器是可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问,访问完所以元素后停止。迭代器有两个最基本的方法:iter()、next()。iter()用于生成迭代器对象,next()用于访问下一个元素。list1 =[1,2,3,4]#实例化迭代器对象it = iter(list1)#打印迭代器的下一个元素print(next(it))#打印迭代器的下一个元...原创 2019-08-02 10:46:21 · 410 阅读 · 0 评论 -
mitmproxy安装
安装mitmproxy遇到了很多坑,现在总结一下几种安装方式供大家参考1.使用pip install mitmproxy安装,提示需要按照c++的东西,安装后,依旧报其他错误,此路不通2.在GitHub上下载该第三方库的源码,使用python进行安装,安装成功。源码地址:https://codeload.github.com/mitmproxy/mitmproxy/zip/master...原创 2019-09-08 19:56:51 · 962 阅读 · 0 评论 -
django学习笔记03-Django视图
介绍视图之前,先给大家介绍一下django的MTV开发模式M代表模型(Model),即数据存取层。该层处理的数据相关的所有事物,进行数据库相关的操作T代表模板(Template),即表现层。该层处理与页面显示有关的东西,主要用于与用户进行交互V代表视图(Views),即业务逻辑层。该层包含存取模型及调取模板相关操作,是模型和模板之间的桥梁1.post请求时,解决防止跨站请求伪造导致...原创 2019-09-10 20:21:37 · 147 阅读 · 0 评论 -
django学习笔记04-Django模型
一、django模型层用于创建和存储数据,模型的基础知识。每个模型是python的一个类,继承django.db.models.Model类 每个模型对应数据库中一张表,模型的每个属性,对应表中的一个字段 django有一套访问数据库的API二、创建模型from django.db import models# Create your models here.#发布会表cl...原创 2019-09-15 19:49:08 · 199 阅读 · 0 评论 -
python基础--字符串编码格式转化
#! /usr/bin/env python# -*- coding: utf-8 -*-dd = u"野草"print type(dd)#Unicode转化为strdd = dd.encode("utf-8")print type(dd)#str转化为Unicodedd = dd.decode("gbk")print type(dd) ...原创 2018-09-21 06:37:15 · 1224 阅读 · 0 评论 -
python 工厂设计模式
一、对工厂设计模式的理解在现实生活中,工厂是用于生产产品的,我们告诉工厂,我们需要什么样的产品,工厂就会生产出该产品,我们无需知道该产品到底是怎么生产的。在python中也是一样的,我们只需要调用工厂类的方法,传入参数后,就能得到我们想要的对象,此时我们并不关心该对象的内部实现。二、工厂设计模式的优点1、工厂模式巨有非常好的封装性,代码结构清晰;2、屏蔽产品类,使产品的被使用业务场...原创 2019-07-29 10:49:11 · 362 阅读 · 0 评论 -
python文件读写操作
python对文件进行读写操作使用的是open函数,open函数的操作模式及具体含义如下。操作模式 具体含义 'r' 读取(默认) 'w' 写入(会截断之前的内容) 'x' 写入(如果文件已经存在会产生异常) 'a' 追加(将内容写到已有内容的末尾) 'b' 二进制模式 't' 文本模式 '+' 更新(即可以读也可以写...原创 2019-07-11 11:17:02 · 1214 阅读 · 0 评论 -
python进程、线程
为什么编程的时候要使用进程、线程、协程?使用它们是为了进行多并发编程。那么为什么要进行多并发编程?因为多并发编程可以减少程序运行的时间,让用户获得更好的体验。1.进程概念:操作系统执行程序分配存储空间的最小单位。一个CPU只能同时处理一个进程。python实现多进程,使用multiprocessing模块的Process类来创建进程。具体代码如下:from multiprocessi...原创 2019-07-15 15:28:04 · 462 阅读 · 0 评论 -
python基础--函数学习
1.变量作用域变量作用域决定了哪一部分的程序可以访问哪一个变量,python的变量作用域可以分为四种:局部作用域、闭包函数外的函数中、全局作用域、内建作用域。程序会先在局部作用域中寻找变量,没找到的话,会去闭包函数外的函数中找,如果还是没找到的话,会去全局作用域找,如果还没找到,会去内建作用域寻找。各作用域如下面代码所示x = int(2.9) # 内建作用域g_count...原创 2018-12-07 11:53:47 · 289 阅读 · 0 评论 -
python基础-装饰器
在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。调用f1()时,执行步骤为:1.将f1传入get_info,执行get_info。2.返回inner3.执行inner,打印“吃饭了”4.执行f15.打印“中午吃什么”def get_info(func): def inner(): print("吃饭了") ...原创 2018-12-07 16:45:35 · 142 阅读 · 0 评论 -
python基础--函数
1.函数的语法#! /usr/bin/env python# -*- coding: utf-8 -*-#函数定义def add(): print "123"#调用函数 add()2.形参和实参#! /usr/bin/env python# -*- coding: utf-8 -*-#形参:定义函数时,需要传入的参数,此时的形参为a,bdef ad...原创 2018-09-28 21:38:43 · 112 阅读 · 0 评论 -
python基础--列表常用方法
1.append方法:将元素增加到列表的尾部。#! /usr/bin/env python# -*- coding: utf-8 -*-list1 = [1,2,3,4,5]#将元素追加到列表尾部list1.append(6)print list12.insert方法:将元素插入到列表的指定位置#! /usr/bin/env python# -*- coding: ...原创 2018-09-26 21:05:14 · 593 阅读 · 0 评论 -
python基础--字符串常用函数
1.startswith判断字符串是否以某个字符或字符串开头#! /usr/bin/env python# -*- coding: utf-8 -*-str1 = "sdssd"#判断str1是否以sds开头,结果返回Trueprint str1.startswith("sds")#判断str1是否以s开头,结果返回Trueprint str1.startswith("s"...原创 2018-09-21 06:16:19 · 124 阅读 · 0 评论 -
python基础--dir、help、type函数介绍
1.在 Python 中,有大量的内置模块,模块中的定义(例如:变量、函数、类)众多,不可能全部都记住,这时 dir() 函数就非常有用了。dir() 是一个内置函数,用于列出对象的所有属性及方法。在 Python 中,一切皆对象,模块也不例外,所以模块也可以使用 dir()。除了常用定义外,其它的不需要全部记住它,交给 dir() 就好了。例如:我们定义一个字符串变量,然后通过dir方法...原创 2018-09-21 05:56:51 · 591 阅读 · 0 评论 -
python基础--字符串格式化的三种方法
#! /usr/bin/env python# -*- coding: utf-8 -*-name = u"野草"age = 26address = u"西安"print u"我的名字是%s,我的年龄是%s,我在%s等你" %(name, age, address)print u"我的名字是{0},我的年龄是{1},我在{2}等你".format(name, age, addr...原创 2018-09-20 07:37:13 · 252 阅读 · 0 评论 -
python基础--字符串常用方法
1.index方法:判断字符在字符串第几位2.upper方法:将字符串转换为大写3.strip方法:剔除字符串前后的空格4.isdigit方法:判断字符串是否为数字5.startswith方法:判断字符串是否以该字符开头6.endswith方法:判断字符串是否以该字符结尾7.find方法:判断字符在字符串第几位8.replace方法:字符串的替换9.split方法:...原创 2018-09-25 19:57:33 · 293 阅读 · 0 评论 -
python基础-返回函数、lambda、map、filter
1.返回函数是指将函数作为结果值进行返回,如下代码所示def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sumf = lazy_sum(1,2,3,4,5)#输出结果为function...原创 2018-12-07 15:40:31 · 201 阅读 · 0 评论 -
Python基础-操作json文件
#!usr/bin/env python#-*- coding:utf-8 -*-"""@author:yecao@file: jsontests.py@time: 2019/01/03"""import jsonwith open("test.json",'r') as load_f: #将已编码的 JSON 字符串解码为Python对象 load_dict...原创 2019-01-03 15:10:05 · 296 阅读 · 0 评论 -
python实例方法,静态方法、类方法的使用和区别
实例方法在类中定义的方法,一般都是实例方法,要调用此方法,需要先将类进行实例化静态方法,定义前需要使用@staticmethod装饰器进行装饰,调用此方法时,不需要进行实例化类方法,定义前需要使用@classmethon装饰器进行装饰,调用此方法时,会同时创建一个实例,注意:此方法调用时,类的构造函数必须要有默认值class Student(object): def __i...原创 2019-07-10 10:17:43 · 161 阅读 · 0 评论 -
getter(访问器)和setter(修改器)用法
getter可以用于访问对象中的私有属性。setter可以用于修改对象中的私有属性。具体操作看如下代码#!usr/bin/env python#-*- coding:utf-8 -*-"""@author:doulihang@file: test.py@time: 2019/07/09"""class Person(object): def __init__(se...原创 2019-07-09 09:41:26 · 3315 阅读 · 1 评论 -
python-jsonpath的简单使用
使用jsonpath提取json数据指定参数的值,json文件如下所示{ "name": "atool", "url": "https://atool.vip/", "author": [ { "id": "hustcc", "age": 24, "developer": true }, { "id": ...原创 2019-05-08 20:41:30 · 1107 阅读 · 0 评论 -
python eval函数的简单使用
#!usr/bin/env python#-*- coding:utf-8 -*-"""@author:doulihang@file: eval_test.py@time: 2019/05/08""""""将字符串str当成有效的表达式来求值并返回计算结果"""#对数字进行运算print(eval('5+5'))print(eval('5-5'))print(eval('...原创 2019-05-08 20:08:44 · 305 阅读 · 0 评论 -
python自定义异常
python自定义异常:class BaseError(Exception): def __init__(self,ErrorInfo): super().__init__(self) #初始化父类 self.errorinfo=ErrorInfo def __str__(self): return self.errorinfo...原创 2019-04-23 19:42:22 · 294 阅读 · 0 评论 -
python操作Excel表格
注意:python操作Excel表格时,文件后缀为.xls格式#!usr/bin/env python#-*- coding:utf-8 -*-"""@author:doulihang@file: yecao.py@time: 2019/04/11"""import osimport xlrdfrom xlutils.copy import copydef base_d...原创 2019-04-15 15:23:17 · 897 阅读 · 0 评论 -
python跨目录导入文件
文件层级为:在根目录__init__.py文件下加入代码:import osimport sys#获取当前脚本路径base_path = os.path.dirname(os.path.abspath(__file__))#将该路径添加到环境变量中sys .path.append(base_path)...原创 2019-04-22 19:43:33 · 2730 阅读 · 0 评论