16-笔记:Python3 循环语句

泄露秘密 提交于 2019-12-02 15:50:11
Python 中的循环语句有 for 和 while
Python 循环语句的控制结构图如下所示:

while 循环

Python 中 while 语句的一般形式

while 判断条件:    语句
同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环


#!/usr/bin/env python3# -*- coding:utf-8 -*-n = 100sum = 0counter = 1while counter <= n:    sum = sum + counter    counter += 1print('1 到 %d 之和为:%d' % (n, sum))

无限循环

可以通过设置条件表达式永远不为 false 来实现无限循环

var = 1while var == 1:     # 表达式永远为true    num = int(input("输入一个数字 :"))    print("输入的数字:", num)print("Good bye!")
可以使用 CTRL+C 来退出当前的无限循环

无限循环在服务器上客户端的实时请求非常有用


while 循环使用 else 语句

在 while … else 在条件语句为 false 时执行 else 的语句块

语法格式

while <expr>:    <statement(s)>else:    <additional_statement(s)>

循环输出数字,并判断大小

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

简单语句组

类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中

flag = 1while (flag): print("欢迎使用")
注意:以上的无限循环你可以使用 CTRL+C 来中断循环


for 语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串
for循环的一般格式
for <variable> in <sequence>:    <statements>else:    <statements>

lan = ['C', 'C++', 'Perl', 'Python']for x in lan:    print(x)


sites = ['Baidu', 'Google', 'Run', 'Taobao']for site in sites:    if site == 'Taoba':        print('菜鸟!')        break    print("循环数据 " + site)else:    print("没有循环数据!")print("完成循环!")


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(-10, -100, -30):    print(i)

可以结合range()和len()函数以遍历一个序列的索引
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']for i in range(len(a)):    print(i, a[i])

可以使用range()函数来创建一个列表

break 和 continue 语句及循环中的 else 子句

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
(continue语句跳出 for 和 while 的循环体的本次循环)
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行
代码执行过程
while 中 使用 break:
n = 5while n > 0:    n -= 1    if n == 2:        break    print(n)print("循环结束")

while 中 使用 continue
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
n = 5while n > 0:    n -= 1    if n == 2:        continue    print(n)print("循环结束")
查询质数的循环例子
for n in range(2, 10):    for x in range(2, n):        if n % x == 0:            print(n, '等于', x, '*', n//x)            break    else:        # 循环中没有找到元素        print(n, "是质数")
输出
2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3

pass 语句

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

在字母为 o 时 执行 pass 语句块
for letter in 'Runoob':    print('当前字母:', letter)    if letter == 'o':        pass        print('执行 pass 块')print('结束!')

小结:
使用内置 enumerate 函数进行遍历
for index, item in enumerate(sequence):    process(index, item)
sequence = [12, 34, 34, 23, 45, 76, 89]for i, j in enumerate(sequence):    print(i, j)


使用循环嵌套来实现99乘法法则:
# 外边一层循环控制行数# i是行数i = 1while i <= 9:    # 里面一层循环控制每一行中的列数    j = 1    while j < i:        mut = j * i        print("%d * %d = %d" % (j, i, mut), end=" ")        j += 1    print("")    i += 1

while 循环语句和 for 循环语句使用 else 的区别:

  • 1、如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
  • 2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行

pass只是为了防止语法错误
pass就是一条空语句。在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass
if a>1:    pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误


十进制转换
while True:    number = input("请输入一个整数(输入Q推出程序):")    if number in ['q', 'Q']:        break   # 如果输入q或Q,结束退出    elif not number.isdigit():        print("您输入有误!只能输入整数(输入Q退出程序)!请重新输入")        continue    # 如果输入的数字不是10进制,结束循环,重新开始    else:        number = int(number)        print("十进制-->十六进制 :%d -> 0x%x"%(number, number))        print("十进制-->  八进制 :%d -> 0o%o" % (number, number))        print("十进制-->二进制   :%d -> " % number, bin(number))









易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!