Day 46関数でリストを処理する
Pythonコード
1def sort_list(input_list):2 input_list.sort()3 return input_list4 5def main():6 numbers = [64, 34, 25, 12, 22, 11, 90]7 print("ソート前: ", numbers)8 sorted_numbers = sort_list(numbers)9 print("ソート後: ", sorted_numbers)10 11 try:12 num = int(input("数字を入力してください: "))13 numbers.append(num)14 print("ソート後: ", sort_list(numbers))15 except ValueError:16 print("数字以外の入力です。再度入力してください。")17 18if __name__ == "__main__":19 main()
解説
- 行1〜3: このコードでは、リストをソートする関数 `sort_list` を定義しています。`sort()` メソッドは、リスト内の要素を小さい順に並べ替えるものです。つまり、数字のリストをこの関数に渡すと、昇順に並べ替えたリストが返されます。`sort()` はリストを直接変更するので、関数内ではリストを新しく作成する必要はありません。
- 行5〜9: `main` 関数では、数字のリストを作成し、ソート前のリストを表示しています。次に、`sort_list` 関数を呼び出してリストをソートし、ソート後のリストを表示しています。
- 行11〜16: ユーザーに数字を入力してもらって、それをリストに追加し、再度ソートしています。`try` と `except` は、ユーザーが数字以外の入力をした場合にエラーを処理するために使用されています。`int()` 関数で入力を整数に変換しようとすると、入力が数字以外の場合に `ValueError` というエラーが発生します。
- 行18〜19: `if __name__ == "__main__":` は、スクリプトが直接実行されたときに `main` 関数を呼び出すための条件文です。
- 行7〜16: 補足: print() は画面に文字や値を表示する関数です。
次に試してみよう
- リストを降順にソートするように `sort_list` 関数を修正してみましょう。`sort()` メソッドに `reverse=True` を指定します。
- ユーザーに名前を入力してもらって、それをリストに追加し、アルファベット順にソートしてみましょう。文字列のリストも `sort()` メソッドでソートできます。
- リスト内に同じ数字が複数ある場合に、どのようにソートされるかを確認してみましょう。同じ数字はソート後の順序に影響しません。