組み込み関数を使わずに2つの文字列を比較し、長い方の文字列を表示するPythonプログラム
2つの文字列を受け取り、組み込み関数を使用せずにより長い方の文字列を表示したい場合があります。そのようなときは、単純な反復処理(forループ)と「==」演算子を組み合わせることで実現できます。
通常、文字列の長さを取得するにはlen()関数を使いますが、ここではあえて使用せず、文字を1つずつ数える方法で長さを求めます。以下に具体的な実装例を示します。
サンプルコード
string_1 = "Malala"
string_2 = "Male"
count_1 = 0
count_2 = 0
print("1つ目の文字列は :")
print(string_1)
print("2つ目の文字列は :")
print(string_2)
for i in string_1:
count_1 = count_1 + 1
for j in string_2:
count_2 = count_2 + 1
if(count_1 < count_2):
print("より長い文字列は :")
print(string_2)
elif(count_1 == count_2):
print("両方の文字列は同じ長さです。")
else:
print("より長い文字列は :")
print(string_1)実行結果
1つ目の文字列は : Malala 2つ目の文字列は : Male より長い文字列は : Malala
処理の流れと解説
まず、比較対象となる2つの文字列を定義し、コンソールに表示します。
文字数を数えるためのカウンター変数を2つ用意し、それぞれ0で初期化します。
forループを使って各文字列を先頭から順に走査し、文字を1つ読み取るごとに対応するカウンターの値を1ずつ増やします。
ループが終わった時点で、カウンターにはそれぞれの文字列の長さが格納されています。
最後に「<」や「==」演算子でカウンター同士を比較し、条件分岐によって長い方の文字列をコンソールに表示します。両者が同じ長さの場合は、その旨を出力します。
このように、組み込み関数に頼らなくても、基本的なループ処理と比較演算子だけで文字列の長さ比較を実装できます。アルゴリズムの基礎を学ぶうえでも、非常に良い練習例といえるでしょう。
-
組み込み関数を使わずに大文字・小文字をカウントするPythonプログラム
この記事では、文字列に含まれる大文字と小文字の数を数える問題を、組み込みの文字判定メソッドに頼らずに解くための考え方と実装方法を解説します。 問題の概要 文字列が入力として与えられたとき、その中に含まれる大文字の数と小文字の数をそれぞれ求める必要があります。 ここでは、isupper() や islower() のような文字判定メソッドは使わず、組み込み関数 ord() を利用して各文字のASCII値を調べることで判定を行います。 ASCII値による判定の考え方 ASCIIコードでは、英字は次のような範囲に割り当てられています。 小文字(a〜z):97〜122 大文字(A〜Z):65〜90
-
【Python】ループを使わずに数列を出力する方法:再帰呼び出しを活用した実装
はじめに 本記事では、以下の問題に対する解決策について詳しく解説します。 問題の概要 2つの整数 N と K が与えられたとき、N が 0 より大きい間は N から K を引き続けます。そして N が 0 以下になったら、今度は元の値 N に戻るまで K を足していきます。 入力例 N = 10 K = 4 出力例 10 6 2 -2 2 6 10 アルゴリズムの考え方 N が 0 より大きい間、関数を再帰的に呼び出し続けます(各呼び出しごとに N から K を減算します)。 数値が 0 以下になったら、元の値に戻るまで各呼び出しごとに K を加算します。 加算と減算は同じ1つの関数