① “python”中怎么判断字符串相等
1:发现m=input();输入‘xinwen’后按回车。
2:m的值是 ‘xinwen
’,原因就在这里。
3:而在解析器中则没有这个问题。
4:你用的应该不是python3吧,麻烦你告诉我你用的python的版本
不好意思,不过我要说,你说s.attrib.get('dirname')==dirname
怎么着也检测不出来 是什么意思,是指这个判断总是为False吗?
第二行
dirname=''.join(list_full_filename[len_input_dir]) 内容等于“文件1”
意思是说dirname变量等于“文件1”吗?
第三行
s.attrib.get('dirname')=“文件1” 内容也等于“文件1”
意思是s.attrib.get('dirname')的值是“文件1”是吧??
不过你这里的s是什么呢????
print isinstance(s.attrib.get('dirname'),str) true
print isinstance(dirname,str) false
就可以知道:
s.attrib.get('dirname')==dirname
必然返回False的。应为他们的类型甚至都不一样。
你可以这样用:
unicode(s.attrib.get('dirname'))==dirname
不过先请告诉我你用的python的版本吧。不同版本的python对字符串的处理方法不一样的
② python 判断中文字符串是否相等
if u"星期 节次" == tempStr[0]
③ python 判断两个中文字符串是否相同
我记得结巴的话你给他的也必须是某种编码的(两年了忘记了)
你可以先用type(string)判断它是哪个编码 然后再类型转换
比如
s=f.readline()
s=unicode(s.decode("utf8"),"ignore")
其中decode可能要判断一下是够需要 然后再比较。
④ 请问哈这个python中的字符串比较是怎么比较的
通常的'alpha' 是小于 'beta'的,不知道你这个怎么来的。比较的原则是按照ASCII的顺序来的。
⑤ Python中字符和数字之间是怎么比较大小的
任何两个对象都可以比较
相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了__cmp__(含__gt__,__lt__等)则按照__cmp__来比较,否则按照地址(id)来比较
不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象<其它非数字型的对象;如果两个都是非数字型的对象,则按照类型名的顺序比较,如{} < "abc"(按照"dict" < "str"),而"abc" > [1,2], "abc" < (1,2)。
对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style class < new-style class, new-style class之间按照类型名顺序比较,old-style class之间按照地址进行比较
bool类型是int的子类,且True=1, False=0,比较时按照1-4来比较,如True > -1, True < 4.2, True < "abc"等
上面的回答是针对Python2.x,3.x的有较大的变化,如str和int比较时会抛出异常等。
回到题目,字符和数字的比较符合规则3,所以数字<字符。举个例子,如100和'a'(ord('a')=97),有
100<'a'
⑥ 在Python中如何从字符串提取一些子字符串并比较它们的长短
简单说下思想吧。
'az/c/bo/bo/beggh/akl'
如以上实例,在字符串中找到分割点,判断子字符串大小,返回最大的那个字符串
完
⑦ 如何用python语言比较两个中文字符串是否相等
在python里,汉字分字节流和unicode字符串:
参考http://www.sqlite.com.cn/MySqlite/11/395.Html
例如“哈”字,假如两个有两个字符str1和str2
str1
=
'\xb9\xfe'
//
这个字节流表示哈字是使用GBK编码的字节流
str2
=
u'\u54c8
//
表示这个字符使用UNICODE-16编码
判断相等:
str1.decode('GBK')
==
str2
统一转换成UNICODE16比较,
如果str2不是UNICODE16编码,也需要做相应的转换。
⑧ python中字符怎么比较大小排序
任何两个对象都可以比较
相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了__cmp__(含__gt__,__lt__等)则按照__cmp__来比较,否则按照地址(id)来比较
不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象<其它非数字型的对象;如果两个都是非数字型的对象,则按照类型名的顺序比较,如{}
<
"abc"(按照"dict"
<
"str"),而"abc"
>
[1,2],
"abc"
<
(1,2)。
对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style
class
<
new-style
class,
new-style
class之间按照类型名顺序比较,old-style
class之间按照地址进行比较
bool类型是int的子类,且true=1,
false=0,比较时按照1-4来比较,如true
>
-1,
true
<
4.2,
true
<
"abc"等
上面的回答是针对python2.x,3.x的有较大的变化,如str和int比较时会抛出异常等。
回到题目,字符和数字的比较符合规则3,所以数字<字符。举个例子,如100和'a'(ord('a')=97),有
100<'a'
⑨ Python中中文字符串怎么处理
如果处理的字符串中出现中文表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:
1、decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;
2、encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;
3、unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。
转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。
另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。
不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:
1、确定源字符的编码格式,假设是utf8;
2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把处理后字符串用encode()编码成指定格式。