• python笔记之条件语句、循环语句、迭代器和生成器


    本节学习python中的条件语句、循环语句、迭代器和生成器。

    1、条件语句

    python条件语句使用if……elif……else格式

    1 num = int(input('请输入你的成绩:'))
    2 if num > 85:
    3     print('优秀')  #使用缩进划分语块
    4 elif 85>= num > 70:
    5     print('良好')
    6 elif 70>=num>=60:
    7     print('及格')
    8 else:
    9     print('不及格')

    python中没有switch--case语句

    2、循环语句

    while循环

     1 num = 5
     2 while(num>2):  #while循环
     3     print(num)
     4     num -= 1
     5 
     6 num = 5
     7 while(num>2): #while……else…… 循环,while条件为false时else语句执行
     8     num -= 1
     9     print(num)
    10 else:
    11     print("else:%d"%num)

    python中没有do……while……,当出现死循环可以使用CTRL+C退出

    for循环,可以循环遍历任何序列对象,如字典、字符串、列表

     1 num = 5
     2 for i in [1,2,3,4,5,7]:
     3     print(i)
     4 
     5 # str1='cainiaoxuexi'
     6 str1='a'
     7 for i in str1:
     8     if i == 'x':
     9         print('中断,跳出循环')
    10         break     #break跳出整个循环
    11     print(i)
    12 else:             #如果没有break循环,那么for循环结束后else执行
    13     print('没有循环体')
    14 print("循环结束")
    1 str1='axv'
    2 for i in str1:
    3     if i == 'x':
    4         continue  #结束本次循环
    5     print(i)
    6 else:             #如果没有break循环,那么for循环结束后else执行
    7     print('没有循环体')
    8 print("循环结束")

    break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

    continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

    range()函数用于生成数字序列

    1 for i in range(100,120,5):  #可以指定开始,结束值 和 步长,步长也可以为负数
    2     print(i)
    3 
    4 for i in range(-100,-120,-5):  #可以指定开始,结束值 和 步长,步长也可以为负数
    5     print(i)

    3、迭代器和生成器

    迭代器是可以记住循环的位置的对象,是访问集合元素的一种方式,从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

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

    字符串,列表或元组对象都可用于创建迭代器:

     1 import sys
     2 
     3 list1 = [1,2,3,4,5,6,7,8]
     4 it = iter(list1)
     5 print(type(it)) #是个列表跌倒器对象
     6 while True:
     7     try:
     8         print(next(it))
     9     except StopIteration:
    10         sys.exit()

    创建一个类迭代器,需要在类中实现两个方法 __iter__() 与 __next__() 

     1 class MyNumber():
     2     def __iter__(self): #__iter__() 方法返回一个特殊的迭代器对象
     3         self.a = 1
     4         return self
     5 
     6     def __next__(self):
     7         if self.a <= 20:
     8             x = self.a
     9             self.a += 1
    10             return x
    11         else:
    12             raise StopIteration
    13 
    14 
    15 myclass = MyNumber()
    16 myiter = iter(myclass)
    17 
    18 for x in myiter:
    19     print(x)

    生成器

    在 Python 中,使用了 yield 的函数被称为生成器(generator)。

    跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

    在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

    调用一个生成器函数,返回的是一个迭代器对象。

     1 import sys
     2 
     3 
     4 def fibonacci(n):  # 生成器函数 - 斐波那契
     5     a, b, counter = 0, 1, 0
     6     while True:
     7         if (counter > n):
     8             return
     9         yield a
    10         a, b = b, a + b
    11         counter += 1
    12 
    13 
    14 f = fibonacci(10)  # f 是一个迭代器,由生成器返回生成
    15 
    16 while True:
    17     try:
    18         print(next(f), end=" ")
    19     except StopIteration:
    20         sys.exit()
  • 相关阅读:
    react:如何创建一个新项目
    python3-多重继承
    Stylus-富有表现力的、动态的、健壮的CSS
    使用@property
    python3-使用__slots__
    python:实例属性和类属性
    java_day1
    学习笔记144—SPSS 重复测量方差分析【方法二】
    学习笔记143—SPSS 重复测量的多因素方差分析
    学习笔记142—Matlab如何读取Excel和写入Excel??
  • 原文地址:https://www.cnblogs.com/heertong/p/12104748.html
Copyright © 2020-2023  润新知