2017-10-08 77 views
-3

我想寫,我可以用繩子一樣就像我們使用"word".isupper返回False使用方法,「字」 .islower返回True,所以我要定義一個類,並希望使用像"word".isspecial()如何編寫islower,isupper等方法?

所以,如果我有特殊字符的列表:

special=["&","*",")("] 

,我想,如果我有一句話,我可以檢查像「)(」法(。),它返回True,因爲我們做的「串」 .islower()其中返回True

我知道我可以用簡單的循環和in運營商,但我想知道我怎麼可以這樣做")(".method()

我想什麼是越野車:

class Lower: 

    def check(self,x): 
     for i in lower: 
      if x==i: 
       return True 

check1=Lower() 

check1.check() 

print(check1.check(special,")(")) 
+2

越野車是輕描淡寫......你究竟有什麼問題? –

+0

你需要子類'str'。 –

+3

我看不出有什麼理由必須成爲一種方法而不是一種功能。這是要求還是您的決定? –

回答

0

您可以編寫一個函數來做到你想做的是這樣的:

import string 

special_set = set(string.punctuation) 

def isspecial(s): 
    return all(c in special_set for c in s) 

print(isspecial(")(")) 
print(isspecial(")(*)(&)(*&)*&")) 
print(isspecial(")(*)(&)(*&)*&x")) 

這將輸出,如預期的那樣:

True 
True 
False 

注意我已經使用string.punctuation構建一組「特殊字符」。如果你喜歡,你可以手動定義這個集合。

真的,這是Pythonic的方式來做你想做的事 - 沒有理由必須有一個方法來做到這一點。如果你真的堅持,你可以看看this的問題了解更多信息,但要注意它會變得凌亂。