- 博客(17)
- 资源 (8)
- 收藏
- 关注
原创 区别method和function
方法和函数是有区别的。概念上的区别: 在面向对象语言中,方法通常指类中定义的函数。语法上的区别: 方法有一个this关键字用来引用当前对象。
2016-09-29 22:39:37 590
原创 scala脚本编译运行
用cmd编译和运行scala脚本。脚本内容: Decla.scalaobject Decla{ def main(args: Array[String]){ var myVar : Int = 10 val myVal : String = "Hello Scala" var myVar1 = 20 val myVal1 =
2016-09-26 15:28:29 4244
原创 Python日志
为什么要日志日志对于系统开发、调试、运维都是非常重要的,它有助于我们分析程序。和print的比较The logging package has a lot of useful features:Easy to see where and when (even what line no.) a logging call is being made from.You can log to files
2016-09-25 20:37:52 408
原创 生成器(Generator)
回顾生成器表达式在条件和循环(包括迭代器、生成器)这篇博客里面我们简单的介绍过生成器表达式。回顾一下: 生成器表达式和列表解析式非常相似,基本语法基本相同;不过它并不真正创建列表,而是返回一个生成器。这个生成器在每次计算出一个条目后,把这个条目“yield(产生)”出来。生成器表达式使用了“延迟计算(lazy evaluation)”,所以在内存上更有效。语法:(expr for iter_v
2016-09-25 15:25:28 339
原创 闭包(Closures)
闭包定义怎么定义在函数定义中定义内部函数时,如果内部函数引用到了外部域(非global)的对象,我们则称内部函数为闭包,被引用的那个对象(变量)被称为自由变量。闭包是函数式编程中非常重要的概念。闭包示例def counter(start_at=0): count = [start_at] def incr(): count[0] += 1 retu
2016-09-25 01:30:55 303
原创 装饰器(Decorator)
1. 函数也是对象在python中,函数也是对象,它有自己的方法,它可以传递下去。函数传递>>> def brown(): print 'brown'>>> new_brown = brown # 函数对象传递>>> new_brown()brown2. 什么是装饰器装饰器实际上是函数,它以函数对象为参数,可以在它所装饰的函数的前或后添加一些其
2016-09-24 16:27:31 908
原创 迭代器
简述迭代器为类似序列的对象提供了类似序列的接口。根本上说, 迭代器就是有一个next() 方法的对象, 而不是通过索引来计数. 当你或是一个循环机制(例如 for 语句)需要下一个项时, 调用迭代器的 next() 方法就可以获得它. 条目全部取出后, 会引发一个 StopIteration 异常, 这并不表示错误发生, 只是告诉外部调用者, 迭代完成。为何可以直接迭代list、set、tuple、
2016-09-24 01:41:28 269
原创 变量作用域(Variable Scope)
global关键字在局部作用于中使用全局变量,需要使用global关键字。>>> a= 10>>> def test(): global a a += 1 print a>>> test()11>>> a11作用域数量python支持多个作用域。程序最多有n层函数嵌套,就有n+1个作用域。 比如下面程序就有3个作用域:全局作用域,func_o
2016-09-22 22:38:17 926
原创 dict过滤
过滤很容易让人想到用filter()函数,如下:>>> dict1 = { 1: '1', 2: '2', 3: '3', 4: {'4': 5}}>>> filter(lambda x: x >= 3, dict1)[3, 4]这种方式产生的结果当然不是我们所要的。为了实现我们的目标,我们可以采用如下两种方法:# Method 1>>> dict(filte
2016-09-22 18:47:02 1730
原创 偏函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。通过设定参数的默认值,可以降低函数调用的难度。code example>>> from functools import partial>>> int('123',base=8)83>>> int2 = partial(int, base=8) # int是一个函数>>> in
2016-09-22 00:14:56 281
原创 Python中的断言
描述及用法 断言语句等价于这样的 Python 表达式,如果断言成功不采取任何措施,否则触发AssertionError(断言错误)的异常。AssertionError 异常和其他的异常一样可以用 try-except 语句块捕捉,但是如果没有捕捉,它将终止程序运行而且提供一个traceback。code exampletry: assert 1 == 0, 'One does not
2016-09-21 18:34:24 1136
原创 Python异常处理
异常简介先回答几个问题:为什么要需要异常? 答:防止程序出现错误而终止。比如你打开了一个数据库连接,执行SQL语句的时候,语句有问题,如果不去捕获SQL异常,程序会到此处中断。意味着假设你后面写了关闭数据库连接操作,它不会被执行。异常的描述 答:异常是程序出现了错误而在正常控制流之外采取的行为。在python中,所有的错误都符合相似的格式。所有的错误,无论是语法上的还是逻辑上的,都是由于和p
2016-09-21 16:59:14 560
原创 Python持久化
有关持久化的模块marshal和pickle、cPickle可以用来转换并存储python对象。该过程将对象转化为二进制数据集合。 dbhash/bsddb, dbm, gdbm, dumbdbm 以及它们的”管理器”( anydbm )只提供了字符串的永久性储存。 shelve则既可以存储对象,也可以存储字符串。marshal和pickle模块的区别marshal和pickle模块的区别在于
2016-09-21 12:29:29 1119
原创 用os模块进行文件系统操作
os模块提供了对进程和进程环境进行管理和处理大部分的文件系统操作功能。具体包括:删除/重命名文件、遍历目录树、管理文件访问权限等。os.path模块可以完成一些针对路径名的操作。os模块常用函数及功能 os.path模块常用函数及功能
2016-09-21 10:26:19 399
原创 Python生成随机数
1.在某个范围生成x个随机数使用 numpy包 实现>>> import numpy as np>>> np.random.randint(1, 100, 10)array([23, 55, 7, 75, 22, 83, 35, 6, 24, 33])上述在0和100之间生成了10个随机数。2.生成无重复的随机数假设我们要在某个范围内生成不重复的随机数怎么办? 1的方法不行。此时我们可以使
2016-09-19 23:25:08 727
原创 Python做词云
网上有一些现成的词云生成工具: HTML5、tagxedo等 但是这些工具都不太好用(有的不支持中文、有的中文词频统计得莫名其妙、有的不支持自定义形状、所有的都不能自定义颜色,尽管可能有一些主题可选)。想要深度定制,必须写代码啊。我们使用wordcloud包# -*- coding: utf-8 -*-from PIL import Imageimport numpy as npimpor
2016-09-07 12:50:01 4765
原创 Python排列组合
使用itertools包常见函数使用 product 笛卡尔积 permutations 排列 combinations 组合,没有重复 combinations_with_replacement 组合,有重复 code example>>> import itertools>>> for i in itertools.product('ABCD', repeat
2016-09-06 14:59:58 676
邻接表存储的图的DFS,BFS遍历
2017-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人