Code前端首页关于Code前端联系我们

Python3快速入门知识点:流程控制、迭代器、生成器

terry 2年前 (2023-09-24) 阅读数 52 #后端开发

流程控制

if控制

if 表达式1:    语句    if 表达式2:        语句    elif 表达式3:        语句    else:        语句elif 表达式4:    语句else:    语句

1.每个条件后使用冒号:,表示满足下一个条件。稍后要执行的指令块。 2、使用缩进来划分指令块。具有相同缩进数的语句一起构成一个语句块。 3.Python中没有switch case语句。

三元运算符:

<表达式1> if <条件> else <表达式2>

在编写条件语句时,应尽量避免使用嵌套语句。嵌套指令的可读性较差,并且可能会忽略功能。语句

for遍历

for <循环变量> in <循环对象>:    <语句1>else:    <语句2>

else中的语句2只有在循环正常结束时才会执行(遍历到的对象中的所有值都被遍历到)。

遍历字典时,可以使用items()方法解释关键字和关联值:

knights = {gallahad: the pure, robin: the brave}for k, v in knights.items():    print(k, v)

遍历字符串时,可以使用解释索引位置及其值 函数 enumerate() 同时获取:

for i, v in enumerate([tic, tac, toe]):    print(i, v)

要同时迭代两个或多个字符串,可以使用组合 zip()

questions = [name, quest, favorite color]answers = [lancelot, the holy grail, blue]for q, a in zip(questions, answers):    print(What is your {0}?  It is {1}..format(q, a))

要迭代一个倒序排列,首先指定序列,然后调用函数 reversed():

for i in reversed(range(1, 10, 2)):    print(i)

要按顺序迭代序列,请使用函数 sorted() 返回一个排序后的数组,不改变原值:

basket = [apple, orange, apple, pear, orange, banana]for f in sorted(set(basket)):    print(f)

while循环

while<条件>:    <语句1>else:    <语句2>

break, continue, pass

break语句用于while和for循环中。 Break语句用于结束循环语句。也就是说,如果不存在 False 条件或序列尚未完全迭代,则循环条件也会停止。执行循环语句。   continue 语句用在 while 和 for 循环中。 continue语句用于告诉Python跳过当前循环的剩余语句,然后继续下一轮循环。 continue 语句跳出本次循环,break 语句跳出整个循环。

pass 是一个空语句,用于保持程序结构的完整性。 pass 不执行任何操作,通常用作占位符。

迭代器

  • 迭代器是一个可以记住遍历位置的对象。

  • 迭代器对象从集合的第一个元素开始访问,直到所有元素都可访问。迭代器只能向前移动,不能向后移动。

  • 迭代器有两个基本方法:iter()next()

  • 字符串、列表或元组对象可用于创建迭代器。

迭代器可以使用for循环进行迭代:

li = [1, 2, 3]it = iter(li)for val in it:    print(val)

迭代器还可以使用next()函数来访问下一个元素值:

import sysli = [1,2,3,4]it = iter(li)while True:    try:        print (next(it))    except StopIteration:        sys.exit()

生成器

  • 在Python中,使用yield的函数称为生成器。

  • 与常规函数不同,生成器是一个返回迭代器的函数,只能用于迭代操作。更容易理解生成器是迭代器。

  • 调用生成器运行时,函数每次遇到yield都会暂停并保存当前所有运行信息,返回yield的值以及下次使用next()方法时,从当前位置继续工作被执行。

  • 调用生成器函数并返回迭代器对象。

import sysdef fibonacci(n): # 生成器函数 - 斐波那契    a, b, counter = 0, 1, 0    while True:        if (counter > n):             return        yield a        a, b = b, a + b        counter += 1f = fibonacci(10) # f 是一个迭代器,由生成器返回生成while True:    try:        print(next(f))    except StopIteration:        sys.exit()

完...未完待续

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门