自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

含笑

一个在虚幻世界中比较真实的生物。(博客转移到慕课网手记,CSDN停更)

  • 博客(30)
  • 收藏
  • 关注

原创 Ag和Laravel开发仿知乎笔记-前端

安装Angular安装ui-router安装normalize.css安装JQuery创建基础文件及基础页面npm install jquery angular angular-ui-router normalize-cssAPIRoute::get('/', function () { return view('welcome');});view在resources中的vie

2017-05-29 21:26:12 951

原创 Ag和Laravel开发仿知乎笔记-后端

结构预览 难点:Laravel表机制:保证结构复杂的数据的一致性,如何规划数据结构,如何封装为易用且运行稳定的API使用composer安装laravelphp composer.phar create-project laravel/laravel project disable-tls(前提把composer.phar放在安装目录)报错: The openssl extension is re

2017-05-22 17:48:08 1800

原创 MYSQL性能优化之基准测试

基准测试(benchmarking)是一种测量和评估软件性能指标的活动。你可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。 说简单点,就是针对系统设置的一种压力测试。测量系统性能,然后确保优化是否有效。 基准测试的目的: 对整个系统进行基准测试: 从系统入口进行测试(如网站Web前端,手机APP前端)

2017-05-19 13:33:23 828

原创 MYSQL性能优化之Mysql数据库结构设计

数据库结构设置和SQL语句优化是最能提升性能的优化了,和项目进行持续优化减少数据冗余(数据多次出现,或者一列数据可以通过其他列计算得到)尽量避免数据维护中出现更新,插入和删除异常(可以利用范式化模型来解决) 插入异常:表中的某个实体随着另一个实体而存在更新异常:如果更改表中的某个实例的单独属性时,需要对多行进行更新。(数据冗余)删除异常: 删除表中的某个实体,另一个实体也消失节约数据存储

2017-05-19 12:37:04 5646 1

原创 MYSQL性能优化之Mysql服务器参数

不同操作系统,mysql读取配置文件的位置顺序可能是不同的MySQL配置参数根据作用域:分为全局参数和会话参数(动态调整)会话参数在没有单独指定的时候,会使用相同名称的全局参数做为默认值; 有的全局变量修改后只对新的session有效,对于已经连接的session还是使用原来的参数(重新登陆才会更新)Session1: Session2: 重新登陆: 内存配置相关参数: 笔记

2017-05-16 22:51:09 637

原创 python-实现属性可修改的函数装饰器-28

from functools import wrapsimport timeimport loggingdef warn(timeout): def decorator(func): def wrapper(*args,**kargs): start = time.time() #记录返回值 res = func

2017-05-10 19:04:19 420

原创 python-定义带参数的装饰器-27

先建立装饰器框架:def typeassert(*ty_args,**ty_kargs): def decorator(func): # func -> a,b 传入两个参数 # d = {‘a’:int,'b':str}建立一个字典 def wrapper(*args,**kargs): # 判断参数和类型是否在字典中对应

2017-05-10 19:00:59 803

原创 python-为被装饰的函数保存元数据-26

func_name 相当于 __name__ __doc__函数的字符串文档 __module__函数处于哪个模块 __defaults__保留函数的默认参数,在python,默认函数在创建函数时就定义好了。记住,不是调用时创建哦 __closure__ 访问函数的闭包 在默认参数中最好不要使用可变对象。 def mydecorator(func): def wrap

2017-05-10 19:00:15 1676

原创 python-24-如何派生类内置不可变类型并修改其实例化行为?如何为创建大量实例节省内存?

# 创建一个插口IntTuple,包含内置插口tuple,行为一致.tuple是一个不可变对象,所以我们不能从self来删除一些数据class IntTuple(tuple): #__new__的参数是一个类对象,此时我们来修改他 def __new__(cls,iterable): # 使用生成器对象 g = (x for x in iterable if

2017-05-10 18:51:49 838

原创 python-23-读写excel文件

我们尝试添加总分列,并计算各个同学的总分成绩 直接获取某一行所有值,第二项是从第几个格子开始 import xlrdbook = xlrd.open_workbook('demo.xlsx')#sheets可以获取所有的表,返回一个sheet对象book.sheets()#另一种获取sheet的方法sheet = book.sheet_by_index(0)# 访问行数sheet.nro

2017-05-10 18:51:08 565

原创 python-22-构建xml文档

Elemnt 对应父元素 ElementTree对应结构树 from xml.etree.ElementTree import Element,ElementTreeimport csve = Element('Data')e.set('name','abc')e.text = '123'from xml.etree.ElementTree import tostring# 可以看到

2017-05-10 18:49:47 520

原创 python-使对象支持上下文管理-29

使用上下文管理的好处,不用显式的去关闭文件(清理工作交给上下文管理,让其自动完成)

2017-05-10 11:48:07 378

原创 python-函数装饰器的使用-25(斐波那契)

计算斐波那契数列。def fibonacci(n):if n <= 1:return 1return fibonacci(n - 1) + fibonacci(n - 2)print(fibonacci(3))重复计算子问题,很浪费效率解决这种重复计算子元素的问题我们可以使用缓存来解决。先在缓存中查找,缓存没有再尖酸,然后计算结果

2017-05-09 21:00:04 1472 1

原创 React Native开发APP

React是基于JSX语法的网页开发和APP开发项目要求: 拍照,本地更改图像,更新个人资料为视频配音,预览,上传。提交到后台进行视频和音频的合并。监听上传的进度,如果通过进度的变化反应到视图的展现上开发流程: 小建议:注意学习时间学习成本,也就是效率每行js代码的断点调试,兼容IE678,js内部机制,DOM树,性能瓶颈等等微小的技术点没有时间研究(老前辈的

2017-05-08 11:11:39 1287 2

原创 python-21-如何读写json数据?如何解析简单的xml文档?

这里老师讲了一个小例子,调用百度的语音识别API来实现语音识别。大概过程是:录音获取token语音识别import json# dumps方法可以把一个python对象转换成json的字符串l = [1,2,'abc',{'name':'Bob','age':10}]print(json.dumps(l))#有些转换差别很大,有些转换差别很小,d = {'b':None,'a':5,

2017-05-06 13:38:00 685

原创 python-20-如何读写CSV数据?

我们通过csv库reader函数和writer函数来执行读和写操作。这两个函数都需要传入一个文件对象 python3和python2的写法有点不一样 报错:_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)Sorry, folks, we've got an

2017-05-06 12:35:15 1064

原创 python-19-如何访问文件的状态?如何使用临时文件?

import os os.start('文件名')获取文件状态os.lstart('文件名')不跟软链接os.rstart('打开的文件描述符')f = open('文件')f.fileno()得到文件描述符文件的类型存储在st_mode里 判断是否为文件夹stat.S_ISDIR(s.st_mode) 返回False判断是否为普通文件stat.S_ISREG(s.st_mode)

2017-05-05 16:50:56 2245 1

原创 python-18-如何将文件映射到内存?

当我们使用read读取文件时可以使用seek来定位指针。但是如果是二进制文件,定位读取就是一个难题了。 方案: 使用dd命令创建一个1MB大小内容为0的文件; 然后我们对该文件进行映射import mmapmmap.mmap在不同平台稍有差别f = open('demo.bin','r+b')f.fileno() =>文件描述符 5 - fileno文件描述符,并不是一个文件对

2017-05-05 16:23:06 2983

原创 AngularJS搭建单页APP(拉钩)

效果图->搭建项目->分模块开发->产品->扩展(迭代)路由管理模块的配置和使用(模块1)内置指令的使用方法自定义指令(模块2)过滤器promise和ajax内置服务第三方模块编写自定义服务(模块3)表单检验 Angular门槛: 模块(module):容器 指令(directive):负责和HTML元素进行绑定,同时相互作用 服务器(service):公有的代码逻辑

2017-05-05 09:01:45 1501

原创 python-17-如何读取文本文件?如何处理二进制文件?如何设置文件的缓冲?

前期由于计算机是由美国人发明的,所以ACSII,一个字节代表一个字符,字符串抽象的是连续的字节。 后来为了支持各国语言,发明了各种编码格式。unicode才是真正意义上的字符串s = u'你号'编码(unicode转换成str)print(s.encode('gbk'))print(s.encode('utf8'))四个字节b'\xc4\xe3\xba\xc5' 六个字节b'\xe4\

2017-05-04 22:10:26 3366

原创 python-16-如何去掉字符串中不需要的字符?

方法一: s = ' abc 123 'print(s)print(s.strip())s = '___ abc 123 ===='print(s.strip())print(s.strip('= _'))输出结果: abc 123 abc 123___ abc 123 ==== abc 123 缺点:不能

2017-05-03 21:40:04 11727

原创 python-15-如何对字符串进行左,右,居中对齐?

如果是正常迭代,是这样的。d = {'Adddd' : 500.0,'sB' : 0.04,'qqqqqqqqqC' : 477,'Dddd' : 100.0,'E' : 40 }for i in d: print(i,':',d[i])我们需要把字符串的宽度调整成相同的。 方法一:方法二: 当我们取得最大长度时,进行迭代。d = {'Adddd' : 500.0,'sB' : 0.04

2017-05-03 19:41:56 11519

原创 python-14-如何将多个小字符串拼接成一个大的字符串?

解决方案:方法一:加号使用的是str自带的构造函数add大于号使用的是str自带的构造函数gt把列表赋值给一个变量for p in pl: s += p不过呢,这种方式是存在巨大的浪费的。每一次的结果都是一个临时的字符串,用后扔掉。这也意味着大量的字符串拷贝和解释器释放。 浪费啊,好心疼,我可是农村的孩子啊。方法二:使用join方法,传入的参数:可迭代对象。一次性创建字符串 ''.

2017-05-03 17:33:51 9775 2

原创 python-13-如何调整字符串中文本的格式?sub函数

sub是substitute的所写,表示替换; re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能; re.sub共有五个参数。 其中三个必选参数:pattern(模式字符串), repl(被替换), string(表示要被处理,要被替换的那个string字符串) 两个可选参数:count, flags使用正则表达式在文件中找到

2017-05-03 17:15:10 872

原创 python-12-如何判断字符串a是否以字符串b开头或结尾(改变文件权限)?

os模块和系统调用相关;stat模块和文件状态相关 endswith可以接受一个元组(不能使列表)为参数,满足其中之一,就会返回Trues.endswith(('.sh','.py'))True列表报错: 过滤出以.py和.sh为结尾的文件[name for name in os.listdir('.') if name.endswith(('.sh'),'.py')]st_mode是

2017-05-03 16:43:05 3595

原创 python-11-如何拆分含有多种分隔符的字符串?

解决方案: 不过这样会有一个问题,如果两个字符串是一个分隔符,WTK.结果会多出一个字符串 所以我们可以把空字符串过滤掉。 第二种方式,推荐。re.split() +号的意思是,对于前面的这种形式,至少有一个或者是多个

2017-05-02 22:04:06 1956

原创 python-10-如何在一个for语句中迭代多个可迭代对象?

from random import randintchinese = [randint(60,100) for _ in range(40)]math = [randint(60,100) for _ in range(40)]english = [randint(60,100) for _ in range(40)]for i in range(len(math)): print(c

2017-05-02 21:30:49 3418

原创 python-9-如何对迭代器做切片操作?

文件并不能直接进行切片操作。redlines()可以把每一行读入到一个列表中。 弊端,readlines()方法会一次性的把文件导入到内存当中,如果文件很大,那就尴尬了(内存不足)。 然后 lines[100:300]. yeah,it’s work.readlines(),文件指针跑到文件结尾处,使用f.seek(0)使指针回到结尾处for line in f: pinr(line

2017-05-02 18:19:08 876

原创 python-8-如何进行反向迭代以及如何实现反向迭代?

l = [1,2,3,4,5]l.reverse()print(l)reverse()对列表的元素进行反向排序。 改变了原列表,从某种情形是不允许的l = [1,2,3,4,5]print(l[::-1])切片返回的数组和原数组同样大小,浪费资源。 推荐使用自带函数reversed(l),其将得到列表的反向迭代器,reversed实际上调用的是reversed方法 PS:iter(l)得

2017-05-02 18:00:14 2560

原创 python-7-如何使用生成器函数实现可迭代对象?

创建List和generator的区别仅在于最外层的[]和()如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generatorgenerator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。生成器既实现了迭代器接口,也实现了可迭代接口 。也就是说g.iter(

2017-05-02 17:11:22 683

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除