【写経】【更新中】『みんなのPython 第3版』 Chapter 03 条件分岐とループ(最終更新: 20160906)
概要
『みんなのPython 第3版』から、「Chapter 03 条件分岐とループ」のサンプルコードを写経する。
03-01 if文で条件分岐する
- if文の簡単な例
>>> year = 1868 >>> if year == 1868: ... print("明治元年") ... 明治元年 >>>
else文を使う
- else文の簡単な例
- 条件が成り立たなかった時に実行したい命令がある時に使う。
>>> year = 1900 >>> if year == 1868: ... print("明治元年") ... else: ... print("明治", year-1867, "年") ... 明治 33 年 >>>
elifを使った条件分岐
- ifとelseだけを使った例
>>> year = 1912 >>> if year == 1868: ... print("明治元年") ... else: ... if year == 1912: ... print("大正元年") ... else: ... print("明治", year-1867, "年") ... 大正元年 >>>
- elif文を使った例
>>> year = 1912 >>> if year == 1868: ... print("明治元年") ... elif year == 1912: ... print("大正元年") ... else: ... print("明治", year-1867, "年") ... 大正元年 >>>
- wareki.py
[~ 21:56:53 bef]$ cat wareki.py #!/usr/bin/env python # encoding: utf-8 year = int(input("西暦:")) # キーボードから西暦を入力 if year == 1868: print("明治元年") elif year < 1912: print("明治", year-1867, "年") elif year == 1912: print("対象元年") elif year < 1926: print("大正", year-1911, "年") elif year == 1926: print("昭和元年") elif year < 1989: print("昭和", year-1988, "年") elif year == 1989: print("平成元年") else: print("平成", year-1988, "年") input() [~ 21:56:58 bef]$
(20160905)
比較演算子
- 比較演算子の例
>>> year = 1868 >>> year == 1868 True >>> year == 1912 False >>> year 1868 >>>
- turtle4.py
[python_shakyo 23:55:35 bef]$ cat turtle4.py #!/usr/bin/env python # encoding: utf-8 from turtle import * speed('fastest') for i in range(40): forward(100) if i % 4 == 1: right(160) elif i % 4 == 3: right(20) else: right(10) input() [python_shakyo 23:55:42 bef]$
複雑な比較 - 論理演算
論理演算子の優先順位
- 正常に動作しない例
- 「18歳以下、65歳以上、ただし0歳を除く」のつもりだが、0歳でTrueになる。
- andがorよりも優先されているから。
- 「18歳以下、65歳以上、ただし0歳を除く」のつもりだが、0歳でTrueになる。
>>> age = 0 >>> if age <= 18 or age >= 65 and age != 0: ... print("True") ... else: ... print("False") ... True >>> - ()で優先順位を指定
age = 0 if (age <= 18 or age >= 65) and age != 0: ... print("True") ... else: ... print("False") ... False
(20160906)