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()

猜你喜欢

转载自www.cnblogs.com/heertong/p/12104748.html