Pythonベースの制御構造

5195 ワード

Pythonベースの制御構造
Pythonにおける制御構造は分岐構造と循環構造に分けられる.
1.分岐構造
(1)if構造
1つの選択のみの場合に適用される構文構造
if    :
        

例:
#       ,      ,          ,         
num = int(input("    :"))
if num & 1 == 0:
    print("num =", num)

#       ,      ,          [3,6] ,         
num = int(input("    :"))
if 3 <= num <= 6:
    print("num =", num)
"""
  : Python ,                   ,        ,            
pass Python     ,     ,           
"""

(2)if-else構造
この分岐構造は、2つの選択状況の構文構造に使用されます.
if   :
        
else:
        
#   :else  if     ,  if        

例:
#            A、B,   A B    
A = int(input("    A:"))
B = int(input("    B:"))
if A <= B:
    print("A B %.2f%%" % (A/B*100))
else:
    # print("    :  A   B!")
    raise ValueError("    :  A   B!")
    # raise       

#       ,      ,         
A = int(input("    A:"))
B = int(input("    B:"))
C = int(input("    C:"))
if (A >= B >= C) or (C >= B >= A):
    print("   B=%d" % B)
else:
    if (A >= C >= B) or (B >= C >= A):
        print("   C=%d" % C)
    else:
        print("   A=%d" % A)
        
#     ,        if-else      

(3)if-elif-else構造
コンピュータに使用するには、2つ以上の条件結果から選択構文構造を作成する必要があります.
if   1:
        1
elif   2:
        2
elif ...:
        ...
else
        n

例:
#     ,           
month = int(input("    :"))
if 3 <= month <= 5:
    print("%d    " % month)
elif 6 <= month <= 8:
    print("%d    " % month)
elif 9 <= month <= 11:
    print("%d    " % month)
elif month == 12 or 1 <= month <= 2:
    print("%d    " % month)
else:
    print("     ")

注意:Pythonはシンを重視しているので、Switch操作はサポートされていません!!!do-whileサイクルもサポートしていません!!!
2.循環構造
ループ:プログラムはある同じコードに対して連続的な繰り返し実行(2回実行)を実行する複数の操作Pythonのループをwhileループとforループに分け、ここでforループは反復操作反復となる:1つの反復可能な容器から繰り返しの値演算
###(1)range()メソッド
range():Python内蔵操作、指定した範囲の一連の連続数値を生成するために使用される注意:range()は最終的に反復可能なコンテナrange(num):このプロシージャは、[0,num]の区間を持つ一連の連続数値range(num 1,num 2):このプロシージャは、[num 1,num)の区間を持つ一連の連続数値range(num 1,num 2,step)を生成します.[num 1,num 2]の間隔からstepの一連の連続数値を生成します.
例:
nums = range(10)
print(list(nums))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10)
print(list(nums))
# [2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10, 3)
print(list(nums))
# [2, 5, 8]

###(2)forループ構造
有限ループ構文にのみ適用
for variable in Iterator:
       
variable:  ,               
Iterator:    ,           
   :               

例:
#  [1-100]      
for item in range(1, 101):
    mul = 1
    for i in range(1, (item+1)):
        mul *= i
    print("!%d=%d" % (item, mul))

#  [1-100]   7   
for item in range(1,101):
    if item % 7 == 0:
        print(item)
        break
else:
    print("      ")

#           
num1 = int(input("num1="))
num2 = int(input("num2="))
if num1 > num2:
    for item in range(num2, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("      ", item)
            break
else:
    for item in range(num1, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("      ", item)
            break
"""
break:    break     ,                 ,         
else:for  ,while     else  ,else                。           break    , else        
"""

(3)whileサイクル構造
有限ループおよび無限ループに適用
構文フォーマット
while     :
       

whileサイクル実行原理:まずプログラムはサイクル条件が成立するかどうかを判断し、成立すればサイクル体を実行し、サイクル体の実行が完了するとプログラムは自動的に条件判断にジャンプし、条件判断が成立すれば次のサイクルを継続し、そうでなければwhileサイクルは次のサイクルを終了し、プログラム実行中にcontinueキーワードに遭遇する.このループが終了すると、プログラムは直接条件判断breakにジャンプします.このレイヤループを終了し、プログラムの実行中にbreakキーワードに遭遇すると、breakが存在するループが強制的に終了します.
例:
#    
index = 1
while index <= 10:
    if index == 5:
        # index += 1
        continue
    print(index)
    index += 1

#       ,   100         ,   168         ,   (     )
for i in range(2, 85, 2):
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
i = 2
while i <= 84:
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
    i += 2


(4)ループネスト
ループネスト:forまたはwhileループのループ体に別のforループまたはwhileループが存在し、ネスト関係を構成する現象.開発でよく用いられるのは二重forサイクルである.
例:
#     

row = int(input("    :"))
for x in range(-row, row +1):
    string = ""
    for y in range(-row, row +1):
        if abs(x)+abs(y) == row:
            string += "*"
        else:
            string += " "
    print(string)
#    *   
#   * *  
#  *   * 
# *     *
#  *   * 
#   * *  
#    *   

#    ,