Pythonプログラミング入門(021) - ループ構造プログラミング(2):whileループ

Pythonプログラミング入門(021) - ループ構造プログラミング(2):whileループ

1. whileループの構文

while ループは条件を使用して、ループ本体内のステートメントの実行を継続するかどうかを制御します。その構文形式は次のとおりです。

while 条件表达式:
    循环体

例証します:

(1) 条件式の戻り値が True の場合、ループ本体内のステートメントを実行します。

(2) ループ本体の実行終了後、条件式の戻り値が False となりループが終了するまで、条件式の戻り値が再判定されます。

例えば:

num = 10
while num != 0:
    num = int(input("请输入一个整数:"))
    print("你输入的整数为:",num)
    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:22
你输入的整数为: 22
请输入一个整数:1
你输入的整数为: 1
请输入一个整数:-22
你输入的整数为: -22
请输入一个整数:0
你输入的整数为: 0

2. while True ループ (while ループの条件は常に true)

while True ループの形式は次のとおりです。

while True:
    循环体

例えば:

(1) 現在時刻を表示し、1秒ごとに更新します

import time
while True:
    print(time.strftime("%Y-%m-%d  %H:%M:%S",time.localtime()),end="\r")
    time.sleep(1)

上記のプログラムの結果は次のとおりです。

ここに画像の説明を挿入します

(2) シフトスケジュールの表示

import time
list1 = ["张三","李四","王强","张静","刘鹏","王菲","刘莉"]
while True:
    x = list1.pop(0)
    list1.append(x)
    print("当前值班人员名单:",list1[0],end="\r")
    time.sleep(1)

上記のプログラムの結果は次のとおりです。

ここに画像の説明を挿入します

(3) Break を使用して while True ループを終了します。

num = 0
while True:
    num = int(input("请输入一个数:"))
    if num == 0:
        print("输入的是0,循环结束。")
        break
            
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:10
请输入一个数:-25
请输入一个数:1
请输入一个数:2
请输入一个数:0
输入的是0,循环结束。

3. ループ本体で Break ステートメントを使用する

現在のループを終了するには、break ステートメントを使用します。break ステートメントは、for ループと while ループの両方で使用できます。Break ステートメントの構文は比較的単純で、while または for ループのループ本体に追加するだけです。

通常、break ステートメントは if ステートメントと組み合わせて使用​​され、特定の条件下でループから抜け出すことを示します。ネストされたループを使用する場合、break ステートメントは最も内側のループから抜け出します。while ループ内で Break ステートメントを使用する形式は次のとおりです。

while 条件表达式1:
    循环代码
    if 条件表达式2:
        break

for ループ内で Break ステートメントを使用する形式は次のとおりです。

for 迭代变量 in 对象:
    循环代码
    if 条件表达式:
        break

例えば:

(1) 整数が素数かどうかを判定する

for ループを使用します。

num = 3
for i in range(2,int(num ** 0.5) + 1):
    if num % i == 0:
        print(num,"不是素数")
        break
else:
    print(num,"是素数")
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3 是素数

while ループを使用します。

num = 7
i = 2
while i < int(num ** 0.5) + 1:
    if num % i == 0:
        print(num,"不是素数")
        break
    i += 1
if i >= int(num ** 0.5) + 1:
    print(num,"是素数")     
    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
7 是素数

(2) 入力された数値を累計する(0またはマイナスの数値を入力すると終了)

sum1 = 0
while True:
    s = float(input("请输入数值:"))
    if s <= 0:
        break
    sum1 += s
    print("累加和为:",sum1)
        
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入数值:2
累加和为: 2.0
请输入数值:2.5
累加和为: 4.5
请输入数值:12.6
累加和为: 17.1
请输入数值:0

4. ループ本体で continue ステートメントを使用します。

continue ステートメントは、このループを終了して、事前に次のループに入ることができます。continue ステートメントの構文は比較的単純で、対応する for ループまたは while ループのループ本体に追加するだけです。

while ループ内で continue ステートメントを使用する形式は次のとおりです。

while 条件表达式1:
    循环代码
    if 条件表达式2:
        continue

for ループ内で continue ステートメントを使用する形式は次のとおりです。

for 迭代变量 in 对象:
    循环代码
    if 条件表达式:
        continue

例: 入力数値に対して累積演算を実行し (負の数値は無視)、終了するには 0 を入力します。

sum1 = 0
while True:
    s = float(input("请输入数值:"))
    if s < 0:
        continue
    sum1 += s
    print("累加和为:",sum1)
    if s == 0:
        break
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入数值:12
累加和为: 12.0
请输入数值:4
累加和为: 16.0
请输入数值:5.2
累加和为: 21.2
请输入数值:-233
请输入数值:-52
请输入数值:0
累加和为: 21.2

おすすめ

転載: blog.csdn.net/weixin_44377973/article/details/132309985