- 浏览: 20414 次
- 性别:
- 来自: 苏州
文章列表
python有几个内置的函数很有意思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并,这几个词还是太抽象了,下面的代码精确的说明了这几个函数的用途:
引用map
def map_imp(function, sequence) :
if function is None: return list(sequence)
retvals = []
for element in sequence:
if (function(element))
re ...
Python多线程实例
- 博客分类:
- Python
from threading import Thread
class Task(Thread):
def __init__(self, count):
super(Task, self).__init__()
#Thread.__init__(self)
self.count = count
def run(self):
for i in range(10):
print 'Task' + str(self.count) + ':' + str(i)
...
首先用utf8编码形式写一个测试用的txt文件
>>> file = open('test.txt','r')
>>> txt = file.read()
>>> txt
'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe6\xb5\x8b\xe8\xaf\x95\xe6\x96\x87\xe4\xbb\xb6\nthis is a test file \n'
>>> print txt
这是一个测试文件
this is a test file
> ...
适配器模式分两种:对象适配器,类适配器。
先上类图:
区别如下:
1,类适配器:
若client所调用的target是一个接口,则adapter可以继承adaptee并实现target接口,这样就可通过处理adaptee来适配target接口供client调用。
2,对象适配器:
若client所调用的target是一个类,则adapter可以继承target并组合target,即持有target的引用来进行适配。
实现Adapter方式,其实"think in Java"的"类再生"一节中已经提到,有两种方式:组合(composition)和继承(i ...
#include <stdio.h>
#include <stdlib.h>
//头像面朝上的概率
int heads()
{
return rand() < RAND_MAX/2;
}
int main(int argc, char *argv[])
{
int i, j, cnt;
//N为每次实验投币的次数,M为实验的次数
int N = atoi(argv[1]), M = atoi(argv[2]);
int *f = malloc((N+1) * sizeof(int));
for (i = 0; ...
这种方法的求素数的效率很高
#include <stdio.h>
#include <stdlib.h>
/*筛选法求素数,即质数
素数是只能被1和自身整除的数
从2开始递增,删除此数的倍数,则以后出现的就都是素数了
*/
int main(int argc, char *argv[])
{
//atoi函数将字符串转化为长整型
int i, j, N = atoi(argv[1]);
int *a = malloc(N * sizeof(int));
//初始化
for (i = 0; i < N; i+ ...
C语言可变参数函数示例
- 博客分类:
- C/C++
#include <stdio.h>
#include <stdarg.h>
int demo(char *msg, ...)
{
va_list argp;
int num = 0;
char *para;
va_start(argp, msg);
while(1) {
para = va_arg(argp, char *);
if (strcmp(para, "\0") == 0)
break;
printf("parameter #%d is: %s\n", nu ...
今天重新拿起C语言的书学习学习,遇到了一个诡异的问题,开始不可理解,现在记录下整个分析过程。
首先上代码:
#include <stdio.h>
void strcopy(char *s, char *t)
{
while ((*s++ = *t++) != '\0')
;
}
int main()
{
int i = 3;
...
一时心血来潮,参考网上所搜到的代码,写了个截图程序,基本实现功能,可以算作第一版,代码见附件
先上代码:
public class ThreadA extends Thread {
@Override
public void run() {
System.out.println("A start...");
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
System.out.println("ta:"+i);
} catch (InterruptedException e) {
e.printStackTr ...
简单工厂模式又称静态工厂模式
下面看代码示例:
public interface Robot {
public void work();
}
public class Factory {
public static Robot create(Class<?> clazz) {
try {
Robot robot = (Robot)clazz.newInstance();
return robot;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
...
写法一:
public class Singleton {
/**
* 线程安全,因为jvm在加载类时,对static的属性只能有一个线程执行一次
* 比较复杂的创建过程可以放在static{}里面
*/
private static Singleton instance = new Singleton();
private Singleton() {}
private static Singleton getInstance() {
return instance;
}
}
写法二:
public class LazySingleto ...
先上模板方法模式的类图:
代码演示:
public abstract class AbstractClass
{
public abstract void PrimitiveOperation1();
public abstract void PrimitiveOperation2();
public void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
}
...
这个示例实现的功能:
将文本中类似于‘21-12-2011’这样的日期类型找出来,替换为‘2011-12-21’
上代码:
import re
pat = '\d{1,2}-\d{1,2}-\d{4}'
p = re.compile(pat)
f = open('c:/oreacle++emp.txt')
t = f.readline()
while t != '':
res = re.findall(pat,t)
if res:
arr = res[0].split('-')
arr.reverse()
pri ...
1.连接串设置编码:jdbc:mysql://127.0.0.1:3306/ibitispring?characterEncoding=UTF-8
2.在建表的时候设置编码:
创建表
CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N',
`flag_type` int(5) NOT NULL default '0',
`type_name` ...