为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。

Python中的循环语句有

  • while
  • for

循环语句的执行过程,如下图:

python3 第七章 - 循环语句

while 循环

Python中while语句的一般形式:

while 判断条件:
    语句

 

以上语法的执行过程是:

条件 True,执行 语句块1 的语句

条件False ,执行 语句块2 的语句

 

我们用while做一件事,计算1~100所有数字的总和:

n = 100
sum = 0
counter = 1

while counter <= n:
    sum = sum + counter
    counter += 1

print("1 到 ", n, " 之和是:", sum)

以上代码,输出:

1 到  100  之和是: 5050

 

有没有发现,用程序去做一些事,还是比较省心的,未来的世界是“机器的”,“智能的”,扯得有点远了。假如,我们的循环语句的条件是恒定为True,那会出现什么情况?

while 2 > 1:  # 表达式永远为 true
    name = input('请输入您的名字:')
    print("您好 ", name)

print("Good bye!")

 以上代码,输出:

请输入您的名字:roy
您好  roy
请输入您的名字:

 你应该也发现了,程序会一直不断的要求你输入名字,程序在无限循环(又称死循环)。

 

while也可以搭配else来用,当 条件 为 false 时执行 else 的语句块:

while 判断条件:
    语句1
else:
    语句2

 代码实例:

count = 0
while count < 5:
print(count, " 小于 5")
count = count + 1
else:
print(count, " 大于或等于 5")

 以上代码,输出:

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  大于或等于 5

 

for 循环

基本语法:

for 变量 in 序列:
    语句块

以上语法的执行过程是:

依次从序列中取一个元素,然后赋值给变量,并执行语句块,直到序列的所有元素都被赋过值。这一点,很像其它语言中的foreach。

代码实例:

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
    print(x)

以上代码,输出:

C
C++
Perl
Python

 

for也可以搭配else来用,当序列中所有值被赋值过一次后,执行 else 的语句块,语法如下:

for 变量 in 序列:
    语句块1
else:
    语句块2 

实例

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
    print(x)
else:
    print('这里是else') 

以上代码,输出:

C
C++
Perl
Python
这里是else

 

range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

for i in range(5):
    print(i)

以上代码,输出:

0
1
2
3
4

 

你也可以使用range指定区间的值:

for i in range(5, 9):
    print(i)

以上代码输出:

5
6
7
8

 注意,以上代码输出是包含5,不包含9的

 

也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做“步长”):

for i in range(0, 10, 3):
    print(i)

以上代码,输出:

0
3
6
9

其中的,3 是步长

 

来个负数的:

for i in range(-1, -10, -3):
    print(i)

以上代码,输出:

-1
-4
-7

其中的, -3 是步长

 

思考:如何打印1~100的奇数,把你知道的方式都写出来。下面提供2种,但在你写出代码前,请尽可能不要先查看:

方式1:

n = 1

while n <= 100:  # <=  的意思,请参阅第五章的Python比较运算符
    if n % 2 == 1:   # % 的意思,请参阅第五章的Python算术运算符
        print(n)

    n += 1  # += 的意思,请参阅第五章的Python赋值运算符
View Code

相关文章: