zoukankan      html  css  js  c++  java
  • day07-while,for循环

    1、循环语句

    Python提供了for循环和while循环
    while在给定的判断条件为 true 时执行循环体,否则退出循环体。
    for重复执行语句
    嵌套循环可以在while循环体中嵌套for、while循环

    2、while语句

    while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
    while判断条件:
            执行语句……
    执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true,当判断条件假false时,循环结束。

    例子:使用while循环输入 1 2 3 4 5 6 8 9 10

    1 i = 0
    2 while i < 10:
    3     i+=1
    4     if i == 7:
    5         continue
    6     else:
    7         print(i)

    输出 1-100 内的所有奇数

    1 i = 1
    2 while i <=100:
    3     if i%2 == 1:
    4         print(i)
    5     i+=1

    求1-2+3-4+5 ... 99的所有数的和

    1 result = 0
    2 i = 1
    3 while i <=99:
    4     if i%2 == 0:
    5         result = result - i
    6     else:
    7         result = result + i
    8     i+=1
    9 print(result)

    3、while循环使用else语句

    在 python 中,while … else 在循环条件为false时执行else语句块:

    实例

    1 count = 0
    2 while count < 5:
    3     print (count, " is less than 5")
    4     count = count + 1
    5 else:
    6     print (count, " is not less than 5")

    以上实例输出结果为:

    0 is less than 5
    1 is less than 5
    2 is less than 5
    3 is less than 5
    4 is less than 5
    5 is not less than 5

    4、for语句

    for循环可以遍历任何序列的项目,如一个列表或者一个字符串,不能遍历int数值。

    for循环的语法格式如下:

    1 msg = 'abcd'
    2 for i in msg:
    3     print (i)

    a
    b
    c
    d

    计算1-100的和:

    1 sum = 0
    2 for x in range(101):
    3     sum = sum + x
    4 print(sum)

    输出a-z

    1 for j in range(ord('a'), ord('z')+1):
    2     print(chr(j),end=' ')

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    1 a = []
    2 for i in range(ord('a'),ord('z')):
    3     a.append(chr(i))
    4 print(a)

    ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y']

    ord函数将字符转换为整数显示,chr函数将整数转换为字符显示

    while和for循环的区别:
    while循环一般通过数值是否满足来确定循环的条件
    for循环一般是对能保存多个数据的变量,进行遍历

    5、通过序列索引迭代

    另外一种执行循环的遍历方式是通过索引,如下实例:

    1 fruits = ['banana', 'apple', 'mango']
    2 for index in range(len(fruits)):
    3     print('第%s个水果是:%s'%(index+1,fruits[index]))

    第1个水果是:banana
    第2个水果是:apple
    第3个水果是:mango

    6、循环使用else语句

    在 python 中,for … else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即 for不是通过break跳出而中断的)的情况下执行,while … else 也是一样。

    1 for num in range(10,20):
    2     for i in range(2,num):
    3         if num%i == 0:
    4             j = num//i
    5             print('%s等于%s * %s'%(num,i,j))
    6             break
    7     else:
    8         print('%s是一个质数'%num)

    10等于2 * 5
    11是一个质数
    12等于2 * 6
    13是一个质数
    14等于2 * 7
    15等于3 * 5
    16等于2 * 8
    17是一个质数
    18等于2 * 9
    19是一个质数

    7、循环嵌套

    7.1、for循环嵌套语法实现九九乘法表:

    1 for x in range(1,10):
    2     for y in range(1,x+1):
    3         print('%s*%s=%-4s'%(y,x,x*y),end='')
    4     print()

    %2s表示这个字符最少占用2个字符,如果只有一个字符则靠右显示
    %-2s表示这个字符最少占用2个字符,如果只有一个字符且字符靠左显示
    默认情况下,print() 除了打印你提供的字符串之外,还会打印一个换行符,所以每调用一次 print() 就会换一次行,如同上面一样。

    7.2、while循环嵌套语法实现九九乘法表:

    1 i = 1
    2 while i < 10:
    3     j = 1
    4     while j <= i:
    5         print('{}*{}={:<4d}'.format(j,i,j*i),end='')
    6         j+=1
    7     i+=1
    8     print()

    7.3、列表解析实现九九乘法表:

    print (' '.join([' '.join(['%s*%s=%-4s'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))

    print后面输出的内容默认是自带回车的,在Python2中,print最后面加上一个逗号表示不换行,在Python3中,print最后面加上一个,end=''或者,end=""表示不换行。

    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    1*4=4 2*4=8 3*4=12 4*4=16
    1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
    1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
    1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
    1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
    1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

    8、循环控制语句

    break语句

    用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
    break语句可用在while和for循环中。
    如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

    continue语句
    用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
    continue语句可用在while和for循环中。
    continue语句跳出本次循环,而break跳出整个循环。

    9、例子:斐波那契(Fibonacci)数列

    打印斐波那契数列。这个数列前两项为 1,之后的每一个项都是前两项之和。所以这个数列看起来就像这样:1,1,2,3,5,8,13 ......

    1 a,b = 0,1
    2 while b < 100:
    3     print(b,end=' ')
    4     a,b = b,a+b

    运行程序:
    1 1 2 3 5 8 13 21 34 55 89

    第一行代码中我们初始化a和b。当b的值小于100的时候,循环执行代码。

    循环里我们首先打印b的值,然后在下一行将a+b的值赋值给b,b的值赋值给a。
    你可以这样理解,Python中赋值语句执行时会先对赋值运算符右边的表达式求值,然后将这个值赋值给左边的变量。

    10、while循环中利用标志位退出循环

    1、使用break退出循环(如果有多层循环时,需要考虑break的位置,不方便)

    flag = True
    count = 0
    while flag:
        user = input('user>>: ')
        password = input('password>>: ')
        count += 1
        if count ==3:
            print('too many')
            break
        if user == 'admin' and password == '123':
            print('success')
            while True:
                cmd = input('cmd>>: ')
                if cmd == 'q':
                    break
            break

    2、利用标志位退出(将flag定义为True,循环中可以使用flag作为条件,当需要退出所有循环时,可以改变flag的值为False即可,更方便)

    flag = True
    count = 0
    while flag:
        user = input('user>>: ')
        password = input('password>>: ')
        count += 1
        if count ==3:
            print('too many')
            flag=False
        if user == 'admin' and password == '123':
            print('success')
            while flag:
                cmd = input('cmd>>: ')
                if cmd == 'q':
                    flag=False
  • 相关阅读:
    Java 正则表达式的总结和一些小例子
    jquery用div模拟一个下拉列表框
    jquery点击div以外的区域触发事件
    Jackson 框架,轻易转换JSON
    Java Json API:Gson使用简单入门
    linux必学
    Python2 long() 函数
    Python int() 函数
    PyCharm快捷键大全
    PyCharm常用设置
  • 原文地址:https://www.cnblogs.com/dxnui119/p/9816389.html
Copyright © 2011-2022 走看看