Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで数値を逆順にする2つの方法【文字列変換と数学的処理】

整数の桁を逆順に並べ替える(数値の反転)処理は、Pythonでは比較的簡単に実装できます。アルゴリズムの学習やコーディングテストなど、さまざまな場面で数値を反転させる必要に迫られることがあります。

入力:12345
出力:54321

Pythonで数値を逆順にする方法は、主に以下の2つがあります。

  • 数値を文字列に変換し、文字列を反転させてから再び整数に戻す方法

  • 文字列に変換せず、数学的な演算だけで反転させる方法

方法1:文字列に変換して反転する

この方法は最もシンプルで、複雑なロジックを考える必要がありません。数値をstr()で文字列に変換し、スライス記法[::-1]を使って文字列を反転させた後、int()で再び整数に戻します。文字列の反転には、スライス以外にもreversed()関数やjoin()を組み合わせる方法など、任意の手法を使用できます。

サンプルコード

def reverse(num):
    st = str(num)
    revst = st[::-1]
    ans = int(revst)
    return ans

num = 12345
print(reverse(num))

実行結果

54321

わずか数行のコードで実装できるため、可読性が高く初心者にもおすすめの方法です。ただし、負の数や先頭に0が付くケースを扱う場合は、追加の考慮が必要になる点に注意しましょう。

方法2:文字列に変換せず数学的に反転する

この方法は、剰余演算(%)と整数除算(//)を組み合わせた数学的なロジックを使用します。「数値を文字列に変換してはいけない」という制約がある問題(競技プログラミングや面接試験など)では、こちらのアプローチが有効です。

処理の流れは以下の通りです。

  1. num % 10 で末尾の桁(1桁目)を取り出す

  2. rev * 10 + digit で取り出した桁を結果の末尾に追加する

  3. num // 10 で処理済みの桁を削除する

  4. numが0になるまで上記を繰り返す

サンプルコード

def reverse(num):
    rev = 0
    while num > 0:
        digit = num % 10
        rev = (rev * 10) + digit
        num = num // 10
    return rev

num = 12345
print(reverse(num))

実行結果

54321

まとめ

Pythonで数値を逆順にするには、文字列変換を利用する方法と、純粋な数学的演算による方法の2つがあります。手軽さを重視するならスライスを使った文字列変換が便利ですが、変換が禁止されている場面では剰余演算と除算を組み合わせたループ処理が役立ちます。それぞれの特徴を理解して、目的に応じて使い分けましょう。

  1. Pythonで文字列を逆順にする方法:スライス・reversed()・再帰を徹底解説

    Pythonでは、スライスやreversed()メソッドを使って文字列を逆順にできます。また、文字列の各文字を読み取って全体を反転させる再帰関数もよく使われる方法です。ただし、文字列を反転させるための専用の組み込み関数は用意されていません。 Pythonで文字列を逆順にする方法 Pythonで作業していると、文字列を逆順にしたい場面に出会うことがあります。たとえば、ゲームを開発していて、ユーザーが入力した名前をプログラムが反転させてユーザー名として生成できるようにしたい、といったケースが考えられます。 文字列の反転はプログラミングで頻繁に使われる操作ではないため、Pythonには文字列を逆順

  2. Androidで文字列を逆順に表示する方法をわかりやすく解説

    本記事では、Androidアプリ開発において、ユーザーが入力した文字列を逆順(リバース)にして画面に表示する方法を実例とともに解説します。EditTextに入力されたテキストを、ボタンのクリックをきっかけに反転させてTextViewへ出力するシンプルなサンプルです。手順1:新規プロジェクトを作成するまず、Android Studioを開き、「File」→「New Project」から新しいプロジェクトを作成します。プロジェクト作成時に必要な項目をすべて入力してセットアップを完了させましょう。手順2:レイアウトファイル(activity_main.xml)を編集する次に、res/layout/a