Pythonで文字列が回文(パリンドローム)かどうかを判定する方法
文字列が与えられたとき、その文字列が回文(パリンドローム)であるかどうかを判定するのが、本記事の目的です。
回文とは、「madam」「level」「しんぶんし」のように、前から読んでも後ろから読んでも同じになる文字列のことを指します。Pythonでは、スライス記法を使うことで、わずか数行のコードでこの判定を実装できます。
アルゴリズム
Step1: 文字列を入力として受け取る。 Step2: スライスを使って文字列を逆順にし、元の文字列と比較する。 Step3: 判定結果を表示する。
ポイント解説:スライスによる文字列の反転
このプログラムの核心は [::-1] というスライス記法です。これは「先頭から末尾まで、ステップ -1(つまり後ろ向きに1文字ずつ)」で要素を取り出すことを意味し、結果として文字列が完全に反転されます。反転した文字列が元の文字列と一致すれば、その文字列は回文であると判定できます。
サンプルコード
my_string=input("Enter string:")
if(my_string==my_string[::-1]):
print("The string is a palindrome")
else:
print("The string isn't a palindrome")
実行結果
Enter string:madam The string is a palindrome Enter string:python The string isn't a palindrome
コードの解説
input()関数でユーザーから文字列を受け取ります。my_string[::-1]で入力された文字列を逆順にした新しい文字列を作成します。if文で元の文字列と逆順の文字列を比較し、一致すれば「回文である」、一致しなければ「回文ではない」と出力します。
なお、大文字・小文字や空白を無視して判定したい場合は、比較前に my_string.lower() や replace(" ", "") を使って文字列を正規化すると、より柔軟な対応が可能になります。
-
指定された文字列がキーワードであるかどうかを確認するPythonプログラム
この記事では、指定された文字列がPythonのキーワード(予約語)であるかどうかを判定する方法について解説します。問題の概要与えられた文字列が、Pythonにおけるキーワードであるかどうかを確認する必要があります。キーワードとは、言語によって特別な用途のために予約されている単語であり、変数名や関数名などの識別子として使用することはできません。例えば「if」「for」「while」「def」などはすべてキーワードです。これらの名前を変数に使おうとすると、構文エラーが発生します。解決策:keywordモジュールの活用Pythonには標準ライブラリとしてkeywordモジュールが用意されており、これ
-
文字列が空かどうかをチェックするPythonプログラム
この記事では、与えられた文字列が空であるかどうかを判定するための解決策とアプローチについて解説します。 問題文 文字列が入力として与えられたとき、その文字列が空(空文字列)であるかどうかを判定する必要があります。 Pythonの文字列はイミュータブル(変更不可)な性質を持っているため、文字列に対して何らかの操作を行う際には注意して扱う必要があります。 ここでは、上記の問題を解決するための2つのアプローチを紹介します。 len()メソッドを使用する方法 等価演算子(==)を使用する方法 アプローチ1:len()メソッドを使う方法 len()関数で文字列の長さを取得し、その長さが0であれば空文