Python编程
while
循环
这是我们的第一个控制结构。使用的是 2.7 版本。通常情况下,计算机从第一行开始,然后逐行向下执行。控制结构改变了语句执行的顺序,或者决定是否执行某个特定的语句。顺便提一下,决策语句(例如 if
语句)也会影响某个语句是否执行。下面是使用 while
控制结构的程序源代码:
a = 0
while a < 5:
a += 1 # 等同于 a = a + 1
print(a)
输出:
1
2
3
4
5
程序的运行是怎样的呢?首先它看到 a = 0
,将变量 a
设置为零。然后它看到 while
a < 5:
,计算机检查 a < 5
是否为真。第一次计算时,a
为零,而零小于五。换句话说,只要 a
小于五,计算机就会运行缩进的语句。
这里是另一个使用 while
的例子:
a = 1
s = 0
print('Enter Numbers to add to the sum.')
print('Enter 0 to quit.')
while a != 0:
print('Current Sum: ', s)
a = input('Number? ') # raw_input() 只适用于 Python 2.x
a = float(a)
s += a
print('Total Sum = ', s)
输出:
Enter Numbers to add to the sum.
Enter 0 to quit.
Current Sum: 0
Number? 200
Current Sum: 200
Number? -15.25
Current Sum: 184.75
Number? -151.85
Current Sum: 32.9
Number? 10.00
Current Sum: 42.9
Number? 0
Total Sum = 42.9
注意到 print('Total Sum =', s)
只有在最后才会执行。while
语句只影响那些被缩进的行(也叫做内缩)。!=
代表“不等于”,所以 while a != 0:
意味着只要 a
不等于零,就运行缩进的语句。
现在,我们已经了解了 while
循环,就可以写出可能永远运行的程序。一个简单的方法是这样写:
while 1 == 1:
print("Help, I'm stuck in a loop.")
这个程序将会输出 Help, I'm stuck in a loop.
,直到宇宙热寂,或者你停止它。停止的方法是按下 Control
(或 Ctrl
)键和字母 c
,同时按下。这将终止程序。(注意:有时你可能需要按下回车键才能终止。)
示例
Fibonacci.py
# 这个程序计算 Fibonacci 数列
a = 0
b = 1
count = 0
max_count = 20
while count < max_count:
count = count + 1
# 我们需要追踪 a,因为我们修改了它
old_a = a
old_b = b
a = old_b
b = old_a + old_b
# 注意 print 语句末尾的逗号,这样它就不会换行
print(old_a),
输出:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
Password.py
# 等待直到输入密码。使用 control-C 可以中断程序,而不输入密码。
# 注意这必须不是密码,这样 while 循环至少会执行一次。
password = "foobar"
# 注意 != 表示不等于
while password != "unicorn":
password = input("Password: ")
print("Welcome in")
示例运行:
Password: auo
Password: y22
Password: password
Password: open sesame
Password: unicorn
Welcome in
for
循环
Python 中的下一种循环是 for
循环。与大多数语言不同,for
循环需要一个 可迭代 对象,如集合(Set)或列表(List)才能工作。
onetoten = range(1, 11)
for count in onetoten:
print(count)
输出:
1
2
3
4
5
6
7
8
9
10
这个输出看起来很熟悉,但程序代码看起来有所不同。第一行使用了 range
函数。range
函数使用两个参数,像这样 range(start, finish)
。start
是生成的第一个数字,finish
是最后一个数字的下一个数字(即不包含 finish
)。注意,这个程序可以通过以下更简洁的方式实现:
for count in range(1, 11):
print(count)
这里是一些使用 range
函数的例子:
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(-32, -20)
[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]
>>> range(5, 21)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> range(21, 5)
[]
通过这些例子可以看到 range
函数的行为。
while
循环
这是我们第一个控制结构。使用的是 2.7 版本。通常情况下,计算机从第一行开始,然后逐行向下执行。控制结构改变了语句执行的顺序,或者决定是否执行某个特定的语句。顺便提一下,决策语句(例如 if
语句)也会影响某个语句是否执行。下面是使用 while
控制结构的程序源代码:
a = 0
while a < 5:
a += 1 # 等同于 a = a + 1
print(a)
输出:
1
2
3
4
5
程序的运行是怎样的呢?首先它看到 a = 0
,将变量 a
设置为零。然后它看到 while
a < 5:
,计算机检查 a < 5
是否为真。第一次计算时,a
为零,而零小于五。换句话说,只要 a
小于五,计算机就会运行缩进的语句。
这里是另一个使用 while
的例子:
a = 1
s = 0
print('Enter Numbers to add to the sum.')
print('Enter 0 to quit.')
while a != 0:
print('Current Sum: ', s)
a = input('Number? ') # raw_input() 只适用于 Python 2.x
a = float(a)
s += a
print('Total Sum = ', s)
输出:
Enter Numbers to add to the sum.
Enter 0 to quit.
Current Sum: 0
Number? 200
Current Sum: 200
Number? -15.25
Current Sum: 184.75
Number? -151.85
Current Sum: 32.9
Number? 10.00
Current Sum: 42.9
Number? 0
Total Sum = 42.9
注意到 print('Total Sum =', s)
只有在最后才会执行。while
语句只影响那些被缩进的行(也叫做内缩)。!=
代表“不等于”,所以 while a != 0:
意味着只要 a
不等于零,就运行缩进的语句。
现在,我们已经了解了 while
循环,就可以写出可能永远运行的程序。一个简单的方法是这样写:
while 1 == 1:
print("Help, I'm stuck in a loop.")
这个程序将会输出 Help, I'm stuck in a loop.
,直到宇宙热寂,或者你停止它。停止的方法是按下 Control
(或 Ctrl
)键和字母 c
,同时按下。这将终止程序。(注意:有时你可能需要按下回车键才能终止。)
示例
Fibonacci.py
# 这个程序计算 Fibonacci 数列
a = 0
b = 1
count = 0
max_count = 20
while count < max_count:
count = count + 1
# 我们需要追踪 a,因为我们修改了它
old_a = a
old_b = b
a = old_b
b = old_a + old_b
# 注意 print 语句末尾的逗号,这样它就不会换行
print(old_a),
输出:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
Password.py
# 等待直到输入密码。使用 control-C 可以中断程序,而不输入密码。
# 注意这必须不是密码,这样 while 循环至少会执行一次。
password = "foobar"
# 注意 != 表示不等于
while password != "unicorn":
password = input("Password: ")
print("Welcome in")
示例运行:
Password: auo
Password: y22
Password: password
Password: open sesame
Password: unicorn
Welcome in
for
循环
Python 中的下一种循环是 for
循环。与大多数语言不同,for
循环需要一个 可迭代 对象,如集合(Set)或列表(List)才能工作。
onetoten = range(1, 11)
for count in onetoten:
print(count)
输出:
1
2
3
4
5
6
7
8
9
10
这个输出看起来很熟悉,但程序代码看起来有所不同。第一行使用了 range
函数。range
函数使用两个参数,像这样 range(start, finish)
。start
是生成的第一个数字,finish
是最后一个数字的下一个数字(即不包含 finish
)。注意,这个程序可以通过以下更简洁的方式实现:
for count in range(1, 11):
print(count)
这里是一些使用 range
函数的例子:
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(-32, -20)
[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]
>>> range(5, 21)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> range(21, 5)
[]
通过这些例子可以看到 range
函数的行为。