'''1.复制字符串'''
#strcpy(sStr1,sStr2)
sStr1 = 'strcpy'
sStr2 = sStr1
sStr1 = 'strcpy2'
print sStr2
'''2.连接字符串'''
#strcat(sStr1,sStr2)
sStr1 = 'strcat'
sStr2 = 'append'
sStr1 += sStr2
print sStr1
'''3.查找字符'''
#strchr(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'r'
nPos = sStr1.index(sStr2)
print nPos
'''4.比较字符串'''
#strcmp(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'strch'
print cmp(sStr1,sStr2)
'''5.扫描字符串是否包含指定的字符'''
#strspn(sStr1,sStr2)
sStr1 = '12345678'
sStr2 = '456'
#sStr1 and chars both in sStr1 and sStr2
print len(sStr1 and sStr2)
'''6.字符串长度'''
#strlen(sStr1)
sStr1 = 'strlen'
print len(sStr1)
'''7.将字符串中的小写字符转换为大写字符'''
#strlwr(sStr1)
sStr1 = 'JCstrlwr'
sStr1 = sStr1.upper()
print sStr1
'''8.追加指定长度的字符串'''
#strncat(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = 'abcdef'
n = 3
sStr1 += sStr2[0:n]
print sStr1
'''9.字符串指定长度比较'''
#strncmp(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = '123bc'
n = 3
print cmp(sStr1[0:n],sStr2[0:n])
'''10.复制指定长度的字符'''
#strncpy(sStr1,sStr2,n)
sStr1 = ''
sStr2 = '12345'
n = 3
sStr1 = sStr2[0:n]
print sStr1
'''11.字符串比较,不区分大小写'''
#stricmp(sStr1,sStr2)
sStr1 = 'abcefg'
sStr2 = 'ABCEFG'
print cmp(sStr1.upper(),sStr2.upper())
'''12.将字符串前n个字符替换为指定的字符'''
#strnset(sStr1,ch,n)
sStr1 = '12345'
ch = 'r'
n = 3
sStr1 = n * ch + sStr1[3:]
print sStr1
'''13.扫描字符串'''
#strpbrk(sStr1,sStr2)
sStr1 = 'cekjgdklab'
sStr2 = 'gka'
nPos = -1
for c in sStr1:
if c in sStr2:
nPos = sStr1.index(c)
break
print nPos
'''14.翻转字符串'''
#strrev(sStr1)
sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print sStr1
'''15.查找字符串'''
#strstr(sStr1,sStr2)
sStr1 = 'abcdefg'
sStr2 = 'cde'
print sStr1.find(sStr2)
'''16.分割字符串'''
#strtok(sStr1,sStr2)
sStr1 = 'ab,cde,fgh,ijk'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print sStr1
Thursday, October 30, 2008
实现URL编码解码的python程序
import urllib
import sys
string = sys.argv[1]
string = unicode(string,"gbk")
utf8_string = string.encode("utf-8")
gbk_string=string.encode("gbk")
gbk=urllib.quote(gbk_string)
utf8=urllib.quote(utf8_string)
print gbk
print utf8
解码使用unqute和decode函数
import sys
string = sys.argv[1]
string = unicode(string,"gbk")
utf8_string = string.encode("utf-8")
gbk_string=string.encode("gbk")
gbk=urllib.quote(gbk_string)
utf8=urllib.quote(utf8_string)
print gbk
print utf8
解码使用unqute和decode函数
Tuesday, October 28, 2008
Thursday, October 16, 2008
IE和FF很重要的差异
在HTTP并发请求上,IE和FF有很大的区别,IE有并发限制,FF却没有,这时就要更好组织HTTP请求顺序
在数组上,length 长度也存在区别
var list = [a,b,c,d,]
在IE上 list.length = 5
在FF上list.length = 4
这样来看FF更聪明些,确实只有4个值,而IE把最后个逗号也算上了
在使用时这样解决,[a,b,c,d,null],length-1就是正确长度了。
在数组上,length 长度也存在区别
var list = [a,b,c,d,]
在IE上 list.length = 5
在FF上list.length = 4
这样来看FF更聪明些,确实只有4个值,而IE把最后个逗号也算上了
在使用时这样解决,[a,b,c,d,null],length-1就是正确长度了。
datastore的一个索引bug?
自动生成的index.yaml里面多出来一个
# Unused in query history -- copied from input.
- kind: Comment
properties:
- name: True
direction: desc
奇怪了,model里面我没有name为True的property。
问题出来了,model里面有个name为yes的property,在dev环境下yes的indexes自动生成并且是生效的,查询成功,update到GAE上并不会生效,查询失败的,提示需要这个索引,奇怪了?
找了很久的原因,最后把问题给解决了。
在一个model的里面不能取叫yes的property,否则datastore会认为是True,就会产生一个为True的indexs,恰恰这个
indexs从未被使用过,并且本应name叫yes的的indexs反而不能生效,就导致问题产生,也许是GAE的一个bug吧,我现在的问题就是这样解决的。
# Unused in query history -- copied from input.
- kind: Comment
properties:
- name: True
direction: desc
奇怪了,model里面我没有name为True的property。
问题出来了,model里面有个name为yes的property,在dev环境下yes的indexes自动生成并且是生效的,查询成功,update到GAE上并不会生效,查询失败的,提示需要这个索引,奇怪了?
找了很久的原因,最后把问题给解决了。
在一个model的里面不能取叫yes的property,否则datastore会认为是True,就会产生一个为True的indexs,恰恰这个
indexs从未被使用过,并且本应name叫yes的的indexs反而不能生效,就导致问题产生,也许是GAE的一个bug吧,我现在的问题就是这样解决的。
Monday, October 13, 2008
用javascript来控制页面跳到指定锚点
用javascript来控制页面跳到指定锚点
window.location.hash = "here"; //here为锚点的名字
纯ajax开发时能用到。
window.location.hash = "here"; //here为锚点的名字
纯ajax开发时能用到。
Wednesday, October 08, 2008
Firefox和ie下都能得到的鼠标坐标
function getMousePt(evt){
alert( evt.clientX +" , "+ evt.clientY );
}
getMousePt(event);
alert( evt.clientX +" , "+ evt.clientY );
}
getMousePt(event);
Monday, October 06, 2008
设置response头,输出xml,并设置编码
self.response.headers['Content-Type'] = 'text/xml;charset=utf-8'
self.response.out.write('<res>RPC</res>')
self.response.out.write('<res>RPC</res>')
Sunday, October 05, 2008
datastore根据key的id查询
查询:
mid = int(self.request.get('mid'))
marker = Marker.get_by_id(mid)
self.response.out.write('%s' % marker.click)
查询并更新,Datastore真的很方便:
mid = int(self.request.get('mid'))
marker = Marker.get_by_id(mid)
click = marker.click
click += 1
marker.click = click
marker.put()
self.response.out.write('%s' % click)
时间操作
时区转换,转为东8区,加上8小时
from datetime import timedelta
self.response.out.write('
datetime: '+ (marker.date + timedelta(hours=+8)).strftime("%Y-%m-%d %H:%M:%S %Z%z") )
datetime: '+ (marker.date + timedelta(hours=+8)).strftime("%Y-%m-%d %H:%M:%S %Z%z") )
Subscribe to:
Posts (Atom)