python3 第七章 - 循环语句

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

内容简介: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

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

查看所有标签

猜你喜欢:

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

统计学习方法

统计学习方法

李航 / 清华大学出版社 / 2012-3 / 38.00元

详细介绍支持向量机、Boosting、最大熵、条件随机场等十个统计学习方法。一起来看看 《统计学习方法》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具