Day.12
1.else语句
while…else…语句
n = 0
jc = 1
k = 123
while (jc > k) ==0:
print('%d的阶乘不大于%d'%(n,k))
n = n+1
jc = jc*n
else:
print('%d的阶乘刚好大于%d'%(n,k))
0的阶乘不大于123
1的阶乘不大于123
2的阶乘不大于123
3的阶乘不大于123
4的阶乘不大于123
5的阶乘不大于123
6的阶乘刚好大于123
for…else…语句
for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
for num in range(10, 20): # 迭代 10 到 20 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break # 跳出当前循环
else: # 循环的 else 部分
print(num, '是一个质数')
# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数
try…except…else语句
try: 正常的操作 … except: 发生异常,执行这块代码 … else: 如果没有异常执行这块代码
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
fh.close()
# 内容写入文件成功
2.with语句
关键词 with 语句可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。
try:
with open('myfile.txt', 'w') as f:
for line in f:
print(line)
except OSError as error:
print('出错啦!%s' % str(error))
# 出错啦!not readable
这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。