python提高效率的程序,3 个提高 Python 开发效率的小工具

import numpy as np

matrix = np.array([[0, 1, 2],

[2, 4, 5]

])

print(matrix[1, 2])

print("Hello world from Sublime Text.")

点击Tools中的Build或者Ctrl+B运行程序,结果如下:c2282c7e2de899e7be91295313132a7d.png

同样,在Windows系统中也可以这样设置,方便又使用。

至于Notepad++是否有相似的功能,还有待研究。

在Mac系统的iTerm2中支持查看图片

iTerm2是Mac系统很好用的终端工具,本文不过多介绍iTerm2,而是介绍如何直接在iTerm2中查看图片,这样可以方便我们在终端直接查看图片。

我们使用的工具为imgcat。

在iTerm2中新建shell脚本imgcat.sh,里面的内容可以参考网址:https://www.iterm2.com/utilities/imgcat,编辑完文件后保存,并用chmod u+x imgcat.sh赋予执行权限。

这样就可以直接查看图片了。什么,这么简单?对,就是这么简单!

  在笔者电脑上的效果如下:54c873bb0ed8898083b069504632e5c5.png

Python中的typing模块介绍

typing模块是Python中提供类型支持的模块,它的主要作用为:类型检查,防止运行时出现参数和返回值类型不符合。

作为开发文档附加说明,方便使用者调用时传入和返回参数类型。

该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。

简单来说,使用typing模块我们可以对参数的类型做注释并检查,它不会影响程序运行,而这是提醒。总所周知,在Python中调用函数或变量时,不需要对参数或变量进行类型说明,这样虽然方便程序编写,但不利于程序阅读,有了typing模块,可以增加程序的可阅读性,同时也能提升代码的可维护性和健壮性。

举个简单的例子,我们实现一个函数digits_sum,输入参数为字符串,比如"352",输出该数字上的各个数位上的数字之和,比如10。有了typing模块,我们的代码如类似如下:from typing import *

# 创建函数

def digits_sum(num:str) -> int:

digits_arr = map(lambda x: int(x), num)

return sum(digits_arr)

# 测试

num = "352"

result = digits_sum(num=num)

print(result)

输出结果为10。对上面的程序做点说明,其中第一句中的from typing import *可以不必写,因为str,int都是Python内置的数据类型。函数声明为def digits_sum(num:str) -> int,括号内的num类型为str,箭头后的int表示函数的输出结果数据类型为int。

我们再给出一个例子。函数dict_multipy,输入为字典,如果key值对应的value的数据类型为float或者int型,则乘以2,否则跳过,那么输出也为字典。程序如下:from typing import Dict, Any

# 创建函数

def dict_multipy(d: Dict[str, Any]) -> Dict[str, float or int]:

new_dict = {}

for k, v in d.items():

if isinstance(v, (float, int)):

new_dict[k] = v * 2

return new_dict

# 测试

d = {"no": "100", "age": 12, "work_year": 3, "name": "JC"}

new_d = dict_multipy(d=d)

print(new_d)

输出结果为{'age': 24, 'work_year': 6}。在函数声明中,d为字典,其key值为str,val为任意类型(Any),输出为字典,key值为str,val值为float或者int。

当然,我们还可以在typing创建别名或者新的数据类型,以下就是一个例子。更多的使用方法可以参考typing模块的官方网址:https://docs.python.org/zh-cn/3.6/library/typing.html 。from typing import List

# 取List[float]别名为Vector

Vector = List[float]

def scale(scalar: float, vector: Vector) -> Vector:

return [scalar * num for num in vector]

new_vector = scale(2.0, [1.0, -4.2, 5.4])

本次分享到此结束,感谢大家阅读~

作者:jclian,喜欢算法,热爱分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值