课时34:丰富的else语句以及简洁的with语句
目录:
一、丰富的else语句
二、简洁的with语句
三、课时34课后习题及答案
***********************
一、丰富的else语句
***********************
1、要么怎样,要么不怎样
典型的if-else搭配:
if条件:
条件为真执行
else:
条件为假执行
2、干完了能怎样,干不完就别想怎样
else语句可以跟for和while循环语句配合使用,但是else语句块只再循环完成后执行,也就是说,如果循环中间使用break语句跳出循环,那么else里边的内容就不会执行了。举个例子:
def showMaxFactor(num):
count = num // 2
while count > 1:
if num % count == 0:
print('%d最大的约数是%d' % (num, count))
break
count -= 1
else:
print('%d是素数!' % num) num = int(input('请输入一个数:'))
showMaxFactor(num)
这个小程序主要是要求用户输入的数的最大约数,如果是素数的话就顺便提醒一下”这是一个素数“。注意要使用地板除法(count = num // 2)哦,否则结果会出错。使用暴力的方法一个一个尝试(num % count == 0),如果符合条件则打印最大的约数,并break,同时不会执行else语句块的内容了。如果一直没遇到合适的条件,则会执行else语句块内容。
for语句的用法和while一样,这里就不重复举例了。
3、没有问题,那就干吧
else语句还能跟刚刚学的异常处理进行搭配,实现跟与循环语句搭配差不多:只要try语句块里没有出现任何异常,那么就会执行else语句块里的内容了。举个例子:
try:
int("abc")
except ValueError as reason:
print("出错啦" + str(reason))
else:
print("没有任何异常")
***********************
二、简洁的with语句
***********************
也许会觉得打开文件又要关闭文件,还要关注异常处理有些烦人,所以Python提供了一个with语句,利用这个语句抽象除文件操作中频繁使用的try/except/finally相关的细节。对文件操作使用with语句,将大大减少代码量,而且你再也不用担心出现文件打开了忘记关闭的问题了(with会自动帮你关闭文件)。举个例子:
try:
f = open("data.txt","x")
for each_line in f:
print(each_line)
except OSError as reason:
print("出错啦" + str(reason))
finally:
f.close()
使用with语句,可以改成这样:
try:
with open("data.txt","x") as f:
for each_line in f:
print(each_line)
except OSError as reason:
print("出错啦" + str(reason))
是不是很方便呢?有了with语句后,就再也不用担心忘记关闭文件了。
*******************************
三、课时34课后习题及答案
*******************************














课时34:丰富的else语句以及简洁的with语句的更多相关文章
- 丰富的else语句及简洁的with语句 - 零基础入门学习Python034
丰富的else语句及简洁的with语句 让编程改变世界 Change the world by program 丰富的else语句 有鱼油可能会说,else语句还有啥好讲的?经常跟if语句进行搭配用于 ...
- 零基础入门学习Python(34)--丰富的else语句及简洁的with语句
知识点 else语句的用法: 1)配合if语句 if a>b: print(a) else: print(b) 2)配合while和for循环 只在循环完成后才执行,如果循环中执行使用到brea ...
- javascript语句——表达式语句、块语句、空语句和声明语句
× 目录 [1]表达式 [2]块语句 [3]空语句[4]声明 前面的话 如果表达式在javascript中是短语,那么语句(statement)就是javascript整句或命令.表达式计算出一个值, ...
- 分支语句 if的嵌套 循环语句
0930 今天学习内容做以下总结: 语句的分类:顺序语句,分支语句(选择,条件),循环语句 分支语句 格式1:if(表达式(要么是true 要么是false)){} 格式2:if(){}slse{} ...
- mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干
1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...
- if语句,if...else if语句和switch...case语句的区别和分析
前段时间在工作中遇到了一个关于条件判断语句的问题,在if语句,if else if语句和switch case语句这三者之间分析,使用其中最有效率的一种方法. 所以就将这个问题作为自己第一篇博客的主要 ...
- 查看SQL语句执行时间与测试SQL语句性能
查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...
- 【SQL】INSERT INTO SELECT语句与SELECT INTO FROM语句
INSERT INTO SELECT语句与SELECT INTO FROM语句,都是将一个结果集插入到一个表中: #INSERT INTO SELECT语句 1.语法形式: Insert into T ...
- 丰富的else语句以及简介的with语句
1.if···else略 2.while.for与else Python中的循环语句(无论是while 还是for)中,经常配合continue和break语句,此时,可以和else搭配使用,当循环正 ...
随机推荐
- jsc
之前发现一个神器,js代码测试脱离浏览器,mac终端也可以做到 调试js的时候,一般都是用浏览器的开发者工具,这里给大家推荐另外一种,抛开浏览器,在终端执行的方式,Mac内置了一个javascript ...
- 2018.7.23 oracle中的CLOB数据类型
Oarcle中的LOB类型 1.在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这 ...
- 剑指offer17 合并两个排序的链表
错误代码: 最后两个if语句的目的是,最后一次迭代,两个链表中剩下的直接连接最后一次比较的数值,同时也是迭代停止的标志.虽然大if语句中比较大小得到的Node是正确的值,但每次迭代只要pHead2不为 ...
- app上线
不管第一次还是第二次APP上线都需要三样东西:开发者证书,appID,描述文件
- Hive 配置显示表头和数据库信息
在 conf/hive-site.xml 中添加如下配置 <property> <name>hive.cli.print.header</name> <val ...
- mysql题目(二学年)
1.哪些命令可以知道mysql安装的版本 mysqladmin --version mysql --version 2.关于mysql密码说法正确的是 初始化安装完毕后密码为空 3.进入或者打开数据库 ...
- 一篇SSM框架整合友好的文章(一)
转载请标明出处: http://blog.csdn.net/forezp/article/details/53730333 本文出自方志朋的博客 最近实在太忙,之前写的<rxjava系列文章&g ...
- securecrt颜色设置
https://blog.csdn.net/zq710727244/article/details/53909801
- Mac openssl 和curl源码编译
1.先编译openssl, 下载源码后解压,终端进入源码目录,输入命令配置编译环境:./Configure darwin64-x86_64-cc 等待配置完成后,输入make 和make insta ...
- 图解HTTP总结(1)——了解Web及网络基础
Web页面不能凭空显示出来.根据Web浏览器地址栏指定的URL,Web浏览器从Web服务器端获取文件资源等信息,从而显示出Web页面. Web使用一种名为HTTP(HyperText Transfe ...