刻意练习:Python基础 -- Task09. else 与 with 语句

背景

我们准备利用17天时间,将 “Python基础的刻意练习” 分为如下任务:

这是我的 09/12 次任务的打卡内容。欢迎大家加入社群一起学习打卡。

我学习 Python 的思路是,先去熟悉 Python 的整体语法框架与自己熟悉的编程语言进行知识点的连接,后面遇到问题再来慢慢补充,慢慢形成自己的知识结构。

关于 “基础算法刻意练习活动” 的复盘可以参见图文:对“基础算法(LeetCode)刻意练习活动”的复盘,后面我们还会组织一系列活动,欢迎大家参与,一起来刻意练习啊。


Python 基础语法

1. 丰富的 else 语句

while … else 语句

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = count + 1
else:
    print("%d is not less than 5" % count)
    
# 0 is  less than 5
# 1 is  less than 5
# 2 is  less than 5
# 3 is  less than 5
# 4 is  less than 5
# 5 is not less than 5

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 子句执行时没有发生异常,Python将执行 else 语句后的语句(如果有 else 的话),然后控制流通过整个 try 语句。

try:
    正常的操作
   ......................
except:
    发生异常,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

使用 except 而不带任何异常类型,这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息,因为它捕获所有的异常。

try:
    正常的操作
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   发生以上多个异常中的一个,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

Sample:

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print("Error: 没有找到文件或读取文件失败")
else:
    print("内容写入文件成功")
    fh.close()

# 内容写入文件成功

2. 简洁的 with 语句

一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。

关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。

try:
    f = open('myfile.txt', 'w')
    for line in f:
        print(line)
except OSError as error:
    print('出错啦!%s' % str(error))
finally:
    f.close()

# 出错啦!not readable

这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。

try:
    with open('myfile.txt', 'w') as f:
        for line in f:
            print(line)
except OSError as error:
    print('出错啦!%s' % str(error))

# 出错啦!not readable    

总结

好了,到此为止有关于 else语句的特殊用法,以及with语句 部分就介绍完了,大家要根据上面的例子多多体会,只有刻意练习才能掌握一门技术,没有捷径的,加油啊!See You!


参考文献

  • https://www.runoob.com/python3/python3-tutorial.html
  • https://www.bilibili.com/video/av4050443

相关图文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,可以对if-else语句进行优化以提高代码的可读性和效率。下面是一些建议: 1. 使用if-elif-else链代替多个if语句:如果有多个条件需要判断,可以使用if-elif-else链来代替多个独立的if语句。这样可以减少代码的嵌套层级,提高代码的可读性。例如: ``` name = input("Please input your name:") if name == "Johnson": print("Hello my son.") elif name == "Judy": print("Hello my daughter.") elif name == "Aric": print("Hello my friend.") elif name == "John": print("Hello to myself.") else: print("Hello others.") ``` 2. 根据条件的可能性排序:如果条件的可能性不同,可以将出现概率高的条件放在前面,这样可以减少不必要的判断,提高代码的效率。例如: ``` name = input("Please input your name:") if name == "Johnson": print("Hello my son.") elif name == "Judy": print("Hello my daughter.") elif name == "John": print("Hello to myself.") elif name == "Aric": print("Hello my friend.") else: print("Hello others.") ``` 3. 使用字典代替多个elif语句:如果判断的条件较多,并且条件和对应的操作可以映射到字典中,可以使用字典来代替多个elif语句。这样可以简化代码并提高效率。例如: ``` name = input("Please input your name:") greetings = { "Johnson": "Hello my son.", "Judy": "Hello my daughter.", "John": "Hello to myself.", "Aric": "Hello my friend." } print(greetings.get(name, "Hello others.")) ``` 通过以上优化措施,可以使代码更简洁、可读性更高,并且提高代码的效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python if else条件语句](https://blog.csdn.net/JSPSEO/article/details/124871412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程备考

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值