Pythonで3の倍数

今回のPython練習は「3の倍数で馬鹿になる」プログラムです。昔世界のナベアツという芸人がいて(今もいると思いますが)、数字を数えていって3の倍数で馬鹿になる?アホになる?芸がありました。

私は全然テレビを見ずお笑いにも疎いのですが、調べてみると、3の倍数と数字に3がつく場合にアホになると言うのが正解のようですね。

プログラム概要

前述の通り、3の倍数と数字に3がつく場合にアホになります。具体的には、数字を入力させ、カウントアップしていき、3の倍数と数字に3が付く場合に「Crazy!!!」と表示させます。

コード

コードはこちらです。for文で入力された数字の数だけ繰り返し、if分で条件分岐して数字を分類します。

# Sekai-no-nabeatsu gets crazy when counting up numbers,
# the number is either multiple of 3 or contains 3.

num = int(input("Enter your number > "))

for i in range(num):
  if i == 0:
    continue
  if i >= 30 and i < 40:
    print(f"{i} Crazy!!!")
  elif i % 3 == 0:
    print(f"{i} Crazy!!!")
  else:
    print(f"{i}")

実行結果

長いですが、50と入力するとこうなります。

Enter your number > 50
1
2
3 Crazy!!!
4
5
6 Crazy!!!
7
8
9 Crazy!!!
10
11
12 Crazy!!!
13
14
15 Crazy!!!
16
17
18 Crazy!!!
19
20
21 Crazy!!!
22
23
24 Crazy!!!
25
26
27 Crazy!!!
28
29
30 Crazy!!!
31 Crazy!!!
32 Crazy!!!
33 Crazy!!!
34 Crazy!!!
35 Crazy!!!
36 Crazy!!!
37 Crazy!!!
38 Crazy!!!
39 Crazy!!!
40
41
42 Crazy!!!
43
44
45 Crazy!!!
46
47
48 Crazy!!!
49

for i in range(num)は0から

非常に簡単なプログラムですが、久々にPythonの勉強をしていて思い出しました。range()で指定すると、0から引数の回数だけ繰り返すと言うことです。

今回のプログラムでは50という数字を渡されましたが、繰り返しで使われるのは0から49です。ユーザの使用感としては50と入力したら1から50まで繰り返される方が自然だと思いました。(今回はやってませんが)

めっさん
  • めっさん
  • 当サイトの管理人。ニューヨークの大学を飛び級で卒業。その後日系企業でグローバル案件に携わる。大小様々な企業を転々としながら、マレーシアやアメリカへの赴任経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。年齢は秘密だけど定年も間近かな。

コメントする

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