python3 第七章 - 循环语句

栏目: Python · 发布时间: 8年前

内容简介:python3 第七章 - 循环语句

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

Python中的循环语句有

  • for
  • while

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

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)

以上代码,输出:

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

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

以上代码输出:

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

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

以上代码,输出:

来个负数的:

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

以上代码,输出:

-1
-4
-7

break

在循环中,break语句可以提前退出循环。例如,本来要循环打印1~5的数字:

n = 1

while n <= 5:
    print(n)
    n = n + 1

print('END')

以上代码,输出:

1
2
3
4
5
END

如果我们希望,当n=3的时候就退出循环,我们可以这么做:

n = 1

while n <= 5:
    if n == 3:
        break
    print(n)
    n = n + 1

print('END')

以上代码,输出:

1
2
END

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:

n = 1

while n <= 5:
    if n == 3:
        break
    print(n)
    n = n + 1
else:
    print('ELSE')
    
print('END')

以上代码,输出:

1
2
END

continue

在循环过程中,也可以通过continue语句,跳过当前循环块中的剩余语句,然后继续进行下一轮循环。同样本来要循环打印1~5的数字,但我想当n=3时,不打印:

 1 n = 1
 2 
 3 while n <= 5:
 4     
 5     if n == 3:
 6         n = n + 1
 7         continue
 8     print(n)
 9     n = n + 1
10 
11 print('END')

以上代码,输出:

1
2
4
5
END

思考,如果将第6行代码 n = n + 1 删除会出现什么现象,为什么?

continue只会终止当前这次的循环,不会终止怎么个循环所以else语句将会继续执行:

n = 1

while n <= 5:

    if n == 3:
        n = n + 1
        continue
    print(n)
    n = n + 1
else:
    print('ELSE')
print('END')

以上代码,输出:

1
2
4
5
ELSE
END

注:

  • break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
  • 要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句。上面的例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句, 请自行尝试改写一下

思考:如何打印1~100的奇数。

pass 语句

pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句,如下实例:

while True:
    pass

再来看下面的代码:

n = 1

while n <= 5:
    if n == 3:
        pass
        print('执行 pass 块')
    print(n)
    n = n + 1

print('END')

以上代码,输出:

1
2
执行 pass 块
3
4
5
END

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning Google Maps API 3

Beginning Google Maps API 3

Gabriel Svennerberg / Apress / 2010-07-27 / $39.99

This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具