Skip to content

python practice1

INACHI Minoru edited this page Jun 2, 2017 · 1 revision

練習問題

うるう年の表示

今後 100 年間のうるう年を表示してみましょう。

うるう年の判定もいくつか流派があるようですが、最も一般的な(日本でも採用されている)グレゴリオ暦を用います。

  • 西暦年が4で割り切れる年は閏年。
  • ただし、西暦年が100で割り切れる年は平年。
  • ただし、西暦年が400で割り切れる年は閏年。

まだ説明していない文で、たぶん欲しくなるだろうものについて説明しておきます。 Python では何もしない pass 文があります。

if num == 0:
   pass # 何もしない

論理演算を利用すると、elif を使わなくても判定可能です。

シーザ暗号の解読に挑戦

シーザ暗号 ROT13 によって暗号化されたメッセージ 'FHCREABIN' の解読に挑戦してみましょう。

  • 文字列は、for 文を使って先頭から1文字ずつ文字を取り出せます。以下のプログラムで確認してください。
>>> message = 'FHCREABIN'
>>> for letter in message:
...     print(letter)
... 
F
H
C
R
E
A
B
I
N
  • 文字はコンピュータ内部で番号が割り当てられています。英大文字 A〜Z には 65〜90 の番号が割り当てられています。この番号を得るには ord 関数を使います。
>>> ord('A')
65
  • 逆に文字に割り当てられている番号から文字を得るには chr 関数を使います。
>>> chr(65)
'A'

文字列は + 演算子で結合できます。

>>> 'A' + 'B'
'AB'