if 文その2で年齢計算や簡単な素数判定をしてみる。

if 文の続き。

年齢を計算するプログラムのコードを、if 文を使って書くと下のようになる。

a_year = 2017
if a_year >= 1969:
    if a_year==1969:
       print (a_year, "年, 俺誕生")
    else:
       print(a_year, "年、俺", a_year-1969, "歳")
2017 年 俺48 歳

といってもif が2回もあって、インデントも2回もあるっていうのはちょっとわかりにくい。

スポンサーリンク

だから、if 分2回使うのをやめてelifを使うことにする。

if と elifの違いを整理すると:

if の場合条件式が一つだけ成り立つときに使う。

つまり、条件が一つ以上ある場合一つ一つ記述していく必要がある。

elifはelse とifを合わせたような働きをするので、複数の条件があるときに使うと便利。

a_year=2017
if a_year==1969:
    print(a_year, "年、俺誕生")
elif a_year>1968:
    print(a_year, "年、俺", a_year-1969, "歳")
2017 年 48 歳

elif 文を使って前と同じ条件式を書くと、前よりもかなりすっきりして書けました。

で次の例題はというと、よっそく演算を使って、素数を求めようというもの。

で素数って何かというと、

素数:自分自身より小さい数で割り切れない数

という数らしい。

で素数かもしれない57が実際素数なのかを試してみると、どうなるか。

a_num=57
for num in range(2, a_num):
     if a_num % num ==0:
         print(a_num, "は素数ではありません。")  
         break
57 は素数ではありません。

解説すると、一番わかりにくいかもしれないのがこれ。

range(2, a_num)

この意味は2からa_num 以下までを繰り返すということ、つまり2から56を繰り返すということになります。

次にカギになるのが、以下の文。

if a_num % num ==0:

つまり57が2から56までのうちのどれかの数で割り切れるかという条件分岐ですね。

つまり割り切れたら、素数ではないということ。

57の場合は見事に割り切れたので素数ではないということが判明しました。

a_num=59
for num in range(2, a_num):
    if a_num % num ==0:
        print(a_num, "は素数ではありません。")
        break

では同じコードで59を試すと、割り切れないようですね。

なので59は素数ということがわかりました。

スポンサーリンク

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.