第73回【Python】曜日の判定、FizzBuzz

現在取り組んでいるのは、paiza ラーニング問題集「条件分岐メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

Python をゼロから勉強してみよう、のコーナー 73 回目です。

多様性多様性と言うわりには、多様な意見を述べると叩かれる。嫌な世の中になったものです。人種の違った人を前後に並べたポスターを見て人種差別だと叫んでいる人こそが、「そういう目」で見ているんだと気づいた方がいいと思います。

それでは、今日も頑張ってみようと思います。

曜日の判定

ある月の 1 日は日曜日、 2 日は月曜日…です。X日は何曜日でしょう。

答えとなる曜日Sを短縮した表記で出力してください。具体的に、日曜日の場合はSun、月曜日の場合はMon、火曜日の場合はTue、水曜日の場合はWed、木曜日の場合はThu、金曜日の場合はFri、土曜日の場合はSatを出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ X は 1 以上 31 以下の整数


1

いきなり、少し実践的な感じの問題です。普段、標準ライブラリの datetime を利用していたりすると、なんじゃコレって感じてしまうかも。実際、最初に問題を読んだときは、ううん? って思いました。

Python
X = int(input())
week = ["Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"]
print(week[X % 7])
VBA
X = Cells(1, 1)
week = Array("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri")
Debug.Print week(X Mod 7)

FizzBuzz

整数Nが与えられます。 Nが 3 で割り切れる場合はFizz、Nが 5 で割り切れる場合はBuzz、 Nが 3 と 5 の両方で割り切れる場合はFizzBuzzの代わりにFizzBuzzを出力してください。ただし、Nが 3 の倍数でも 5 の倍数でもないときはNをそのまま出力してください。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 1,000 以下の整数


15

この際だから、日本語圏的な FizzBuzz を作ろうぜ? って思った。で、結局、huga hoge hugahoge に落ち着きそうな予感。

Python
N = int(input())
if N % 5 == 0 and N % 3 == 0:
    print("FizzBuzz")
elif N % 3 == 0:
    print("Fizz")
elif N % 5 == 0:
    print("Buzz")
else:
    print(N)
VBA
N = Cells(1, 1)
If N Mod 3 = 0 And N Mod 5 = 0 Then
    Debug.Print "FizzBuzz"
ElseIf N Mod 3 = 0 Then
    Debug.Print "Fizz"
ElseIf N Mod 5 = 0 Then
    Debug.Print "Buzz"
Else
    Debug.Print N
End If

最後に

FizzBuzz なんて使い古された言葉遊び問題だけれど、if 文が先頭から判定されていく流れを理解するためにはやっぱりもってこいなんだなぁ。

曜日の判定問題は、便利なライブラリやモジュールを使うと難しい問題ではないけれど、知って置いて損はないやり方だと思った。どうしても自力で曜日判定させなければいけないことってある・・・LeoSaki(旦那)は経験ある。

引き続き、よろしくお願いいたします!

Python学習,Python,paiza

Posted by LeoSaki