异度部落格

学习是一种生活态度。

0%

系统版本:Ubuntu 10.10

Python 安装

sudo apt-get install python

Apache 安装

sudo apt-get install apache2

mod_python 模块安装

sudo apt-get install libapache2-mod-python

测试 Apache

重启电脑后,在浏览器中输入:http://localhost

出现"It works"说明安装成功

安装 django

下载 Django-1.3.tar.gz

tar xzvf Django-1.3.tar.gz
cd Django-1.3
sudo python setup.py install

测试 django

在 Python 命令行中输入

import django
print django.get_version()

如果无错误则安装成功。

mysql 安装

sudo apt-get install mysql-server mysql-client mysql-admin

python mysql 支持:

sudo  apt-get install python-mysqldb

#-------------------------------------------------------------------------------
# Name: Sort.py
# Purpose:
#
# Author: Killua
# E-mail: [email protected]
# Created: 11-04-2011
# Copyright: (c) Killua 2011
#-------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys;
import random;
import time;
#冒泡排序
def BubbleSort(array):
for i in range(0,len(array)):
flag = True;
for j in range(i,0,-1):
if array[j] < array[j-1]:
array[j-1], array[j] = array[j], array[j-1];
flag = False;
if flag :
break;
#选择排序
def SelectSort(array):
for i in range(0, len(array)):
pMin = i;
for j in range(i+1, len(array)):
if array[j] < array[pMin]:
pMin = j;
if pMin != i :
array[i], array[pMin] = array[pMin], array[i];
#插入排序
def InsertSort(array):
for i in range(1, len(array)):
for j in range(i,0,-1):
if array[j] < array[j-1]:
array[j],array[j-1] = array[j-1],array[j];
else:
break;
#快速排序
def partition(array, left, right):
mid = (left + right) / 2;
tmp = array[mid];
i = left;
j = right;
while(True):
if i == j:
array[i] = tmp;
return i;
if array[i] > tmp:
array[i] = array[j];
j = j - 1;
break;
i = i + 1;
while(True):
if i == j:
array[i] = tmp;
return i;
if array[j] < tmp:
array[j] = array[i];
i = i - 1;
break;
j = j - 1;
def quickSort(array, left, right):
if left >= right:
pivot = partition(array, left, right);
quickSort(array,left, pivot - 1);
quickSort(array, pivot + 1, right);
def QuickSort(array):
quickSort(array, 0, len(array) - 1);
#希尔排序
def ShellSort(array):
delta = int(len(array) / 2);
while delta > 0:
for i in range(0, delta):
for j in range(i + delta, len(array), delta):
for k in range(j, 0, -delta):
if array[k] < array[k-delta]:
array[k],array[k-delta] = array[k-delta],array[k];
delta = int(delta / 2);
#归并排序
def merge(array, left, right, middle):
i = left;
j = middle + 1;
tmp = [];
while i <= middle and j <= right:
if array[i] < array[j]:
tmp.append(array[i]);
i = i + 1;
else:
tmp.append(array[j]);
j = j + 1;
while i <= middle:
tmp.append(array[i]);
i = i + 1;
while j <= right:
tmp.append(array[j]);
j = j + 1;
array[left : right] = tmp[0 : -1]; #此处不能写成array[left : right] = tmp;
def mergeSort(array, left, right):
if left < right:
middle = int((left + right) / 2);
mergeSort(array, left, middle);
mergeSort(array, middle + 1, right);
merge(array, left, right, middle);
def MergeSort(array):
mergeSort(array, 0, len(array) - 1);
#堆排序
def heapAdjust(array, s, e):
tmp = array[s];
i = s * 2;
while i <= e:
if i + 1 <= e and array[i] < array[i+1]:
i = i + 1;
if array[i] < array[s]:
array[s] = array[i];
i = s;
else:
break;
i = i * 2;
array[s] = tmp;
def HeapSort(array):
for i in (int((len(array) - 1)/2), 0, -1):
heapAdjust(array, i, len(array) - 1);
for i in (len(array) - 1, 0, -1):
array[i], array[0] = array[0], array[i];
heapAdjust(array, 0, i);
#数据生成
def RandomNumGenerate(n):
data = [];
for i in range(0,n):
data.append(random.randint(0,1000));
return data;

【题目描述】 求1+2+…+n 要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句   【题目来源】未知   【题目分析】 一般求1+2+…n,是使用循环或者阶乘,这边加限制条件可以考虑用递归。如果使用递归的话,最重要的就是考虑递归退出条件,由于不能用if语句,而退出必然需要判断,于是使用了bool型表达式,用于终止函数的继续递归。   【代码】

#include<iostream>
using namespace std;
int sum(int n)
{
int res = 0;
int i = 1;
(n > 0)&&(res = sum(n-1) + n);
return res;
}
int main()
{
//Just For Test
int res = sum(100);
cout << res <<endl;
return 0;
}

单击单元格,点"格式"->"条件格式"

设定条件

点"格式"->"字体"->"颜色",选中你喜欢的颜色

点"确定"。

【题目描述】连续整数之和为1000可分为几组

【题目来源】Microsoft

【题目分析】 假设连续的整数之和为从n到m。那么n累加到m的和为(n+m)(m-n+1)/2=1000。
即(n+m)(m-n+1) = 2000。也就是说要将2000分解为一个奇数和偶数的乘积。
将2000因式分解得到2000 = 2^4 * 5^3。
于是可以分为4组
2000 = 16125
2000 = 80
25
2000 = 400 * 5
2000 = 2000 * 1
解二元一次方程可以得到各个n和m。

变更 Internet Explorer 的安全设置:

  1. 开启Internet Explorer

  2. 单击[工具] -> [Internet 选项],单击[高级]标签。

  3. 向下滚动到[安全]部分,确保下面的复选框设置正确:

  • 清除[检查服务器证书吊销]复选框。
  • 选择[使用 SSL 2.0]复选框。
  • 选择[使用 SSL 3.0]复选框。
  1. 单击[确定]关闭该窗口。

1)下载 AjaxControlToolkit http://ajaxcontroltoolkit.codeplex.com/releases/view/11121 建议下载 AjaxControlToolkit-Framework3.5-NoSource.zip

2)将 AjaxControlToolkit 集成到 VS2008 中 打开 VS2008 新建项目->ASP.NET 应用程序。 右键单击工具栏,选择【添加选项卡】并命名为 AJAX Control Toolkit,然

后在该选项卡内部右键选择【选择项】。 选择 AjaxControlToolkit-Framework3.5-NoSource/SampleWebSite/Bin/AjaxControlToolkit.dll ,这个时候应该工具箱

里面会生成相应的控件

3)有如下两种方法

<%@ Register Assembly= "AjaxControlToolkit" Namespace = "AjaxControlToolkit" TagPrefix = "ajax" %> 加到aspx里面。

或者 修改 web.config,添加

<pages>
<controls>
....
<add tagPrefix="ajax" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit , PublicKeyToken=31BF3856AD364E35"/>
....
</controls>
</pages>

PS:之前一直有问题是在集成完工具后,无法使用控件。个人认为可能是因为下载的那个 AjaxControlToolkit 有问题,后面下载了个 AjaxControlToolkit-Framework3.5,问题解决。

在 IE 里大家都习惯使用

text-align: center;

来把整个页面居中,然后在其包含的 DIV 里使用。而在其他的浏览器中(比如说 FireFox 和 Chrome),大家都喜欢用

margin:0 auto;
height:auto;

让他们的左右空隙都自动来使其居中。

getElementsByName()定义和用法 getElementsByName() 方法可返回带有指定名称的对象的集合。 语法

document.getElementsByName(name);

该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。 另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

getElementById()定义和用法 getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。 语法

document.getElementById(id);

说明
HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName()。 不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。 在操作文档的一个特定的元素时,最好给该元素一个 id 属性,为它指定一个(在文档中)唯一的名称,然后就可以用该 ID 查找想要的元素。

PS:要注意 getElementsByName()返回的是一个集合,即使只有一个,也要加上下标索引

isNaN 函数

isNaN(expression:Object) : Boolean

计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。

参数
expression:Object - 要计算的布尔值、变量或其它表达式。

返回
Boolean - 一个布尔值。

例子:

if (isNaN(document.login.imgcode.value)) {
alert("验证码必须是数字!");
document.login.imgcode.focus();
return false;
}