基本構造
Pythonの判定文の基本構造はifとelseで構成されており、if以降の条件が真の場合はif以下の文が実行され、if以降の条件が偽の場合はelse以下の文が実行されます。ここでの true または false の条件はすべて bool 値に基づいており、比較演算、メンバーシップ演算、アイデンティティ演算によって返される結果はすべて bool 値であることがわかっています。したがって、比較演算、メンバーシップ演算、および恒等演算はすべて、判定ステートメントの条件として使用できます。
if 1 > 2:
print('yes') # 代码缩进为一个Tab键或者4个空格键
else:
print('no')
条件が true の場合に特定のステートメントを実行するだけでよい場合、条件が false の場合にステートメントを実行する必要はありません。次に、if を使用し、else を使用しないようにします。
if 1 < 2:
print('yes')
入れ子構造
ネストされた構造は複数の基本構造で構成され、if の各レベルは else の各レベルに対応します (else は特定の要件に応じてオプションです)。入れ子構造は無限に入れ子にすることができますが、多くの入れ子構造は他の方法で最適化できることに注意してください。コードを書くときは、入れ子構造を書きすぎないように注意してください。コードが読みやすくなるほど、コードの質は悪くなります。
たとえば、線分a、b、cが3つあり、この3つの線分が三角形を形成できるかどうかを判断してください。三角形を決定する方法: 任意の 2 つの辺の合計が 3 番目の辺よりも大きくなります。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c:
print('线段a + b大于c')
if a + c > b:
print('线段a + c大于b')
if b + c > a:
print('线段b + c大于a')
print('三条线段a、b、c可以构成三角形')
else:
print('线段a大于等于b + c,不能构成三角形')
else:
print('线段b大于等于a + c,不能构成三角形')
else:
print('线段c大于等于a + b,不能构成三角形')
実行結果は以下の通りです。
三角形を形成できるかどうかを判断するために、いくつかの値を任意に入力することができ、入力が異なると出力も異なる場合があります。
複数条件構造
複数条件構造は、if、elif、else で構成されます。if 以降の条件が true の場合は if 以下の文が実行され、if 以降の条件が false の場合は最初の elif 以降の条件が判定され、最初の elif 以降の条件が true の場合は最初の elif が実行されます。文; 最初の elif 以降の条件が false の場合、2 番目の elif 以降の条件を判定、2 番目の elif 以降の条件が true の場合、2 番目の elif より下の文を実行; 2 番目の elif の場合 elif 以降の条件が false の場合、 3 番目のエリフが判定された後の状態など。すべての条件が false の場合は、else の下のステートメントを実行します (else は要件に応じてオプションです)。
たとえば、小学生の数学の成績を採点してみると、90点以上を優秀、80点以上90点未満を優秀、60点以上90点未満を優秀とします。 80点未満は平均、60点以上は合格、60点未満は不合格となります。
score = int(input('请输入分数:'))
if score > 100:
print('超范围')
elif score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 60:
print('一般')
elif score == 60:
print('及格')
else:
print('不及格')
実行結果は以下の通りです。
論理演算子
判定文で複雑な判定条件を使用するには、論理演算子を使用します。
そして | AND 演算を実行します。左辺と右辺の両方が同時に true の場合、結果は true、それ以外の場合、結果は false |
または | OR 演算を実行します。左側と右側の両方が同時に false の場合、結果は false になり、それ以外の場合、結果は true になります。 |
ない | 演算を行わないでください。値が true の場合、結果は false になり、値が false の場合、結果は true になります。 |
論理演算子 (and)
左 | 右 | 結果 |
本物 | 本物 | 本物 |
本物 | 偽物 | 偽物 |
偽物 | 本物 | 偽物 |
偽物 | 偽物 | 偽物 |
論理演算子(and)はAND演算を行うために使用され、左辺と右辺の値が両方ともtrueの場合はtrueを返し、それ以外の場合はfalseを返します。
print(1 < 2 and 5 > 4) # True
print(1 == 2 and 5 > 4) # False
print(1 == 2 and 5 == 4) # False
判定ステートメントでの論理演算子 (and) の適用では、1 つの判定ステートメントを使用して三角形を形成できるかどうかを判断します。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
print('三条线段a、b、c可以构成三角形')
else:
print('三条线段a、b、c不能构成三角形')
実行結果は以下の通りです。
論理演算子(または)
左 | 右 | 結果 |
本物 | 本物 | 本物 |
本物 | 偽物 | 本物 |
偽物 | 本物 | 本物 |
偽物 | 偽物 | 偽物 |
論理演算子(or)はOR演算を行うために使用され、左辺と右辺の値が両方とも偽の場合は偽を返し、それ以外の場合は真を返します。
print(1 < 2 or 5 > 4) # True
print(1 == 2 or 5 > 4) # True
print(1 == 2 or 5 == 4) # False
小学生の数学の成績が0~100の範囲を超えるかどうかは、判定文に論理演算子(または)を適用することで決まります。
score = int(input('请输入分数:'))
if score > 100 or score < 0:
print('分数超出0~100的范围')
実行結果は以下の通りです。
論理演算子 (not)
価値 | 結果 |
本物 | 偽物 |
偽物 | 本物 |
論理演算子 (not) は NOT 演算を実行するために使用され、値が true の場合は false を返し、値が false の場合は true を返します。
print(not 1 < 2) # False
print(not 1 == 2) # True
print(not 1 > 2) # True
小学生の数学の成績が0~100の範囲を超えるかどうかは、判定文に論理演算子(not)を適用することで決まります。
score = int(input('请输入分数:'))
if not 0 <= score <= 100:
print('分数超出0~100的范围')
実行結果は以下の通りです。
統合利用
線分a、b、cの3つがありますが、この3つの線分が三角形を作れるかどうかを判断してください。三角形が形成できる場合は、形成された三角形が正三角形、二等辺三角形、または正三角形であるかどうかを判断します。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
if a == b == c:
print('三条线段a、b、c能构成等边三角形')
elif a == b or a == c or b == c:
print('三条线段a、b、c能构成等腰三角形')
else:
print('三条线段a、b、c能构成普通三角形')
else:
print('三条线段a、b、c不能构成三角形')
実行結果は以下の通りです。