""" for循环实例 """
# 九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print("%-7s" % "{}x{}={}".format(j, i, j * i), end=" ")
print()
""" while循环实例 """
# 符号楼梯
while True:
# 信息录入
height = int(input("请输入楼梯高度>>>"))
symbol = input("请输入符号>>>")
if height <= 0:
continue
# 生成符号楼梯
i = 0
while i <= height:
print(symbol * i)
i += 1
# 是否退出
if input("按Q键退出,否则继续").upper() == 'Q':
break
生成式
python复制代码
"""元组生成式 由于元组不可变 所以不能往元组里面'添加新的值' 即不可'生成'"""
"""列表生成式"""
# 基本操作:
list_basic = ["神兽金刚", "百变金刚", "雷神风暴"]
list_1 = []
for name in list_basic:
if name.endswith("金刚"):
list_1.append(name)
# 生成式操作:
list_1 = [name for name in list_basic if name.endswith("金刚")]
"""字典生成式"""
list_basic = ["神兽金刚", "百变金刚", "神兽金刚", "金刚雷神风暴"]
dict_1 = {list_basic.index(i): i for i in (list_basic)}
"""集合生成式"""
list_basic = ["神兽金刚", "百变金刚", "金刚雷神风暴", "神兽金刚"]
set_1 = {name for name in list_basic if name.endswith("金刚")}
"""生成器表达式"""
list_basic = ["神兽金刚", "百变金刚", "金刚雷神风暴", "神兽金刚"]
res = (name for name in list_basic)
"""
知识补充:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.
Python中生成器能做到迭代器能做的所有事,
而且因为自动创建了__iter__()和next()方法,
生成器显得特别简洁。
而且生成器也是高效的,
使用生成器表达式取代列表解析,同时节省内存。
除了创建和保持程序状态的自动生成,当发生器终结时
还会自动抛出StopIterration异常。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.
列表、元组、字典、字符串都是可迭代对象。
数字、布尔值都是不可迭代的。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.
什么是迭代器?
迭代器对象要求支持迭代器协议的对象。
在Python中,支持迭代器协议
就是实现对象的__iter__()和next()方法。
其中__iter__()方法返回迭代器对象本身,
next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。
例子:
list = [1,2,3,4] # list是可迭代对象
lterator = iter(list) # 通过iter()方法取得list的迭代器
print(next(lterator)) # 1 通过next()获取下一个位置的值
print(next(lterator)) # 2
print(next(lterator)) # 3
print(next(lterator)) # 4
输出:
1
2
3
4
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.
什么是生成器?
生成器(generator)就是一个函数,
它提供了一种实现迭代器协议的便捷方式。
生成器与普通函数的区别在于它包含 yield 表达式,
并且不需要定义 __iter__()和__next__()。
生成器是一种惰性的序列,
如果我们需要创建一个 0~1000000000 的序列,
这样大的序列创建出来会占用比较多的内存,
生成器就是为了解决这样的问题。
例子:
# 普通序列
g = []
for x in range(5):
g.append(x)
# g ----> [0, 1, 2, 3, 4]
# 生成器
def f():
for x in range(5):
yield x # 返回并记录函数状态
# next
f = f()
>>> next(f) # 每调用一次next,就执行一次yield | 依靠这种需要才生产的工作机制,大大的节省资源
0
>>> next(f)
1
>>> next(f)
2
>>> next(f)
3
>>> next(f)
4
# for next
>>> for x in range(5):
>>> print(next(f))
0
1
2
3
4
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
"""
异常处理
python复制代码
"""
try:
子代码块
except (异常类型A, 异常类型B, 异常类型C)
子代码块
except 异常类型2 as 别名
子代码块
except 异常类型3 as bbb # bbb 拿到的是捕获异常所拿到的提示信息
子代码块
except 异常类型4 as eee
子代码块
except Exception as 别名:
它是最后的防线,可以捕捉所有的异常!但它根据需求,可写也可不写
else:
子代码块: 会在
try的子代码块
没有异常的时候执行
finally:
子代码块
无论如何都执行
"""