I.はじめに
1. 制御構造の簡単な紹介
制御構造は、プログラムの実行フローを制御するプログラミング言語のステートメントです。それらは 2 つの主なカテゴリに分類されます。
- 条件文:
if
ステートメント: 条件に基づいてコードのブロックを実行します。elif
ステートメント: 前の条件が当てはまらない場合は、この条件を試してください。else
ステートメント: このコード ブロックは、すべての条件が満たされない場合に実行されます。
- ループ文:
for
ループ: シーケンス内の各要素を繰り返し処理します。while
ループ: 条件が true である限り、コードのブロックを繰り返します。
2. プログラミングにおける制御構造の重要性
プログラミングにおける制御構造の重要性は、プログラムがさまざまな条件に基づいて、または繰り返してコードの特定のブロックを実行できるようにすることです。これにより、プログラムは意思決定を行い、反復的なタスクを実行し、複雑なプロセスを管理してさまざまな機能やアルゴリズムを実装できるようになります。
- 意思決定機能: 条件文 (if、elif、else など) を通じて、プログラムはさまざまな条件に応じてさまざまなコード パスを実行でき、それによって意思決定機能を実現します。
- 繰り返し実行: ループ ステートメント (for、while など) を使用すると、プログラムでコード ブロックを繰り返し実行できます。これは、繰り返しタスクの処理、データ構造の走査、その他のシナリオに不可欠です。
- プロセス管理: 制御構造はプログラムの実行プロセスを効果的に管理できるため、プログラムが論理的な順序で実行され、コードの可読性と保守性が向上します。
- アルゴリズムの実装: 制御構造は、並べ替え、検索、動的プログラミングなどのアルゴリズムを条件付きステートメントやループ ステートメントのサポートと切り離すことができません。
- 柔軟性とスケーラビリティ: 制御構造を合理的に使用すると、プログラムの柔軟性とスケーラビリティが向上し、さまざまな入力やシナリオに適応できるようになり、プログラムの多用途性が向上します。
要約すると、制御構造はプログラミング言語の中核コンポーネントであり、機能が豊富で論理的に複雑なプログラムを作成するには制御構造を習得することが重要です。
2. 条件文
1. if文の基本的な使い方
Python では、if
条件に基づいてコード ブロックを実行するためにステートメントが使用されます。if
ステートメントの基本的な使用法は次のとおりです。
-
単一の条件
if
ステートメント:if condition: # 如果条件为真,则执行这里的代码 print("条件为真,执行此代码块。")
-
複数の条件
if
文:if condition1: # 如果条件1为真,则执行这里的代码 print("条件1为真,执行此代码块。") elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 print("条件1不为真,条件2为真,执行此代码块。") else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
if
ステートメント内のコード ブロック:if
ステートメントの後のコロン ( ):
は、コード ブロックの始まりを示します。- コード ブロックはインデントする必要があります (通常は 4 つのスペースまたは 1 つのタブ)。
- 正しいインデントは、Python で構造を制御するための鍵です。
-
予防:
- 条件式は、特に複数の条件がある場合には括弧で囲む必要があります。
if
ステートメントの後にコロンを追加することを忘れないでください。- コード ブロックが正しくインデントされていることを確認してください。
-
例:
age = 20 if age >= 18: print("您已成年。") else: print("您还未成年。")
この例では、age
変数が 18 以上の場合は「あなたは成人です。」を出力し、それ以外の場合は「あなたはまだ未成年ではありません。」を出力します。if
ステートメントの基本的な目的は、条件評価の結果に基づいてコードの特定のブロックを実行するかどうかを決定することであることに注意してください。
2.else句の使用
Python では、条件が満たされない場合に代替の実行パスを提供するために、else
句はif
ステートメントと一緒に使用されることがよくあります。句の基本的な使用法はif
次のとおりです。else
-
単純なステートメント
if
の後のelse
句:if condition: # 如果条件为真,则执行这里的代码 else: # 如果条件不为真,则执行这里的代码 print("条件不为真,执行此代码块。")
-
elif
条項とelse
条項:if condition1: # 如果条件1为真,则执行这里的代码 elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
else
句 ANDfor
またはwhile
ループ:for item in collection: # 循环体代码 else: # 当循环正常完成时执行,即循环体未被`break`语句打断时执行 print("循环体已全部执行完毕。")
句を使用するときはelse
、次の点に注意する必要があります。
else
句はif
ステートメントと一緒に、またはステートメントの後に使用する必要がありますif
。else
コード構造を明確に保つために、句内のコード ブロックは同じインデント レベルにする必要があります。elif
句内では、それぞれの句elif
と対応する句のelse
インデント レベルが同じである必要があります。for
orループではwhile
、else
句はループの通常の終了時、つまりbreak
ループの本体がステートメントによって中断されていないときに実行されます。例えば:
x = 10
if x > 0:
print("x 是正数")
else:
print("x 不是正数")
この例では、x
0 より大きい場合は「x は正の数です」と表示され、0 より大きい場合は「x は正の数ではありません」と表示されます。
3. elif 節の使用
Python では、elif
(else if の略) 句を使用して、if
ステートメントの条件が満たされない場合に追加の条件チェックを提供します。elif
句は、複数条件分岐ロジックを実装するためによく使用されます。elif
句の基本的な使用法は次のとおりです。
-
if-elif-else
構造:if condition1: # 如果条件1为真,则执行这里的代码 elif condition2: # 如果条件1不为真,但条件2为真,则执行这里的代码 else: # 如果条件1和条件2都不为真,则执行这里的代码 print("条件1和条件2都不为真,执行此代码块。")
-
elif
句の順序:elif
句は、可能性が最も高いものから可能性が最も低いものの順に並べる必要があります。- これにより、プログラムは条件を満たす句をより速く見つけて
elif
実行できるようになります。
-
予防:
- それぞれ
elif
と対応するものはelse
同じインデント レベルを持つ必要があります。 - 最初の
if
条件が満たされない場合、Python は最初のelif
条件をチェックし、満たされている場合は対応するコード ブロックを実行します。 if
すべてのANDelif
条件が満たされない場合は、else
句 (存在する場合) が実行されます。
- それぞれ
-
例:
grade = 'B' if grade == 'A': print("优秀!") elif grade == 'B': print("良好。") elif grade == 'C': print("及格。") else: print("加油,再努力!")
この例では、grade
変数の値に応じて、プログラムは異なるメッセージを出力します。 「A」の場合はgrade
「Excellent!」を出力し、「B」の場合は「Good」を出力し、どちらでもない場合は「頑張ってください」を出力します。 「!」。elif
句は、複雑な条件判断を実装するための一般的な方法です。句を使用すると、コードがより明確になり、理解しやすくなります。
4. ネストされた if ステートメント
ネストされたステートメントとは、ステートメント ブロック内で別のステートメントを使用することif
を指します。ネストされたステートメントを使用すると、複数の条件に基づいて異なるコード パスを実行できます。ネストされたステートメントの基本的な使用法は次のとおりです。if
if
if
if
- ネストされた
if
ステートメント:x = 10 if x > 0: print("x 是正数") if x < 100: print("x 是一个小于100的正数") else: print("x 不是正数")
この例では、まずx
0 より大きいかどうかを確認します。そうである場合は、 x
100 未満かどうかをさらに確認します。 2.注意事項:
- 内側のステートメントが外側のステートメントと同じインデント レベル
if
であることを確認してください。if
- 無限ループを避けるために、ネストされた各
if
ステートメントには明示的な条件が必要です。
- 例:
age = 21 if age >= 18: print("您已成年。") if age >= 21: print("您已超过法定饮酒年龄。") else: print("您还未达到法定饮酒年龄。") else: print("您还未成年。")
この例では、最初にage
18 以上かどうかを確認し、18 であればさらに 21 以上かどうかを確認します。ネストされたif
ステートメントは、複雑なロジックを扱う場合に非常に便利ですが、過度に使用したり誤って使用したりすると、コードの理解や保守が困難になる可能性があります。したがって、ネストされたif
ステートメントを作成するときは、ロジックが明確であることを確認し、できるだけ簡潔に保つ必要があります。
3. 論理演算子
1. and
、or
およびnot
演算子の使用
Python では、and
および演算子or
はnot
論理演算に使用され、複数の条件を組み合わせたり、単一の条件を否定したりするために使用されます。
and
オペレーター
- 両方の条件が true の場合、
and
演算子の結果は true になります。 - それ以外の場合、結果は false になります。
condition1 = True
condition2 = False
result = condition1 and condition2
print(result) # 输出:False
or
オペレーター
- 2 つの条件のうち少なくとも 1 つが true の場合、
or
演算子の結果は true になります。 - それ以外の場合、結果は false になります。
condition1 = True
condition2 = False
result = condition1 or condition2
print(result) # 输出:True
not
オペレーター
- 1 つの条件を否定します。
- 条件が true の場合、
not
演算子の結果は false になります。 - それ以外の場合、結果は true になります。
condition = True
result = not condition
print(result) # 输出:False
予防
- 論理演算子の両側のオペランドは通常、ブール値です。
- 論理演算子の演算順序は左から右です。
- 論理演算子は、任意のブール式で使用できます。
例
# 组合使用 and、or 和 not 运算符
x = 10
y = 20
result = (x > 5) and (y > 10)
print(result) # 输出:False
result = (x > 5) or (y > 10)
print(result) # 输出:True
result = not (x == y)
print(result) # 输出:True
これらの演算子は、条件ステートメントを作成するときに非常に便利で、複雑な論理的判断を構築するのに役立ちます。論理演算子を適切に使用すると、コードの明瞭さと読みやすさが向上します。
2. 条件文での適用
論理演算子は条件ステートメントで広く使用されており、複数の条件を組み合わせてより複雑な決定を行うことができます。 Python では、主な論理演算子にはand
、or
、 が含まれますnot
。
and
オペレーター
and
演算子は、2 つ以上の条件が同時に真であるかどうかを確認するために使用されます。if
ステートメント内で、and
を使用して複数の条件を組み合わせることができます。
x = 10
y = 20
if x > 5 and y > 10:
print("x 和 y 都大于它们的阈值。")
この例では、コード ブロックがx
5 より大きく、y
10 より大きい場合にのみ実行されます。
or
オペレーター
or
演算子は、2 つ以上の条件のうち少なくとも 1 つが true であるかどうかを確認するために使用されます。if
ステートメント内で、or
を使用して代替条件を指定できます。
x = 10
y = 5
if x > 5 or y > 10:
print("x 或 y 至少有一个大于它们的阈值。")
この例では、x
5 より大きいかy
10 より大きい場合、コード ブロックが実行されます。
not
オペレーター
not
演算子は、単一の条件を否定するために使用されます。if
ステートメント内で、not
条件のロジックを逆にするために使用できます。
x = 5
if not (x > 10):
print("x 不大于10。")
この例では、not
演算子がx
10 より大きくないかどうかをチェックするために使用されます。10x
より大きくない場合、コード ブロックが実行されます。
予防
- 論理演算子を使用する場合は、コードを読みやすくし、スペースと改行を適切に使用するように注意してください。
- 論理演算子の両側のオペランドは同じデータ型 (通常はブール型) である必要があります。
- 複数の論理演算子を組み合わせて使用する場合は、演算子の優先順位が
and
よりも高いことに注意してくださいor
。論理演算子を合理的に使用することで、条件ステートメントをより正確かつ強力にすることができ、より複雑な論理判断を処理できるようになります。
4. ループ構造
1.for
ループの基本的な使い方
Python では、for
ループはシーケンス (リスト、タプル、文字列など) または任意の反復可能なオブジェクトを横断する反復ステートメントです。for
ループの使用の基本は次のとおりです。
-
基本
for
ループ:for item in iterable: # 遍历iterable中的每个item print(item)
-
for
ループ内の反復変数:- 反復変数には通常 という名前が付けられます
item
が、任意の有効な変数名を使用できます。 - 反復ごとに、の次の要素
item
が割り当てられます。iterable
- 反復変数には通常 という名前が付けられます
-
for
ループ内のコード ブロック:- コード ブロックはインデントする必要があります (通常は 4 つのスペースまたは 1 つのタブ)。
- 正しいインデントは、Python で構造を制御するための鍵です。
-
例:
# 遍历列表中的每个元素 fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
この例では、for
ループはfruits
リスト内の各要素を反復処理して出力します。 5.for
ループ内のelse
句:
for
ループには、ステートメントによって中断されるelse
ことなく、外側のループの各反復で実行されるオプションの句を含めることもできます。break
else
句は通常、ループが正常に完了したときにクリーンアップ作業または一部のコードを実行するために使用されます。
for item in iterable:
# 循环体代码
else:
# 当循环正常完成时执行
print("循环体已全部执行完毕。")
for
ループは Python の非常に強力な機能であり、データ処理やファイル操作などのシナリオで広く使用されています。ループを使用for
すると、シーケンス内の各要素を簡単に反復して操作できます。
2.while
ループの基本的な使い方
Python では、while
ループとは、特定の条件に基づいてコードのブロックを繰り返し実行する循環構造です。while
ループの使用の基本は次のとおりです。
-
基本
while
ループ:while condition: # 当condition为真时,重复执行这里的代码 print("条件为真,继续循环。")
-
ループの基本構造:
while
キーワードはループの始まりを示します。- 条件式は括弧で囲む必要があります。
- コード ブロックはインデントする必要があります (通常は 4 つのスペースまたは 1 つのタブ)。
-
条件判定:
- ループは条件が真でなくなるまで継続します。
- 条件は通常、ループが実行を継続するかどうかを決定するブール式です。
-
例:
count = 0 while count < 5: print(count) count += 1
この例では、変数が値 5 に達するwhile
までループが繰り返されます。 count
5.注意事項:
- 無限ループを避け、条件が最終的に false になるようにしてください。
- コードを読みやすく保つために、コード ブロックを正しくインデントします。
while
ループは、反復的なタスクを実装し、状態を継続的に確認するための重要なツールです。特定の条件が満たされるまで複数回の反復が必要な状況を処理するためによく使用されます。ループを適切に使用すると、while
プログラムの効率と保守性が向上します。
5. ループ制御ステートメント
1.break
ステートメントの使用
Python では、ステートメントは、ループであってもループでbreak
あっても、現在いるループ構造を直ちに終了するために使用されます。ステートメントの基本的な使用法は次のとおりです。for
while
break
- ループ
for
内で使用break
:for item in iterable: if item == "special": break # 退出for循环 print(item)
この例では、ループ内のステートメントがitem
「special」に等しい場合、break
ループは直ちに終了します。 2.ループwhile
内で使用しますbreak
。
count = 0
while count < 5:
print(count)
count += 1
if count == 3:
break # 退出while循环
この例では、count
3 に等しい場合、break
ステートメントによりwhile
ループが直ちに終了します。 3.注意事項:
break
ステートメントは、それが配置されているループ レベルでのみ使用できます。- ステートメントが実行されると
break
、ループ構造は直ちに終了し、ループ本体内の残りのコードは実行されなくなります。 - これを使用する場合は
break
、無限ループが作成されないように、ループが最終的に終了することを確認する必要があります。break
ステートメントはループの実行を制御するための重要な方法の 1 つであり、特定の条件が満たされたときにループを早期に終了できるため、不必要な反復を回避できます。正しく使用すると、break
コードをより効率的かつ柔軟にすることができます。
2.continue
ステートメントの使用
Python では、continue
ステートメントは現在のループの残りのコードをスキップし、次の反復を開始するために使用されます。ステートメントが実行されるとcontinue
、現在のループ反復が直ちに終了し、プログラム制御フローがループの先頭に戻り、ループ条件がチェックされ、条件が true の場合は次の反復が開始されます。continue
ステートメントの基本的な使用法は次のとおりです。
- ループ
for
内で使用continue
:for item in iterable: if item == "special": continue # 跳过当前迭代,继续下一次迭代 print(item)
この例では、item
ループ内で が "special" に等しい場合、continue
ステートメントにより現在の反復が直ちに終了し、次の反復が開始されます。 2.ループwhile
内で使用しますcontinue
。
count = 0
while count < 5:
count += 1
if count == 3:
continue # 跳过当前迭代,继续下一次迭代
print(count)
この例では、count
3 に等しい場合、continue
ステートメントにより現在の反復が直ちに終了し、次の反復が開始されます。 3.注意事項:
continue
ステートメントは、それが配置されているループ レベルでのみ使用できます。- 使用する場合は
continue
、望ましい効果でない限り、ループが途中で終了しないようにする必要があります。 continue
ステートメントは通常、不必要な反復をスキップしたり、特定の条件下でループ内でアクションを実行したりするために使用されます。continue
ステートメントはループの実行を制御するもう 1 つの方法であり、特定の条件が満たされた場合に現在の反復をスキップできるため、ループの効率と精度が向上します。適切に使用すると、continue
コードがより柔軟になり、保守が容易になります。
3. pass ステートメントの使用
Python では、pass
ステートメントはアクションを実行しない no-op であり、通常はプレースホルダーとして、またはコード構造の整合性を維持するために使用されます。コードにステートメントが必要だが、実際のアクションを実行したくない場合に使用しますpass
。pass
ステートメントの基本的な使用法は次のとおりです。
-
基本的な
pass
ステートメント:pass # 这是一个空操作,不执行任何操作
-
関数定義で使用
pass
:def example_function(): pass # 函数中使用pass作为占位符
この例では、example_function
これは空の関数であり、実際のコードは含まれていません。 3.クラス定義での使用pass
:
class ExampleClass:
pass # 类中使用pass作为占位符
この例では、ExampleClass
プロパティやメソッドが定義されていない空のクラスです。 4.注意事項:
pass
ステートメントは、特にステートメントが必要だがアクションを実行したくない場合に、コードの構造をそのまま維持するためによく使用されます。- これを関数またはクラスのプレースホルダーとして使用すると、
pass
関数またはクラスが当面機能を実装していない場合でも、コードが Python の構文規則に確実に従うようになります。pass
このステートメントは何も操作しませんが、場合によっては、コードを明確で一貫性のあるものに保つ必要があります。正しく使用すると、pass
コードがクリーンになり、将来のコードのメンテナンスと拡張が容易になります。
6. 演習と例
条件文とループ構造に関する練習問題
- 年齢判定: 入力された年齢に基づいて投票可能かどうかを判定するプログラムを作成します(投票年齢は18歳とします)。
age = int(input("请输入年龄:"))
if age >= 18:
print("可以投票。")
else:
print("还未到投票年龄。")
- 三角形を印刷する:
for
ループを使用して直角三角形を印刷します。
for i in range(1, 6):
for j in range(1, i + 1):
print("*", end=" ")
print()
- 数字当てゲーム: 数字当てゲームを作成します。プログラムは 1 から 100 までの整数をランダムに生成します。プレーヤーには数字を当てるチャンスが 10 回あります。
import random
secret_number = random.randint(1, 100)
for attempt in range(10):
guess = int(input("请猜一个1到100之间的整数:"))
if guess < secret_number:
print("太小了!")
elif guess > secret_number:
print("太大了!")
else:
print(f"恭喜你,猜对了!秘密数字是 {secret_number}。")
break
if attempt == 9:
print("你没有足够的尝试次数来猜出数字。")
現実世界の問題解決の例
質問 1: 個人所得税を計算してください
個人所得税は次のように計算されると仮定します。
- 月収が5,000元以下であれば、個人所得税を支払う必要はありません。
- 月収が5,000元以上15,000元以下の場合、税率は5%です。
- 月収が15,000元以上30,000元以下の場合、税率は10%です。
- 月収が3万元を超える場合、税率は20%となります。
income = float(input("请输入您的月收入:"))
if income <= 5000:
tax = 0
elif income <= 15000:
tax = income * 0.05
elif income <= 30000:
tax = income * 0.10
else:
tax = income * 0.20
print(f"您的个人所得税为:{tax:.2f}元。")
質問 2: 1 から 100 までのすべての偶数の合計を計算してください
sum_even = 0
for i in range(1, 101):
if i % 2 == 0:
sum_even += i
print(f"1到100之间所有偶数的和是:{sum_even}")
ライナスは、カーネル開発者がタブをスペースに置き換えることを阻止するために自ら問題を解決しました。 彼の父親はコードを書くことができる数少ないリーダーの 1 人であり、次男はオープンソース テクノロジー部門のディレクターであり、末息子は中核です。ファー ウェイ: 一般的に使用されている 5,000 のモバイル アプリケーションを変換するのに 1 年かかった Java はサードパーティの脆弱性が最も発生しやすい言語です。Hongmeng の父: オープンソースの Honmeng は唯一のアーキテクチャ上の革新です。中国の基本ソフトウェア分野で 馬化騰氏と周宏毅氏が握手「恨みを晴らす」 元マイクロソフト開発者:Windows 11のパフォーマンスは「ばかばかしいほど悪い」 老祥基がオープンソースであるのはコードではないが、その背後にある理由は Meta Llama 3 が正式にリリースされ、 大規模な組織再編が発表されました。この記事はHeng Xiaopaiの記事の転載であり、著作権は元の著者に属します。この記事を転載するには、原文を参照することをお勧めします。