2017-10-08 9 views
-3

私たちは"word".isupperリターンFalseを使用するように私は、同じ文字列を「単語」Trueを返す.islowerを使用することができます方法を書きたいので、私はクラスを定義したいと私場合はそう"word".isspecial()islower、isupperのようなメソッドを書くには?

のように使用したいです)

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

と私は言葉を持っている場合、私は次のようにチェックできることをしたい「)(」メソッド(。)と私たちは「文字列」.islower(と同じように、それはTrueを返す:特殊文字のリストを持っています返すTrue

私は単純なループでこれを行うことができます知っているあなたはこのようにあなたがやりたい関数を記述することができます

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")) 
inオペレータは、しかし、私は私が試した何 ")(".method()

はバグがあるように私にできる方法を知りたいです予想通り

この意志出力、:私が使用した

True 
True 
False 

string.punctuationを使用して「特殊文字」のセットを作成します。あなたが好きな場合は、このセットを手で定義することができます。

本当に、これはあなたが望むことを行うためのPythonの方法です。これを行う方法を持つ必要はありません。あなたが本当に主張しているのであれば、詳細はthisの質問を見ることができますが、面倒なことに注意してください。

関連する問題