排序可否用ASCII码判断?请问这段代码问题是什么?
def cmp_ignore_case(s1, s2): if 's1'<97: S1=s1+32 if 's2'<97: S2=s2+32 if S1<S2: return -1 if S1>S2: return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
def cmp_ignore_case(s1, s2): if 's1'<97: S1=s1+32 if 's2'<97: S2=s2+32 if S1<S2: return -1 if S1>S2: return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2017-01-24
def cmp_ignore_case(s1,s2): S1='' S2='' for x in s1: if ord(x)<97: #ord():将一个字符转换为它的整数值 S1=S1+unichr(ord(x)+32)#unichr()将一个整数转换为Unicode字符 else: S1=S1+x for x in s2: if ord(x)<97: S2=S2+unichr(ord(x)+32) else: S2=S2+x if S1<S2: return -1 if S1>S2: return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
自定义函数的参数s1,s2是一个字符串,不能把一个字符串直接转成ASSLL码,只能一个字母一个字母的转换,然后再拼到一起,组成一个新的字符串。然后再比较。 上面的连个循环就是逐个字母转换
举报