教科書にも例がありますが,ここでは max() 関数を使用して,ランダムに発生させた10個の乱数の最大値を表示するプログラムを関数を利用して作りましょう.乱数は2桁の正の整数とします.
58 12 85 86 30 15 78 89 27 69 Maximum number: 89 |
引数にリストを与えるのは教科書 p.254 にあります.解答例
今度は同じような乱数があるとき,最大値と最小値の両方を返すプログラムとしましょう.
32 65 34 32 91 66 23 96 50 64 Maximum number: 96 Minimum number: 23 |
解答例1
初項と漸化式が以下で与えられる等比数列があるとき,第 n 項を答えるプログラムを再帰を利用して作成してみましょう.ここで,n は10から20までの整数を乱数により発生させるものとします.
a1 = 2.5
an = 1.5 an-1
a_20 = 5542.0945501327515 |
解答例
昨年度のプログラミング入門 I で行った円周率の計算のプログラムにおいて,素数を探す部分を関数にしたものに変更してみましょう.
2: 2.8284271247461903 3: 3.0 5: 3.0618621784789726 7: 3.0935921676911455 11: 3.106455392270532 13: 3.1156870779784582 17: 3.1210915695996455 以下,略 |
やり方はいろいろあると思いますが,今回の解答例では素数であるかどうかを返す関数としてみました.解答例
以前に行ったカプレカ数探索の関数版を作ってみましょう.3桁もしくは4桁の正の整数を乱数により発生させて,それぞれの桁数のカプレカ数を求めるプログラムを作成しましょう.なお,今回は数字の並べ替えの部分を関数にすることとしましょう.
850 - 58 = 792 972 - 279 = 693 963 - 369 = 594 954 - 459 = 495 954 - 459 = 495 |
|
7720 - 277 = 7443 7443 - 3447 = 3996 9963 - 3699 = 6264 6642 - 2466 = 4176 7641 - 1467 = 6174 7641 - 1467 = 6174 |
3桁の場合 | 4桁の場合 |
いろんな関数やメソッドを使用して実現します.例えば,数字の並べ替えは一度文字列にすると sorted() が使えますが,また数値に戻すためには,join() や int() などの関数が必要です.解答例
f文字列で出力する場合に表示桁数を変数の値で指定する場合には,中括弧 { } で変数を囲んで実現できます.
digit = 3 num = 12 print(f'{num:{digit}}')
1から100までの整数をランダムに5個発生させて,それらのうちの偶数どうしと奇数どうしの組を表示するプログラムを作成しましょう.ペアを表示する部分を関数とするものと,ペアを探すことだけを関数とする方法がありますが,いずれにしても偶数用と奇数用の2つの関数にします.
Numbers: 99 31 25 76 68 Even pairs: 76-68 Odd pairs: 99-31 99-25 31-25 |
表示させる関数とする場合には戻り値はありません.また,今回は値の重複は気にしないこととします.解答例1(表示させる関数)