本篇將以終極密碼和勘跟定理兩個範例,來做為迴圈語法的應用展示。

終極密碼的遊戲目標是,給定一個上下界,讓大家猜出該範圍內的數字。而在遊戲過程中,上下界會隨著大家猜想的數字變化,而愈來愈縮小範圍,直至有人猜中為止。以下是完整程式碼:

low = 1
high = 100
pwd = 35

while True:
	guess = int(input('Please enter a number within [{}, {}]:'.format(low, high)))

	if guess == pwd:
		print('You got it!')
		break
	elif guess < pwd:
		low = max(guess, low)
	elif guess > pwd:
		high = min(guess, high)

在上述範例中:

高中學過的勘根定理,也可以用迴圈來實做。勘根定理告訴我們,如果函數 f 是連續的,且 f(a) * f(b) ≤ 0,則 [a, b] 之間至少有一根。求根的步驟如下:

  1. 找一個區間 [a, b],使 f(a) 和 f(b) 異號
  2. 求 a, b 中點 c,並求 f(c)
  3. 如果 f(a) 和 f(c) 同號,則取 c 為新左界,否則取 c 為新右界
  4. 重複 2 和 3,至夠精確為止

以下範例,會展示如何找出 x5 - x - 1 = 0 在 (-0.5, 1.5) 之間的某一根:

def f(x):
	return x ** 5 - x - 1


a = -0.5
b = 1.5

fa = f(a)
fb = f(b)
while True:
	c = (a + b) / 2
	fc = f(c)

	if abs(fc) < 1e-5:
		print(c, abs(fc))
		break
	elif fa * fc > 0:
		a = c
	else:
		b = c

在上述範例中,數字已經過是先設計,保證該方程式在該範圍內恰有一根;你可以利用 Google 或其他方式自動畫圖觀察看看,或者用 matplotlib.pyplot 模組自己畫圖觀察看看。