• Python 条件与循环


    Python IDLE下:选中代码,alt+3 群体注释;alt+4 群体取消注释;ctrl+[] 集体缩进。

    一、if语句

    if 橙色,关键字。一行的末尾不要忘了冒号":"

    实在没有语句,放一个 pass 占位符,不然没有接语句会报错。

    if...elif从上往下执行。会进入第一个满足条件的代码块,同层的if...elif只会执行一次。只要满足其中一个判断条件,就不会再往下执行了。

    else不是必须的,但else后面不能接判断语句。

    补充:

    range() range的意思是:区间

    range(10) -> 0~9 只放一个参数,默认从0开始了。左闭右开,10取不到。

    range(1,10) -> 1~9 左闭右开,stop的值取不到。

    range(1,10,2) -> 1,3,5,7,9 步长。隔几个取一下。

    random.randint(1,10) 两边都取得到,可用help(random.randint)查看说明。先导入random,再dir()

    random.random() 不要放参数。随机返回0-1之间的浮点小数。1取不到

    random.sample(iterable,n) return list. 从序列中随机抽取n个

    random.choice(iterable) 从序列中,随机返回一个元素

    input() 内置函数。提示输入,并获取输入的内容,输出的是字符串。

    二、while 循环

    while 条件语句:

      pass

    条件满足时才会进入循环。必须要有终止条件,不然就是死循环(除非有break),0 False {} [] 都为假。

    break:终止本层循环。跳出去了,下面的语句就不会执行了。

    continue:跳过本次循环,但不结束循环,直接到while后面的判断语句。

    三、for 循环

    遍历迭代对象中的元素。

    for i in "1,2,3":
        print(i, end="")
    # 运行结果:1,2,3
    # 字符串中,逗号也是一个元素
    # 把上面代码中的序列类型改一下:
    # 上面是 "1,2,3"
    # 这里是 (1,2,3)
    for i in (1,2,3):
        print(i, end=" ")
    # 远行结果:1 2 3
    # 元组中的逗号只是用来隔开每一个元素的

    (一).python3中的for循环体系与其他语言不一样,注意看下面这个例子:

    for i in range(1, 10):
        print(i, end=" ")
        i += 2
    
    # 运行结果:1 2 3 4 5 6 7 8 9

    为啥自加2了,结果却依然还是 1-9?因为一次循环执行完后,跑回去了,每一次i都会被重新赋值。根本不会改变遍历的次数。

    趁热打铁,看下面这个案例:

    for i in range(1, 10):
        i += 2
        print(i, end=" ")
    
    # 运行结果:3 4 5 6 7 8 9 10 11 

    根本不会影响遍历的次数。打印出来的,依旧是9个值。也就是说,还是执行了9次循环。

    for循环的机制是迭代穷尽了,才结束循环。通过遍历的次数来控制循环。遍历几次,就循环几次。对象中的元素被遍历完了,那就循环结束拜拜了。

    分析下例:

    for i in range(1, 10, 2):
        i += 2
        print(i, end=" ")
    
    # 运行结果:3 5 7 9 11 

    此例设置了range区间的步长,每隔2个取一次,更改了遍历的次数,此处遍历了5次,所以是5个结果。

    (二).for循环补充:

    # 用for循环遍历迭代对象中的多个元素
    li = [("aBB", "b"), ("c", "d11"), ("e", "f00")]
    
    # 对象中,每个元素的数量都必须是一样的。多一个,少一个,都会报错。
    for i, j in li:
        print(i, j)
    
    """
    运行结果:
    
    aBB b
    c d11
    e f00
    """

    四、同层循环的else体系:

    #while
    while True:
        pass
    else:
        print('OK')
    
    #for
    for item in iterable:
        pass
    else:
        print("OK")
    
    '''
    只有正常结束的循环,非break结束的循环才会执行else部分
    '''

    只有正常结束的循环(不能被break),才会执行else部分。

    一层循环内,如果遇到break就是强制终止当前循环了,与之配套的else语句块就不会执行了,因为不是正常结束循环。

    五、总结for 和 while:

    相同点:都能循环做一件重复的事情。(好像是废话2333)

    不同点:

    while在条件不成立的时候停止。需要有终止条件。

    for在迭代对象穷尽的时候停止。需要的是可迭代对象。

    while是条件循环,for是遍历循环。

    六、嵌套循环

    类似行、列的概念,要清楚一层一层怎么运行的。

    外面走一步,里面全部走完。

    先看下面这个例子,理解一下每一层是怎么执行的:

    for i in range(2):
        print("***", i)
        for j in range(2):
            print("00", j)
    """
    *** 0
    00 0
    00 1
    *** 1
    00 0
    00 1
    """

    经典的9*9乘法表案例:

    # 打印9*9乘法表
    for i in range(1, 10):  # 控制行,共9行
        for j in range(1, i + 1):  # 控制拼接次数,多少列
            print("{}x{}={}".format(j, i, i * j), end="	")  # 不设置end,每次结束本层循环都会换行
        print()
    # 利用列表推导式,一行代码
    print("
    ".join(["".join(["{}x{}={}	".format(j, i, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))
    """
    可读性很差,只能用来装B。
    看着上面的例子写,先写最外层的for,然后再一个个往里塞。
    """
  • 相关阅读:
    性能学习-了解前端性能测试
    Python变量类型说明
    Python 标识符说明
    极验验证码-判断需要移动的距离
    极验验证码-userresponse.js
    转载系列
    loadrunner java vuser
    java DES
    java AES
    极验验证码流程-4字段加密
  • 原文地址:https://www.cnblogs.com/xuanlv-0413/p/9276236.html
Copyright © 2020-2023  润新知