2017-06-12 44 views
-2
if __name__ == '__main__': 

    str1 = str('exon_PF3DZ_0100100'.split()) 
    str2 = str('exon_PF3D7_0100100'.split()) 

    if str1 == str2: 
     print 'True' 
    else: print 'False' 

然後創建一個新的變量將結果存儲比較字符串 結果=「」爲什麼沒有這兩個字符串匹配

後,試圖使用字符串比較for循環後

for letter in str1: 
for letter in str2: 
    if letter(str1) != letter(str2): 
     result = result + letter 
     print (result) 

出於某種原因,該代碼返回 回溯(最近最後一次通話):

if letter(str1) != letter(str2): 

TypeError: 'str' object is not callable

我不明白爲什麼兩個字符串不匹配?

+1

要重複使用兩個字符串....不良做法的變量'letter',這是一個字符串不是一個函數 – depperm

+0

你調用一個字符串對象上的功能(括號)... –

+4

如果你想知道爲什麼'str1'和'str2'不匹配你的第一個代碼段,那是因爲其中一個包含七和一個包含字母Z.Split沒有任何特別有用的東西(除了將字符串轉換爲列表)因爲字符串中沒有任何內容可以分割。 – eewanco

回答

1

在循環中,變量letter字符串,包含當前字符。這是你錯誤的原因(字符串不是函數,不能像這樣調用)。

您還可以爲兩個循環使用相同的變量名稱,內循環會從外循環中覆蓋letter的內容。您需要使用兩個不同的變量。然後你直接比較。像:

for letter1 in str1: 
    for letter2 in str2: 
     if letter1 == letter2: 
      # Do something here ... 
相關問題