① 「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()編碼成指定格式。