python中比較兩個字符串是否相同的方法

這篇文章給大家分享的是有關(guān)python中比較兩個字符串是否相同的方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),金溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:金溪等地區(qū)。金溪做網(wǎng)站價格咨詢:18982081108

在python中,判斷兩個變量是否相等或一樣,可以使用==或者is來判斷;判斷不一樣可以使用 is not。

示例

python中比較兩個字符串是否相同的方法

使用注意事項(xiàng)

1.有時候兩個字符串打印出來看著一樣,但是判斷卻是False?如果兩個字符串末尾有其他符號,比如回車‘\n’,print的時候無法發(fā)現(xiàn)的,所以需要strip:

a=a.strip()
b=b.strip()
if a==b:
	print "True"

2.有時候==判斷是 True ,is 判斷卻是 False?

這是因?yàn)閮蓚€字符串來自不同的內(nèi)存塊,內(nèi)存地址不一樣

id() 函數(shù)用于獲取對象的內(nèi)存地址。

(ob1 is ob2) 等價于 (id(ob1) == id(ob2)) id函數(shù)可以獲得對象的內(nèi)存地址,如果兩個對象的內(nèi)存地址是一樣的,那么這兩個對象肯定是一個對象。和is是等價的.

python中比較兩個字符串是否相同的方法

3.還有一種情況是兩個對象用is判斷是False,用id判斷卻是True。原理比較復(fù)雜,如下:

In [1]: def bar(self, x):
...:     return self.x + y
...: 

In [2]: class Foo(object):
...:     x = 9
...:     def __init__(self ,x):
...:         self.x = x
...:     bar = bar
...:     

In [3]: foo = Foo(5)

In [4]: foo.bar is Foo.bar
Out[4]: False

In [5]: id(foo.bar) == id(Foo.bar)
Out[5]: True

真實(shí)情況是當(dāng)執(zhí)行.操作符的時候,實(shí)際是生成了一個proxy對象,foo.bar is Foo.bar的時候,兩個對象順序生成,放在棧里相比較,由于地址不同肯定是False,但是id(foo.bar) ==id(Foo.bar)的時候就不同了,首先生成foo.bar,然后計(jì)算foo.bar的地址,計(jì)算完之后foo.bar的地址之后,就沒有任何對象指向foo.bar了,所以foo.bar對象就會被釋放。然后生成Foo.bar對象,由于foo.bar和Foo.bar所占用的內(nèi)存大小是一樣的,所以又恰好重用了原先foo.bar的內(nèi)存地址,所以id(foo.bar) == id(Foo.bar)的結(jié)果是True。

感謝各位的閱讀!關(guān)于python中比較兩個字符串是否相同的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

本文標(biāo)題:python中比較兩個字符串是否相同的方法
鏈接URL:http://bm7419.com/article32/igcjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊動態(tài)網(wǎng)站、網(wǎng)站策劃、做網(wǎng)站、網(wǎng)站收錄、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化