分享

一些简单的Python编程技巧(2)

 基算仿真 2023-05-30 发布于江苏

01

设置字典默认值

在Python中字典是另一种可变容器模型,且可存储任意类型对象。

字典默认值就是当指定的键的值不存在时字典所返回的值。

例如这里有一个字典,只包含苹果和橘子的价格

price = {    'apple':   5,    'orange':  4}

当我们试图获取字典中不存在的香蕉的价格时,会返回错误信息

price = prices['banana'] #获取香蕉价格->KeyError: 'banana' #错误信息,此时默认值为none

假如要实现当字典中有香蕉时返回其价格,没有香蕉时返回'没货了',这时就需要修改字典的默认值,如果我们使用if else来写,效果如下

if 'banana' in prices:    price = prices['banana']else:    price = '没货了'print(price)

可以看到需要5行代码,但当我们使用get()函数或者setdefault()函数修改字典的默认值,可以这样写:

print(price.get('banana''没货了'))#get函数print(price.setdefault('banana''没货了'))#setdefault函数

可以看到简洁了很多。

注意,get()函数与setdefault()函数存在一定差异:

  • get() 只是设置的是取值的初始值,不保留于字典中。

  • setdefault()设置的默认值不只是取值的时候打印,并且会保留于字典中。

02

使用with打开文件

一般情况下我们读取文件使用open,例如:

f = open('test.txt')text = f.read()print(text)f.close()

这样编写的话最后一步总是调用close()方法关闭文件。因为文件使用完毕后必须关闭,否则文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。

每次打开文件都需要调用close()未免太过繁琐,使用with可以自动调用close(),所以可将上述代码改写为:

with open('test.txt') as f:    text = f.read()    print(text)

所以with 的作用就是自动调用close()

03

异常处理

异常是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常捕捉可以使用try/except语句。

例如下述代码用于转换数据类型:

print('转换中')try:    print('结果为',int('1'))except:    print('转换失败')

由于'1'可以被转换,因此运行结果为:

转换中结果为 1

当数据类型转换失败时:

print('转换中')try:    print('结果为',int('x')) #该类型数据无法转换except:    print('转换失败')

由于'x'无法被转换为整型,所以其结果为

转换中转换失败

而如果我们什么都不做:

print('结果为',int('x'))

由于'x'无法被转换为整型,运行时程序就会报错:

ValueError: invalid literal for int() with base 10: 'x'

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多