当前位置:首页 > 公众号精选 > 21ic电子网
[导读]本文将介绍一些有用的小工具,它们能够帮助我们提高工作效率。本文将介绍笔者在近一周发现的三个小工具,写文章以做记录,希望能对大家有所帮助。

本文将介绍一些有用的小工具,它们能够帮助我们提高工作效率。本文将介绍笔者在近一周发现的三个小工具,写文章以做记录,希望能对大家有所帮助。

推荐3个提高Python开发效率的小工具

本文将介绍的三个小工具如下:

  • 在Sublime Text中支持Python运行;

  • 在Mac电脑的iTerm2中支持查看图片;

  • Python的typing模块介绍。

  详细内容介绍如下。

在Sublime Text中支持Python运行

  在平时工作中,我们通常用PyCharm开发Python工程,也可以用Vim编辑和查看Python脚本。但是,如果我们仅仅想创造一个单独的脚本来实现某些功能,那么用PyCharm会显得大题小做,用Vim又不方便编辑。这时候,我们可以借助文本编辑器,比如Sublime Text,来实现Python脚本的编辑和运行。
  Sublime Text是Mac系统支持的文本编辑器,Notepad++不支持Mac系统。
  如果我们想在Sublime Text中支持Python运行,需要做一些设置。
  打开Sublime Text的Tools,选择Build System中的New Build System...,会出现脚本,我们修改其中的内容如下:

{
    "cmd": ["D:/Anaconda3/python3.7.exe","-u","$file"],
}

推荐3个提高Python开发效率的小工具


  我们示例的Python脚本为test.py,代码如下:

import numpy as np

matrix = np.array([[012],
                   [245]
                   ])

print(matrix[12])

print("Hello world from Sublime Text.")

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

推荐3个提高Python开发效率的小工具

  同样,在Windows系统中也可以这样设置,方便又使用。
  至于Notepad++是否有相似的功能,还有待研究。

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

  iTerm2是Mac系统很好用的终端工具,本文不过多介绍iTerm2,而是介绍如何直接在iTerm2中查看图片,这样可以方便我们在终端直接查看图片。
  我们使用的工具为imgcat。
  在iTerm2中新建shell脚本imgcat.sh,里面的内容可以参考网址:https://www.iterm2.com/utilities/imgcat,编辑完文件后保存,并用chmod u+x imgcat.sh赋予执行权限。
  这样就可以直接查看图片了。什么,这么简单?对,就是这么简单!
  在笔者电脑上的效果如下:

推荐3个提高Python开发效率的小工具

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.25.4])

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


作者:jclian
来源:Python中文社区

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

21ic电子网

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

WSTS最新的数据显示,预计2024年全球半导体市场将增至6112亿美元,同比增长16%,并预测2025年市场将再增长12.5%,达到6874亿美元。根据SEMI的最新报告,2024年第一季度全球半导体设备的销售额为26...

关键字: 嵌入式 embedded

2024年6月12日——为期三天的第二届embedded world China 上海国际嵌入式展览及会议上海世博展览馆3号馆再次举办!在全球AI盛行的数字化浪潮来袭的今天,尤其是足以改变产业应用的嵌入式领域汇聚了来自全...

关键字: 嵌入式 人工智能 汽车电子

【2024 年 6 月 11 日美国德州普拉诺讯】Diodes 公司 (Diodes) (Nasdaq:DIOD) 今日宣布推出 13.5Gbps 高速视频开关 PI3WVR41310。针对新一代商用显示器、游戏显示器、...

关键字: 开关 显示器 嵌入式

通常情况下,任务的优先级是根据其重要性和紧急性来设定的。但是,在并发系统或多任务环境中,确实存在一种被称为“优先级反转”的现象。

关键字: 嵌入式 实时操作系统 操作系统

一直以来,嵌入式四轴运动控制器的设计都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式四轴运动控制器系统硬件设计的相关介绍,详细内容请看下文。

关键字: 嵌入式 控制器 运动控制器

【2024 年 6 月 6 日美国德州普拉诺讯】Diodes 公司 (Nasdaq:DIOD) 宣布扩展广受欢迎的 DML30xx 智能负载开关系列。此次推出四款新产品:DML3008LFDS、DML3010ALFDS、...

关键字: 负载开关 固态硬盘 嵌入式

2024年6月4日 – 专注于引入新品并提供海量库存™的电子元器件代理商贸泽电子 (Mouser Electronics)宣布将于6月12-14日亮相2024上海国际嵌入式展(展位号:3号馆 436号展位)。届时,贸泽电...

关键字: 嵌入式 机器视觉 RFID

台湾新竹-2024 年 5 月 30 日 - 全球嵌入式控制器Embedded Controller及secure IC解决方案领导者新唐科技股份有限公司(Nuvoton Technology Corporation)宣...

关键字: 嵌入式 控制器 安全芯片

空中下载技术(Over-the-Air Technology, OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。本文采用了swupdate的方式进行ota升级,swupdate是一个基...

关键字: 核心板 嵌入式 Linux平台

新增 IEEE®1588 标准配置文件,满足电源和 5G专用网络同步要求

关键字: 嵌入式 5G 电源
关闭
关闭