-
Pythonで最長の回文部分文字列
文字列Sがあるとします。Sで最も長い回文部分文字列を見つける必要があります。文字列Sの長さは1000であると想定しています。したがって、文字列が「BABAC」の場合、その場合、最長の回文部分文字列は「BAB」です。 これを解決するために、次の手順に従います 文字列の長さと同じ次数の正方行列を1つ定義し、Falseで埋めます 主対角要素をtrueに設定して、0からorder –1までのすべてのiに対してDP[i、i] =True start:=0 範囲2からS+1の長さのlの場合 0からSの長さの範囲のiの場合– l + 1 end:=i + l l =2の場合、 S [i]
-
Pythonでの例外の引数
例外には、問題に関する追加情報を提供する値である引数を含めることができます。引数の内容は例外によって異なります。次のようにexcept句に変数を指定することにより、例外の引数をキャプチャします- try: You do your operations here; ...................... except ExceptionType, Argument: You can print value of Argument here... 単一の例外を処理するコードを作成する場合は、exceptステートメ
-
Pythonで例外を発生させる
raiseステートメントを使用すると、いくつかの方法で例外を発生させることができます。 raiseステートメントの一般的な構文は次のとおりです。 構文 raise [Exception [, args [, traceback]]] ここで、Exceptionは例外のタイプ(たとえば、NameError)であり、argumentは例外引数の値です。引数はオプションです。指定しない場合、例外引数はNoneです。 最後の引数であるtracebackもオプションであり(実際にはほとんど使用されません)、存在する場合は、例外に使用されるtracebackオブジェクトです。 例 例外は、文字列、ク
-
Pythonでのユーザー定義の例外
Pythonでは、標準の組み込み例外からクラスを派生させることで、独自の例外を作成することもできます。 これはRuntimeErrorに関連する例です。ここでは、RuntimeErrorからサブクラス化されたクラスが作成されます。これは、例外がキャッチされたときに、より具体的な情報を表示する必要がある場合に役立ちます。 tryブロックでは、ユーザー定義の例外が発生し、exceptブロックでキャッチされます。変数eは、クラス Networkerrorのインスタンスを作成するために使用されます 。 class Networkerror(RuntimeError): d
-
PythonでのOOP用語
クラス −クラスの任意のオブジェクトを特徴付ける属性のセットを定義するオブジェクトのユーザー定義のプロトタイプ。属性はデータメンバー(クラス変数とインスタンス変数)とメソッドであり、ドット表記を介してアクセスされます。 クラス変数 −クラスのすべてのインスタンスで共有される変数。クラス変数はクラス内で定義されますが、クラスのメソッドの外部で定義されます。クラス変数は、インスタンス変数ほど頻繁には使用されません。 データメンバー −クラスとそのオブジェクトに関連付けられたデータを保持するクラス変数またはインスタンス変数。 関数のオーバーロード −特定の機能への複数の動作の割り当て。実行される操作
-
Pythonでクラスを作成する
クラス ステートメントは、新しいクラス定義を作成します。クラスの名前は、次のようにキーワードclassの直後にコロンが続きます- class ClassName: 'Optional class documentation string' class_suite クラスにはドキュメント文字列があり、ClassName .__doc__からアクセスできます。 class_suiteは、クラスメンバー、データ属性、および関数を定義するすべてのコンポーネントステートメントで構成されています。 例 以下は、単純なPythonクラスの例です- class Employee: &n
-
Pythonでのインスタンスオブジェクトの作成
クラスのインスタンスを作成するには、クラス名を使用してクラスを呼び出し、その__init__メソッドが受け入れる引数を渡します。 "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000) オブジェクトでドット演算子を使用して、オブジェクトの属性にア
-
Pythonの組み込みクラス属性
すべてのPythonクラスは組み込みの属性に従い続け、他の属性と同様にドット演算子を使用してアクセスできます- __ dict __ −クラスの名前空間を含む辞書。 __ doc __ −クラスのドキュメント文字列、または未定義の場合はなし。 __ name__ −クラス名。 __ module __ −クラスが定義されているモジュール名。この属性は、インタラクティブモードでは「__main__」です。 __ bases __ −基本クラスリストに出現する順序で、基本クラスを含む空の可能性のあるタプル。 例 上記のクラスでは、これらすべての属性にアクセスして
-
Pythonでのオブジェクトの破棄(ガベージコレクション)
Pythonは、不要なオブジェクト(組み込み型またはクラスインスタンス)を自動的に削除して、メモリスペースを解放します。 Pythonが、使用されなくなったメモリのブロックを定期的に再利用するプロセスは、ガベージコレクションと呼ばれます。 Pythonのガベージコレクターはプログラムの実行中に実行され、オブジェクトの参照カウントがゼロに達したときにトリガーされます。オブジェクトを指すエイリアスの数が変わると、オブジェクトの参照カウントも変わります。 オブジェクトに新しい名前が割り当てられるか、コンテナ(リスト、タプル、またはディクショナリ)に配置されると、オブジェクトの参照カウントが増加し
-
Pythonでのクラス継承
ゼロから始める代わりに、新しいクラス名の後に括弧で囲まれた親クラスをリストすることにより、既存のクラスから派生させてクラスを作成できます。 子クラスはその親クラスの属性を継承し、それらの属性を子クラスで定義されているかのように使用できます。子クラスは、親のデータメンバーとメソッドをオーバーライドすることもできます。 構文 派生クラスは、親クラスとほとんど同じように宣言されます。ただし、継承する基本クラスのリストは、クラス名の後に示されています- class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional cla
-
Pythonでのメソッドのオーバーライド
親クラスのメソッドはいつでもオーバーライドできます。親のメソッドをオーバーライドする理由の1つは、サブクラスに特別な機能または異なる機能が必要な場合があるためです。 例 #!/usr/bin/python class Parent: # define parent class def myMethod(self): print 'Calling parent method' class Child(Parent): # define child class def myMethod(s
-
Pythonのベースオーバーロードメソッド
次の表に、独自のクラスでオーバーライドできるいくつかの一般的な機能を示します- Sr.No。 メソッド、説明、サンプル呼び出し 1 __ init __(self [、args ...]) コンストラクター(オプションの引数付き) サンプル呼び出し:obj =className(args) 2 __ del __(self) デストラクタ、オブジェクトを削除します サンプル呼び出し:del obj 3 __ repr __(self) 評価可能な文字列表現 サンプル呼び出し:repr(obj) 4 __ str
-
Pythonでの演算子のオーバーロード
2次元ベクトルを表すVectorクラスを作成したとすると、plus演算子を使用してそれらを追加するとどうなりますか?おそらくPythonはあなたに怒鳴ります。 ただし、クラスで__add__メソッドを定義してベクトル加算を実行すると、plus演算子は期待どおりに動作します- 例 #!/usr/bin/python class Vector: def __init__(self, a, b): self.a = a self.b = b def __str__
-
Pythonでデータを隠す
オブジェクトの属性は、クラス定義の外部に表示される場合と表示されない場合があります。二重アンダースコアプレフィックスを使用して属性に名前を付ける必要があります。そうすると、それらの属性は部外者に直接表示されなくなります。 例 #!/usr/bin/python class JustCounter: __secretCount = 0 def count(self): self.__secretCount += 1 print self.__secretCoun
-
Pythonの一致関数
この関数は、オプションのフラグを使用してREパターンを文字列に一致させようとします。 構文 この関数の構文は次のとおりです- re.match(pattern, string, flags=0) パラメータの説明は次のとおりです- Sr.No。 パラメータと説明 1 パターン これは、照合される正規表現です。 2 文字列 これは文字列であり、文字列の先頭のパターンに一致するように検索されます。 3 フラグ ビットごとのOR(|)を使用して、さまざまなフラグを指定できます。これらは修飾子であり、以下の表にリストされています。 re.m
-
Pythonの検索関数
この関数は、オプションのフラグを使用して、文字列内で最初に出現するREパターンを検索します。 構文 この関数の構文は次のとおりです- re.search(pattern, string, flags=0) パラメータの説明は次のとおりです- Sr.No。 パラメータと説明 1 パターン これは、照合される正規表現です。 2 文字列 これは文字列であり、文字列の先頭のパターンに一致するように検索されます。 3 フラグ ビットごとのOR(|)を使用して、さまざまなフラグを指定できます。これらは修飾子であり、以下の表にリストされています。
-
Pythonでのマッチングと検索
Pythonは、正規表現に基づいて2つの異なるプリミティブ操作を提供します。一致 検索の間、文字列の先頭でのみ一致をチェックします 文字列内の任意の場所で一致するかどうかをチェックします(これはPerlがデフォルトで行うことです)。 例 #!/usr/bin/python import re line = "Cats are smarter than dogs"; matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj: print "match -->
-
Pythonでの検索と置換
正規表現を使用する最も重要なreメソッドの1つは、 subです。 。 構文 re.sub(pattern, repl, string, max=0) このメソッドは、文字列内のREパターンのすべての出現箇所をreplに置き換えます。 、 max でない限り、すべてのオカレンスを置き換えます 提供された。このメソッドは変更された文字列を返します。 例 #!/usr/bin/python import re phone = "2004-959-559 # This is Phone Number" # Delete Python-style comments num = re
-
Pythonの正規表現修飾子
正規表現リテラルには、マッチングのさまざまな側面を制御するためのオプションの修飾子が含まれる場合があります。修飾子はオプションのフラグとして指定されます。前に示したように、排他的論理和(|)を使用して複数の修飾子を指定でき、これらのいずれかで表すことができます- Sr.No。 修飾子と説明 1 re.I 大文字と小文字を区別しないマッチングを実行します。 2 re.L 現在のロケールに従って単語を解釈します。この解釈は、アルファベットのグループ(\wと\W)、および単語の境界の動作(\bと\B)に影響します。 3 re.M $を(
-
Pythonの正規表現パターン
制御文字(+?。* ^ $()[] {} | \)を除いて、すべての文字は一致します。制御文字の前に円記号を付けると、制御文字をエスケープできます。 次の表に、Pythonで使用できる正規表現の構文を示します- Sr.No。 パターンと説明 1 ^ 行頭に一致します。 2 $ 行末に一致します。 3 。 改行以外の任意の1文字に一致します。 mオプションを使用すると、改行にも一致させることができます。 4 [...] 角かっこ内の任意の1文字に一致します。 5 [^ ...] 角かっこで囲まれて