文字列に特殊文字が含まれているかどうかを確認するPythonプログラム
このチュートリアルでは、文字列に特殊文字(記号)が含まれているかどうかを判定するプログラムを作成します。Pythonを使えば、ごくシンプルなコードで実装できます。
Pythonのstringモジュールには、特殊文字のセットがあらかじめ用意されています。これを活用することで、文字列の中に特殊文字が存在するかどうかを簡単にチェックできます。それでは、プログラム作成の手順を順番に見ていきましょう。
- stringモジュールをインポートします。
- string.punctuationから特殊文字の一覧を取得し、変数に格納します。
- 判定対象となる文字列を初期化します。
map関数を使って、文字列に特殊文字が含まれているかどうかを確認します。- 判定結果(有効か無効か)を出力します。
なお、string.punctuationには !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ といったASCII記号がすべて定義されているため、独自にリストを作成する必要はありません。
サンプルコード
# stringモジュールをインポート
import string
# 特殊文字の一覧を取得
special_chars = string.punctuation
# 判定対象の文字列を初期化
string_1 = "Tutori@lspoinT!"
string_2 = "Tutorialspoint"
# string_1に特殊文字が含まれているかチェック
bools = list(map(lambda char: char in special_chars, string_1))
print("Valid") if any(bools) else print("Invalid")
# string_2に特殊文字が含まれているかチェック
bools = list(map(lambda char: char in special_chars, string_2))
print("Valid") if any(bools) else print("Invalid")
実行結果
上記のプログラムを実行すると、以下のような出力が得られます。
Valid Invalid
「Tutori@lspoinT!」には @ や ! が含まれているため「Valid」と表示され、記号を含まない「Tutorialspoint」は「Invalid」と判定されます。
まとめ
同じチェック処理を何度も書く場合は、コードを関数としてまとめると冗長さを避けられ、再利用性も高まります。たとえば def has_special_char(s): のような関数にしておくと、任意の文字列に対して手軽に判定できるようになります。本チュートリアルについて不明な点があれば、コメント欄でお気軽にお尋ねください。
-
【Python】文字列がすべてユニークな文字で構成されているか判定する方法
本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS
-
Pythonで文字列からn番目の文字を削除する方法
この記事では、「文字列から指定したインデックス(i番目)の文字を削除して表示する」という問題の解き方を解説します。 問題の概要 与えられた文字列から、指定されたインデックス位置にある1文字を取り除き、その結果を出力します。 Pythonでは文字列のインデックスは必ず0から始まる点に注意してください。たとえば「tutorialspoint」という文字列の場合、各文字とインデックスの対応は以下のようになります。 T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 それでは、この問題を解くためのPythonスクリプトを見ていきましょ