【高级特性】51、上机练习:生成器【高级特性】51、上机练习:生成器
目录
一、两个数的商
二、勾股数
三、斐波那契数列
一、两个数的商
编写程序,输入两个数,输出它们的商,采用例外处理来处理两种错误,给出用户友好的提示信息
1)除数为0
2)输入了非数值
try:
numa = float(input("请输入数字a:"))
numb = float(input("请输入数字b:"))
numc = numa / numb
except ZeroDivisionError as e:
print("除数不能为零,请重新输入:")
numb = float(input("请输入数字b:"))
except ValueError as e:
print("您输入的是非数字,请输入数字:")
numa = float(input("请输入数字a:"))
numb = float(input("请输入数字b:"))
finally:
numc = numa / numb
print(f"{numa}除{numb}为:", numc)
二、勾股数
编写一个推导式,生成包含100以内所有勾股数(i,j,k)的列表
a = [(i, j, k) for i in range(1, 101) for j in range(i + 1, 101)
for k in range(j + 1, 101) if k ** 2 == i ** 2 + j ** 2]
print(a)
三、斐波那契数列
编写一个生成器函数,能够生成斐波那契数列
提示:
def fib():
…
for fn in fib():
print(fn)
if fn > 1000:
break
赞赏微信赞赏支付宝赞赏