- 博客(1037)
- 资源 (44)
- 问答 (6)
- 收藏
- 关注
原创 Python进阶(三十四)Python3多线程解读
使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire 和 release 方法之间。锁有两种状态——锁定和未锁定。那么,可能线程"set"开始改的时候,线程"print"便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。是线程上下文中两个最重要的寄存器,线程总是在进程的上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。
2017-04-14 09:05:33 52452 4
原创 Python进阶(三十三)Python获取并输出当前日期时间
输出的结果是:time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)时间戳是1970年到现在时间相隔的时间。将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出。用time.localtime()方法,作用是格式化时间戳为本地的时间。现在看起来更有希望格式成我们想要的时间了。
2017-04-14 08:45:54 47792
原创 Python进阶(三十二)local variable ‘xxx‘ referenced before assignment
的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上。错误的意思就是xxx这个变量在引用前还没有定义,这上面不是定义了么?但是后来我把xxx = 24这句去掉之后,又没问题了,后来想起。这个问题很囧,在外面定义了一个变量 xxx ,然后在。的一个函数里面引用这个变量,并改变它的值,结果报错。
2017-04-06 16:38:44 45986
原创 Python进阶(三十一)往MySQL数据库里添加数据,update和insert效率分析
因为自己臆想的是“数据插入的效率应该优于更新效率。的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。对于这种大数据量的更新情况,可以采用多线程的方式,每个线程更新100条数据,这样就能提高更新的速度了。insert ignore表示,如果表中如果已经存在相同的记录,则忽略当前新数据。,或者唯一索引,如果表中已经存在数据,则用新数据替换,如果没有数据效果则和。对于大数据量的更新一般会做成一个异步的操作,而不需要是实时的。这个操作的返回是实时的吗?
2017-04-06 16:36:07 50567
原创 Python进阶(三十)Python3实现随机数
所谓真随机数,是要求根据绝对随机事件产生的数,也就是说要求要有一个无因果关系的随机事件,那么,这其实只存在与哲学领域……用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a
2017-04-06 16:30:15 53899 2
原创 Python进阶(二十九)Python时间&日期&时间戳处理
注:time.strftime,time.strptime,datetime.timedelta。函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。所有参数可选,且默认都是0,参数的值可以是整数,浮点数,正数或负数。函数根据指定的格式把一个时间字符串解析为时间元组。方法来前后移动时间,效率很高,而且可读性很强。方法:先转换为时间数组,然后转换为其他格式。转换为时间数组,然后格式化为需要的格式,如。后可以很高效的进行统计操作,因为转换为。返回以可读字符串表示的当地时间。
2017-04-06 16:24:55 45382
原创 Python进阶(二十七)字符串大小写转换
方法,以及所有单词首字母大写,其余小写的。还提供了首字母大写,其余小写的。方法用来判断字符串的大小写。
2017-04-06 15:41:07 43942
原创 Python进阶(二十六)多线程实现同步的四种方式
临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。
2017-04-06 14:32:30 49609 1
原创 Python进阶(二十五)Python读写文件
在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中200MB的内容。模式打开一个已经存在的文件时,原有文件的内容会被清空,因为一开始文件的操作的标记是在文件的开头的,这时候进行写操作,无疑会把原有的内容给抹掉。由于历史的原因,换行符在不同的系统中有不同模式,比如在。如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。它参数都是以字符串的形式传递的。
2017-04-06 14:22:20 45533 2
原创 Python进阶(二十四)Python中函数的参数定义和可变参数
结果跟funcB(100, 99)都是一样的,因为我们在使用关键字参数调用的时候,指定了把100赋值给a,99赋值给b。上面的例子里,调用函数的时候,传递的参数都是根据位置来跟函数定义里的参数表匹配的,比如funcB(100, 99)和funcB(99, 100)的执行结果是不一样的。我们在调用funcD的时候,至少要传递2个参数,2个以上的参数,都放到c里了,如果只有两个参数,那么c就是一个。在函数funcC的定义中,参数b有默认值,是一个可选参数,如果我们调用funcC(100),b会自动赋值为0。
2017-04-06 11:37:36 43721
原创 Python进阶(二十三)Django使用pymysql连接MySQL数据库做增删改查
在学习完Python基础之后,继续学习Python Web开发方面的知识。首先决定学习Django Web开发框架。在连接数据库一块,视频教学中使用的是django内置的sqlite数据库,之前自己使用的是mysql数据库,遂决定继续使用mysql数据库。IDE说明Python:3.5Django:1.10Pymysql:0.7.10Mysql:5.5Django1.10默认使用的是mysqlDB模块来操作数据库,而该模块已不支持Python3,所以需要其他的方式连接数据库。本文选择使用。
2017-04-06 11:18:11 59468 1
原创 Python进阶(二十二)Python3使用PyMysql连接mysql数据库
由于python3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了。比如说mysqldb。目前MySQLdb并不支持python3.x,Python3.x连接MySQLoursql,PyMySQL,myconnpy等下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。PEP 249 – Python Database API Specification v2.0文档。
2017-03-28 19:27:46 54646 3
原创 Fiddler(二) - 使用Fiddler做抓包分析
在前期博文中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包抓取并处理HTTP请求。
2017-03-26 17:49:40 48643 1
原创 Fiddler(一) - Fiddler简介
Fiddler(一) - Fiddler简介为什么选择Fiddler作为抓包工具? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下:a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改
2017-03-26 17:15:23 46610
原创 Python进阶(二十一)Python学习进阶资料
Python进阶(二十一)-Python学习进阶资料 学习Python已经将近2周了,掌握了基本的语法,并学习了简单的爬虫操作,现将相关学习资料整理如下。大部分资料均取材于慕课网,感觉一路学下来受益匪浅。1.Python入门2.Python进阶3.Python装饰器4.Python-面向对象5.Python-走进Requests库6.Python操作MySQL数据库7.Python遇见数据采集8.
2017-03-26 10:44:23 50162
原创 Python进阶(十九)Python3安装第三方爬虫库BeautifulSoup4
使用第三方库BeautifulSoup,用于从html或xml中提取数据 from bs4 import BeautifulSoup自己实践后,发现出现了错误,如下所示:以上错误提示是说没有发现名为“bs4”的模块。即“bs4”模块未安装。进入Python安装目录,以作者IDE为例,控制台提示第三方库BeautifulSoup4安装成功!回到之前的程序中,会发现IntelJ已经检测到第三方库BS4的安装,已自更新项目,此时项目恢复正常,无错误提示。
2017-03-25 14:36:06 56405 1
原创 Python进阶(十六)正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。在python中使用正则表达式,需要引入re模块;下面介绍下该模块中的一些方法;
2017-03-19 10:58:19 45487 2
原创 Python进阶(十五)file文件操作
Python进阶(十五)-file文件操作 Python下文件操作与Java差不多。打开文件的模式有三种:r,只读模式(默认)。w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】a,追加模式。【可读; 不存在则创建;存在则只追加内容;】 注意最后要记得关闭文件:f.close() python只能将字符串写入到文本文件。要将数值数据存储
2017-03-19 09:25:13 44893
原创 Python进阶(十四)高阶函数
在慕课网完成了廖雪峰老师的《Python入门》与《Python进阶》两门基础课程。在此做一下简单的知识点小结。sorted函数接受一个列表lst和一个函数参数f,f为自定义的比较lst元素大小的函数,返回值为lst中元素按f函数排列的列表;
2017-03-19 08:33:03 45289 2
原创 Python进阶(十三)浅谈sorted 函数应用
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。print(sorted([True,Flase]))===>结果[False,True]如果设置为True,列表元素将被倒序排列,默认为False。原理:先比较元组的第一个值,如果相等就比较元组的下一个值,以此类推。其中,key接受一个函数,这个函数只接受一个元素,默认为None。的排序会将 False 排在前,True排在后。解题思路:先按照正负排先后,再按照大小排先后。对实例进行排序时,会用到。
2017-03-18 17:28:11 45558
原创 Java进阶(五十五)-Java Lambda表达式入门
Java进阶(五十五)-Java Lambda表达式入门 原文链接: Start Using Java Lambda Expressions 下载示例程序 Examples.zip 。 简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个”语法糖”,由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑
2017-03-18 09:09:49 45860 1
原创 Python进阶(十二)浅谈python中的方法
也就是说,p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,给一个实例动态添加方法并不常见,直接在class中定义要更直观。
2017-03-17 17:20:19 44646
原创 Python进阶(十一)实例定义方法
Python进阶(十一)-定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问。那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的。class Person(obj
2017-03-17 17:09:09 45294
原创 Python进阶(十)Python 编程规范
Python进阶(十)-Python 编程规范 在学习一门新的编程语言时,掌握其良好的编程规范可避免一些细节性错误的发生。去除一些不必要的学习障碍。分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 每行不超过80个字符 例外:1.长的导入模块语句2.注释里的URL 不要使用反斜杠连接行. Python会将圆括号, 中括号和花括号中的行隐式连接起来 ,
2017-03-17 15:30:12 46089 2
原创 Python进阶(九)Python陷阱:Nonetype
而在上面的程序中,虽然高阶函数calc_prod()有返回值ff,但是ff()却没有返回值,则传递到外层函数calc_prod()同样没有返回值,故输出了。针对这一问题,自己在IDEA中进行了调试,发现果然多输出了一行None。只有值可以改变,其他只读。之所以出现是因为定义了一个变量或函数,却没有值或者返回值,因此会默认值为。发现b的值确实为None,且其类型为NoneType。若代码改为如下所示,则可以完美实现列表的输出。它不支持任何运算也没有任何内建方法。对象具有三个特性:身份、类型、值。
2017-03-17 08:54:37 75187
原创 Python进阶(八)编写带参数decorator
拆开以后会发现,调用会失败,因为在3层嵌套的decorator定义中,最内层的wrapper引用了最外层的参数prefix,所以,把一个闭包拆成普通的函数调用会比较困难。不支持闭包的编程语言要实现同样的功能就需要更多的代码。如果有的函数非常重要,希望打印出’[INFO] call xxx()…‘,有的函数不太重要,希望打印出’[DEBUG] call xxx()…',这时,log函数本身就需要传入’发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。需要3层嵌套的decorator来实现。
2017-03-16 16:28:30 45208
原创 Python进阶(七)浅谈python3和Python2的区别
不管使用何种版本的Python语言,都需要遵循编程规范,不该有的缩进一定不能有。否则会出现莫名其妙的错误,如下图所示:在应用Python编程时,首先要明确所使用Python版本,因为版本2与3之间存在着很多细节性的差异。稍有不慎就会入坑~下面介绍一下具体应用中的细节性差异。具体参照。
2017-03-16 11:16:22 47473
原创 Python进阶(六)python编写无参数decorator
Python的decorator本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。使用decorator用Python提供的@语法,这样可以避免手动编写这样的代码。考察一个@log对于阶乘函数,@log结果:3628800结果:因为add()函数需要传入两个参数,但是@log写死了只含一个参数的返回函数。要让@log自适应任何参数定义的函数,可以利用Python的*args和**kw现在,对于任意函数,@log 都能正常工作。
2017-03-16 11:11:33 45076 2
原创 Python进阶(五)浅谈python匿名函数
高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2关键字lambda表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
2017-03-15 22:06:05 46188
原创 Python进阶(四)浅谈Python闭包
注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
2017-03-15 21:52:33 45843 2
原创 Python进阶(三)函数式编程之reduce()
官方解释如下:格式:reduce()函数即为化简函数,它的执行过程为:每一次迭代,都将上一次的迭代结果(注:第一次为init元素,如果没有指定init则为seq的第一个元素)与下一个元素一同传入二元func函数中去执行。在reduce()函数中,init是可选的,如果指定,则作为第一次迭代的第一个元素使用,如果没有指定,就取seq中的第一个元素。
2017-03-15 16:33:35 45537
原创 网站开发进阶(六十二)最强大的 CSS 布局——Grid 布局
Grid 布局相关的属性以及值众多,需要记忆的不少,建议可以跟 demo 一起结合起来,边敲代码边理解,再利用一些空闲时间记忆一下。笔者会在介绍每个属性的时候,做个小 demo 演示,建议大家可以自己修改看看效果加深记忆。Grid 布局属性可以分为两大类,一类是容器属性,一类是项目属性。我们先来看容器属性。可以指定网格项目所在的四个边框,分别定位在哪根网格线,从而指定项目的位置。属性:左边框所在的垂直网格线;属性:右边框所在的垂直网格线;属性:上边框所在的水平网格线;属性:下边框所在的水平网格线;
2017-03-15 13:51:46 93350 2
原创 Python进阶(二)初识Python数据元素:字典&时间
字典(dic dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典由键和对应的值组成。字典也被称作关联数组或哈希表。dict = {dict1 = {dict2 = {每个键与值必须用冒号隔开(😃,每对用逗号分割,整体放在花括号中{}。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
2017-03-14 16:40:55 48164
原创 Python进阶(一)初识Python数据元素:列表&元组
毕业论文已完成,下面就是等待盲审结果了。在此期间,已感觉论文无从看起。就学习一下Python吧,听说这是一门很神奇的语言。下面言归正传~点击查看IDE:IntelJ。有关IntelJ的安装与注册详见博文《IntelliJ IDEA 2016注册方法和注册码》。下面介绍一下Python中几种不熟悉的数据元素:列表、元组、字典、时间。
2017-03-14 16:19:21 48124 1
原创 网站开发进阶(七十):CSS 实现圆角有立体感的 DIV 边框
IntelliJ IDEA 2016&2017注册方法和注册码 题外话:看到IntelliJ的启动界面,不得不说画面做的太炫了! IntelliJ IDEA号称当前Java开发效率最高的IDE工具。IntelliJ IDEA有两个版本:社区版(Community)和旗舰版(Ultimate)。社区版时免费的、开源的,但功能较少,旗舰版提供了较多的功能,是收费的,可以试用30天。
2017-03-14 11:05:20 49943
原创 JVM进阶(十九)——Class文件常量池
JVM进阶(十九)——Class文件常量池 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表: 接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。 被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明
2017-03-13 16:20:55 46118 9
原创 JVM进阶(十八)——初识Class文件
JVM进阶(十八)——初识Class文件 关于类加载机制的相关知识在前面的博文中暂时先讲那么多。中间留下了很多问题,从本篇博文开始,我们来一一解决。 从我们最陌生而又最熟悉的.class文件开始说起。.class文件是一个由8位二进制构成一个字节的字节码文件,里面的格式都是按照规定好的顺序紧凑的排列在文件中。 在.class文件中,他的数据都是以无符号数和表的形式存储的,后面我们进行.
2017-03-13 15:54:10 44948 2
Vue下textarea文本框根据内容自适应改变高度
2020-10-20
BackToTop.zip
2019-11-05
dubbo-admin-2.5.4 Web管理平台.zip
2018-04-29
dubbo-monitor-simple-2.5.3.zip
2018-04-29
w3c标准html5手册
2017-08-28
Chart.js实现饼状图添加文字
2017-08-28
Icon制作神奇-Greenfish Icon Editor3.31官方中文版
2017-04-25
iOS集成听云uni-app插件JS资源文件
2022-10-12
基调听云App移动应用性能管理产品采用SDK方式实现对App的**崩溃、卡顿、超时**等性能问题进行采集,并能对真实用户体验数据
2022-10-11
react-native实现ios横屏全屏展示
2024-03-13
react-native实现ios横屏全屏展示
2024-03-05
谁是第3w [face]monkey2:012.png[/face]
2021-03-24
学无止境[face]monkey2:005.png[/face]
2021-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人