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