【Python問題集】No.1 奇数・偶数の判定、リストから値を削除 | 您所在的位置:网站首页 › python奇数偶数判断for › 【Python問題集】No.1 奇数・偶数の判定、リストから値を削除 |
目次問題
自然数のリストを入力すると、そのリストから奇数をすべて削除したリストを出力するプログラムを作成せよ。 さらに、そのプログラムが正しく機能することを示す具体例を与えよ。 おすすめのレンタルサーバー![]() 解答を見る前に、一度ご自身で考え、コードを書いてみることをオススメします。 解答例1 def delete_odd(natural_number_list: list): result = [] for number in natural_number_list: if number % 2 == 0: result.append(number) print(result) sample_list_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] sample_list_2 = [11, 13, 15, 17, 19, 12, 14, 16, 18, 20] delete_odd(sample_list_1) delete_odd(sample_list_2) 上記の実行結果 [2, 4, 6, 8, 10] [12, 14, 16, 18, 20] おすすめのPython参考書この問題のポイントは、 奇数・偶数を判別する 奇数の場合はリストから値を削除するの2点です。 順番に見ていきましょう。 奇数・偶数を判別する奇数か偶数かを判別する方法として最も一般的なのは2で割った余りをチェックする方法です。 余りが1なら奇数、余りが0なら偶数になります。 Python における余りを求める演算子は%です。 2で割った余りの結果をもとにif文を使用して条件分岐させます。 a = 144981 / 9 if a % 2 == 1: print('a は奇数です。') elif a % 2 == 0: print('a は偶数です。') print('a:',a)上記の実行結果 a は奇数です。 a: 16109.0 奇数の場合はリストから値を削除する続いて、リストからの値の削除です。 元々の問題は「奇数の場合はリストから値を削除する」ですが、今回の解答例では、 新しいリストを用意する 偶数の場合、新しいリストに追加するとし、新しいリストに偶数だけ入れることで、元のリストから奇数を削除した新しいリストを作っています。 popメソッドやdel文を使って、元のリストから奇数を削除することもできますが、今回は、新しいリストを作って、そこに偶数を追加する、という方法を取りました。 リストへの値の追加はappendメソッドを使用します。 num_list = [1, 2, 3] num_list.append(100) print(num_list)上記の実行結果 [1, 2, 3, 100] ChatGPT に解いてもらったChatGPT にも解いてもらいました。 ChatGPT の解答以下に、指定された条件に従ってPythonでプログラムを作成しました。このプログラムは、与えられた自然数のリストから奇数を削除して新しいリストを返します。 def remove_odds(numbers): even_numbers = [num for num in numbers if num % 2 == 0] return even_numbers # 具体例 input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] output_list = remove_odds(input_list) print(f"入力リスト: {input_list}") print(f"奇数を削除したリスト: {output_list}")具体例として、入力リストに [1, 2, 3, 4, 5, 6, 7, 8, 9] を使用します。このプログラムを実行すると、以下のような出力が得られます。 入力リスト: [1, 2, 3, 4, 5, 6, 7, 8, 9] 奇数を削除したリスト: [2, 4, 6, 8]この出力から、プログラムが正しく奇数を削除していることがわかります。 ChatGPT の解説このプログラムは、与えられた自然数のリストから奇数を削除し、新しいリストに偶数だけを格納して返す機能を持ちます。以下に、プログラムの要点を解説します。 def remove_odds(numbers): ここで、remove_odds という関数を定義しています。この関数は、リスト numbers を引数として受け取ります。 even_numbers = [num for num in numbers if num % 2 == 0] この行では、リスト内包表記(list comprehension)を使って、入力リスト numbers から偶数だけを取り出し、新しいリスト even_numbers に格納しています。条件 num % 2 == 0 は、数値 num が2で割り切れる(偶数である)場合にのみTrueになります。 return even_numbers 奇数が削除された新しいリスト even_numbers を返します。 具体例として、入力リスト input_list に [1, 2, 3, 4, 5, 6, 7, 8, 9] を与えて、remove_odds 関数を呼び出します。その結果を output_list に格納します。 最後に、print() 関数を使って、入力リストと奇数を削除したリストを出力します。これにより、プログラムが正しく機能していることが確認できます。このプログラムの主なポイントは、リスト内包表記を使って簡潔にリストから奇数を削除し、新しいリストを作成することです。 Google Colaboratory解答例や解説のコードは Google Colaboratory で確認しています。(ChatGPT が解答してくれたコードも確認しています。) あわせて読みたい![]() 環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。 おわりに今回の問題は LINE のオープンチャットに投稿された、おそらくどこかの学校の課題です。今後も具体的な問題・課題の解説記事を増やしていきたいと思っています。 解説して欲しい課題がありましたら、お問い合わせフォームからご連絡ください。 お問い合わせ以上です。 |
CopyRight 2018-2019 实验室设备网 版权所有 |