用python写工具
㈠ 这9个提高效率的python工具,太赞了
你好,我是 zhenguo
最近汇总了平时常用到的9个很好的Python工具,它们能极大的提高我们的工作效率,安装它们,然后逐步熟练使用它们。若有用,可以收藏这篇文章。
你若还在为生成名字、地址、IP地址而发愁,试试 Faker 库吧。
它是专业生成假数据的神器,但生成的数据看起来又如此“不假”。
基本用法如下所示:
使用日期和时间格式从来都不是一件有趣的事情。
尽管内置的 datetime 模块做得相当不错,但有一个更直观的 Penlum ,能做到快速处理。
它支持时区转换、日期、时间操作和格式设置。
如下是一个快速示例,快速创建1个上海时区的时间:
Scrapy是一个强大的工具,可以让你从网站上快速提取信息。
当需要从多个网站或网页中提取大量信息时,手动提取是低效的。
Scrapy提供了易于使用的方法和包,可以使用HTML标记或CSS类提取信息。通过以下命令安装 scrapy :
然后直接在终端输入下面一行代码,
就能得到网络的首页html内容。
Pandas 是一个简单但功能强大的数据分析工具。使用它可以进行数据清洗,并对其进行统计分析。
分析完数据后,还可以使用外部库(如[Matplotlib])将其可视化(https://github.com/matplotlib/matplotlib).
Pandas最棒的地方是它建在NumPy上面,NumPy是一个强大的数据分析工具,因为Pandas基于它,所以这意味着大多数NumPy方法都是Pandas中已有的函数。圆肢
click 是一个Python包,可用于创建命令行接口,相当漂亮的命令行,相当丝滑。
让我们看一个例子:
hello 函数公开了两个参数: count 和 name 。最后,在命令行,直接这样调用脚本:
最后打印:
需要设置web服务器吗?
你有两秒钟的时间吗?因为这就是用Python启动简单web服务器所需的时间,直接下面一行代码:
但对于一个基本的web应用程序来说,这可能太简单了。Flask是一个用Python构建的微web框架。它是“微型”的,因为它没有任何数据库抽象层、表单验证或邮件支持。
幸运的是,它有大量弯腔腊的扩展,可以即插即用,如果只想提供一个简单埋滑的API,那么它就是完美的。
要使用Flask创建API服务器,请使用以下脚本:
使用下面一行代码启动服务:
最后,当您在浏览器中访问URL http://127.0.0.1:5000/ 时,
应该会看到以下JSON:
Requests 是一个强大的HTTP库。有了它,可以自动化任何与HTTP请求相关的操作,包括API自动化调用,这样你就不必再手动进行调用。
它附带了一些有用的特性,如授权处理、JSON/XML解析和会话处理。
如下获取明文地址:北京市海淀区清华东路35号,对应的经纬度时,使用网络地图接口,免费注册得到一个apk,返回经纬度结果如下所示:
Selenium是一个编写自动化测试用例的测试框架。
尽管它是用Java编写的,Python包提供对几乎所有Selenium函数的类似API的访问。
Selenium通常用于自动化应用程序UI的测试,但您也可以使用它自动化机器上的任务,如打开浏览器、拖放文件等。
看一个快速示例,演示如何打开浏览器并访问网络主页:
现在,该脚本每15秒刷新浏览器中的网络主页。
很多时候,需要以某种方式修改图像,使其更适合,例如模糊细节、组合一个或多个图像或创建缩略图。
将自制的 Pillow 脚本与 Click 组合在一起,然后直接从命令行访问它们,这对于加快重复的图像处理任务非常有用。
看一个模糊图像的快速示例:
我习惯把自己工作多年的学习笔记沉淀在这个网站,给你学习提供点参考
http://www.zglg.work/
㈡ 用python写个自动SSH登录远程服务器的小工具
开始写代码代码比较长,所以我也放在在Github和码云,地址在文章最底部:1.我们建个模块目录osnssh(Open source noob ssh),然后在下面再建两个目录,一个用吵丛岩来放主程序取名叫bin吧,一个用来保存登录数据(IP, 端口,密码)叫data吧。-osnssh
-bin
-data1.设置程序:添加/删除升御IP,端郑消口,密码. 建立py文件bin/setting.py:?
1
23
#!/usr/bin/env python
#-*-coding:utf-8-*-
import
re, base64, os, sys
path
=
os.path.dirname(os.path.abspath(sys.argv[
0
]))
选项配置管理
__author__ = allen woo
def
add_host_main():
while
1
if
add_host():
break
print
(Again:㈢ python可以写软件么
python当然可以开发软件,Python的主要用途之一就是软件开发。
1.基于控制台的应用程序
Python可用于开发基于控制台的应用程序。 例如:IPython。
2.基于音频或视频的应用程序
Python在多媒体部分开发,证明是非常方便的。 一些成功的应用是:TimPlayer,cplay等。
3.3D CAD应用程序
Fandango是一个真正使用Python编写的应用程序,提供CAD的全部功能。
4.Web应用程序
Python也可以用于开发基于Web的应用程序。 一些重要的开发案例是:PythonWikiEngines,Pocoo,PythonBlogSoftware等,如国内的成功应用案例有:豆瓣,知乎等。
5.企业级应用
Python可用于创建可在企业或组织中使用的应用程序。一些实时应用程序是:OpenErp,Tryton,Picalo等。
6.图像应用
使用Python可以开发图像应用程序。 开发的应用有:VPython,Gogh,imgSeek等。
㈣ 5款程序员常用的Python开发工具
很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头。后来工作中深刻体会到,合理使用开发的工具的便利和高效。今天,我就把Python程序员使用频率比较高的5款开发工具推荐给大家,希望对大家的工作和学习有帮助。
一、最强终端:Upterm
本来想推荐 fish 或者 zsh,但其实这两个我也主要是贪图自动补全这个特性。最近在用的这个 Upterm 其实很简单好用,它是一个全平台的终端,可以说是终端里的 IDE,有着强大的自动补全功能。之前的名字叫 BlackWindow,迹模有人跟他说轮和这个名字不利于社区推广,改名叫 Upterm 之后现在已经17000+ Star了。
二、交互式解释器:Ptpython
一个交互式的 Python 解释器。支持语法高亮、提示甚至是 vim 和 emacs 的键入模式。其实我们在课程里提供的在线终端也内置了ptpython。
相关推荐:《Python视频教程》
三、包管理必备:Anaconda
强烈推荐Anaconda ,它能帮你安装好许多麻烦的东西,包括: Python 环境、pip 包管理工具、常用的库、配置好环境路径等等。这些事情小白自己一个个去做的话,容易遇到各种问题,带来挫败感。如果你想用Python搞数据方面的事情,就安装它就好了,它甚至开发了一套JIT的解释器Numba。所以 Anaconda有了JIT之后,对线上科学计算效率要求比较高的东西也可以搞了。
四、编辑器:Sublime3
小白的话当然还是推荐从PyCharm开始上手,但有时候写一些轻量的小脚本,就会想用轻量级一点的工具。Sublime3很多地方都有了极大的提升,并且用起来比原来还要简单。配合安装Anaconda或CodeIntel插件,可以让 Sublime拥有近乎IDE的体验。
五、前端在线编辑器:CodeSandbox
虽然这个不算是真正意义上的Python开发工具,但如果后端工程师想写前端的话,这个在线编辑器太方便了,简直是节省了后端工程师的生命啊!不用安装npm的几千个包了,它已经在云端完成了,采让你直接就可以上手写代码、看效果。对于 React、Vue 这些主流前端框架都支持腊州盯。算是一个补充推荐吧。
㈤ 有哪些值得推荐的Python开发工具_python开发出来的工具
Virtual
首先Python似乎没有类似Maven/Ant这样的项目管理工具。那么当一台机器上有多个python项目,且这些python项目各自有不同的依赖,不想互相干扰时怎么办呢?
官方做法是使用Virtual将每个项目互相隔离开。一般启纳情况下,我们使用python解释器运行python脚本或mole:
>pythonmyScript.py
运行的目录就是安装的python解释器,即python.exe所在的目录。而Virtual就是给每个项目都生成一个项目独有的目录,这个目录里包含python解释器,python标准类库和其他各式各样的必要文件。这样每个项目就可以使用不同的解释器和类库,且互不干扰。
创建过程也很简单。首先找到pyvenv.py所在的目录,这个文件通常在安装目录的自目录Toolsscripts下。这是一个生成Virtual的工具。然后运行:
>pyvenvtutorial-env
运行后就会生成一个名为“tutorial-env”的目录。找到这个目录,可以发现正如官网所说,这个目录包含运行python项目所必须的一切文件。使用在各自Virtual目录里包含的解释器来运行特定的python项目就可以了。同时,对于那些每个项目使用的特定的依赖(packages或mole),则加入到各自Virtual目录的类库子目录中就可以了。这里需要注意的是。创建完Virtual后,还需要激活。做法很简单,在上例tutorial-env目录下执行下的命令即可:
>tutorial-env/Scripts/activate
PIP
PIP是官方提供的安装python第三方类库(packages/mole)的工具。它可以去PPI(pythonpackagesindex)查找或下载第三方类库。网址是:pypi.python.org/pypi
找到上例Virtual目录下的pip.exe并运行:
>pipinstalllib_name
即可安装,其他功能请自行查看手册。如果是在滚败python的安装目录下运行pip,则类库可以被非Virtual的所有项目使用。PIP安装的大旁颤其实是package。
.txt
在Virtual目录下运行:
>pipfreeze>.txt
可以生产一个当前项目所有依赖类库及其版本的list文件,文件名就是.txt(当然也可以用别的名字)。文件内容大致如下:
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0
使用.txt的好处就是:
The..“install-r“:
>pipinstall-r.txt
这样就可以方便的管理项目依赖了。如果不使用requirements.txt,直接使用versioncontrol存储VirtualEnvironments目录,其他程序员直接下载该目录就可以开始项目开发的做法也可以。
㈥ 如何用python写 数据分析工具
数据导入
导入本地的或者web端的CSV文件;
数据变换;
数据统计描述;
假设检验
单样本t检验;
可视化;
创建自定义函数。
t : 浮点或数组类型
t统计量prob : 浮点或数组类型
two-tailed p-value 双侧概率值重复100次; 然后
计算出置信区间包含真实均值的百分比
数据导入
这是很关键的一步,为了后续的分析我们首先需要导入数据。通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式。在Python中,我们的操作如下:
Python
1
2
3
4
5
6
7
8
import pandas as pd
# Reading data locally
df = pd.read_csv('/Users/al-ahmadgaidasaad/Documents/d.csv')
# Reading data from web
data_url = "t/Analysis-with-Programming/master/2014/Python/Numerical-Descriptions-of-the-Data/data.csv"
df = pd.read_csv(data_url)
为了读取本地CSV文件,我们需要pandas这个数据分析库中的相应模块。其中的read_csv函数能够读取本地和web数据。
数据变换
既然在工作空间有了数据,接下来就是数据变换。统计学家和科学家们通常会在这一步移除分析中的非必要数据。我们先看看数据:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Head of the data
print df.head()
# OUTPUT
0 12432934148330010553
1 41589235 4287806335257
2 17871922 19551074 4544
317152 14501 3536 1960731687
4 12662385 25303315 8520
# Tail of the data
print df.tail()
# OUTPUT
74 2505 20878 3519 1973716513
7560303 40065 7062 1942261808
76 63116756 3561 1591023349
7713345 38902 2583 1109668663
78 2623 18264 3745 1678716900
对R语言程序员来说,上述操作等价于通过print(head(df))来打印数据的前6行,以及通过print(tail(df))来打印数据的后6行。当然Python中,默认打印是5行,而R则是6行。因此R的代码head(df, n = 10),在Python中就是df.head(n = 10),打印数据尾部也是同样道理。
在R语言中,数据列和行的名字通过colnames和rownames来分别进行提取。在Python中,我们则使用columns和index属性来提取,如下:
Python
1
2
3
4
5
6
7
8
9
10
11
# Extracting column names
print df.columns
# OUTPUT
Index([u'Abra', u'Apayao', u'Benguet', u'Ifugao', u'Kalinga'], dtype='object')
# Extracting row names or the index
print df.index
# OUTPUT
Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], dtype='int64')
数据转置使用T方法,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Transpose data
print df.T
# OUTPUT
01 23 45 67 89
Abra1243 41581787171521266 5576 927215401039 5424
Apayao2934 92351922145012385 7452109917038138210588
Benguet148 42871955 353625307712796 24632592 1064
Ifugao3300
... 69 70 71 72 73 74 75 76 77
Abra ...12763 247059094 620913316 250560303 631113345
Apayao ...376251953235126 6335386132087840065 675638902
Benguet... 2354 4045 5987 3530 2585 3519 7062 3561 2583
Ifugao ... 9838171251894015560 774619737194221591011096
Kalinga...
78
Abra2623
Apayao 18264
Benguet 3745
Ifugao 16787
Kalinga16900
Other transformations such as sort can be done using<code>sort</code>attribute. Now let's extract a specific column. In Python, we do it using either<code>iloc</code>or<code>ix</code>attributes, but<code>ix</code>is more robust and thus I prefer it. Assuming we want the head of the first column of the data, we have
其他变换,例如排序就是用sort属性。现在我们提取特定的某列数据。Python中,可以使用iloc或者ix属性。但是我更喜欢用ix,因为它更稳定一些。假设我们需数据第一列的前5行,我们有:
Python
1
2
3
4
5
6
7
8
9
print df.ix[:, 0].head()
# OUTPUT
0 1243
1 4158
2 1787
317152
4 1266
Name: Abra, dtype: int64
顺便提一下,Python的索引是从0开始而非1。为了取出从11到20行的前3列数据,我们有:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
print df.ix[10:20, 0:3]
# OUTPUT
AbraApayaoBenguet
109811311 2560
1127366 15093 3039
12 11001701 2382
13 7212 11001 1088
14 10481427 2847
1525679 15661 2942
16 10552191 2119
17 54376461734
18 10291183 2302
1923710 12222 2598
20 10912343 2654
上述命令相当于df.ix[10:20, ['Abra', 'Apayao', 'Benguet']]。
为了舍弃数据中的列,这里是列1(Apayao)和列2(Benguet),我们使用drop属性,如下:
Python
1
2
3
4
5
6
7
8
9
print df.drop(df.columns[[1, 2]], axis = 1).head()
# OUTPUT
AbraIfugaoKalinga
0 1243330010553
1 4158806335257
2 17871074 4544
317152 1960731687
4 12663315 8520
axis参数告诉函数到底舍弃列还是行。如果axis等于0,那么就舍弃行。
统计描述
下一步就是通过describe属性,对数据的统计特性进行描述:
Python
1
2
3
4
5
6
7
8
9
10
11
12
print df.describe()
# OUTPUT
AbraApayaoBenguetIfugao Kalinga
count 79.000000 79.00000079.000000 79.000000 79.000000
mean 12874.37974716860.6455703237.39240512414.62025330446.417722
std16746.46694515448.1537941588.536429 5034.28201922245.707692
min927.000000401.000000 148.000000 1074.000000 2346.000000
25% 1524.000000 3435.5000002328.000000 8205.000000 8601.500000
50% 5790.00000010588.0000003202.00000013044.00000024494.000000
75%13330.50000033289.0000003918.50000016099.50000052510.500000
max60303.00000054625.0000008813.00000021031.00000068663.000000
假设检验
Python有一个很好的统计推断包。那就是scipy里面的stats。ttest_1samp实现了单样本t检验。因此,如果我们想检验数据Abra列的稻谷产量均值,通过零假设,这里我们假定总体稻谷产量均值为15000,我们有:
Python
1
2
3
4
5
6
7
from scipy import stats as ss
# Perform one sample t-test using 1500 as the true mean
print ss.ttest_1samp(a = df.ix[:, 'Abra'], popmean = 15000)
# OUTPUT
(-1.1281738488299586, 0.26270472069109496)
返回下述值组成的元祖:
通过上面的输出,看到p值是0.267远大于α等于0.05,因此没有充分的证据说平均稻谷产量不是150000。将这个检验应用到所有的变量,同样假设均值为15000,我们有:
Python
1
2
3
4
5
6
print ss.ttest_1samp(a = df, popmean = 15000)
# OUTPUT
(array([ -1.12817385, 1.07053437, -65.81425599,-4.564575, 6.17156198]),
array([2.62704721e-01, 2.87680340e-01, 4.15643528e-70,
1.83764399e-05, 2.82461897e-08]))
第一个数组是t统计量,第二个数组则是相应的p值。
可视化
Python中有许多可视化模块,最流行的当属matpalotlib库。稍加提及,我们也可选择bokeh和seaborn模块。之前的博文中,我已经说明了matplotlib库中的盒须图模块功能。
;
Python中,程序如下:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np
import scipy.stats as ss
def case(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
m = np.zeros((rep, 4))
for i in range(rep):
norm = np.random.normal(loc = mu, scale = sigma, size = n)
xbar = np.mean(norm)
low = xbar - ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
up = xbar + ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
if (mu > low) & (mu < up):
rem = 1
else:
rem = 0
m[i, :] = [xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
上述代码读起来很简单,但是循环的时候就很慢了。下面针对上述代码进行了改进,这多亏了Python专家,看我上篇博文的15条意见吧。
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
import scipy.stats as ss
def case2(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
scaled_crit = ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
norm = np.random.normal(loc = mu, scale = sigma, size = (rep, n))
xbar = norm.mean(1)
low = xbar - scaled_crit
up = xbar + scaled_crit
rem = (mu > low) & (mu < up)
m = np.c_[xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
更新
那些对于本文ipython notebook版本感兴趣的,请点击这里。这篇文章由Nuttens Claude负责转换成ipython notebook 。
㈦ Linux:Python编写Linux自定义命令工具
摘要: Linux , Python
工作中需要频繁使用到一个字符串的md5,因此编写一个md5命令工具,输入字符串直接得到输出,并且命令支持参数设置,比如是否事先格式化,指定不同参数可以支持多功能输出,操作步骤如下
直接vim一个脚本,脚本名md5不需要.py后缀,这样更像一个命令,注意在脚本第一行引入python解释器,并设置utf-8编码
其中-f支持先格式化再得到md5,-l支持传入多个字符串用空格分开
赋予可执行权限
测试是否符合要求
直接放置到 /usr/local/bin 目录下(需要root权限)
也可以使用软连接的方式,推荐使用绝对路径
之后就可以在环境变量中直接使用到md5命令
shebang :中文翻译“释伴”,由 #! 开头的字符串,出现在文本文件的 第一行 。类UNIX操作系统的程序载入器会分析shebang后的内容,将这些内容作为解释命令,并调用该指令,并将载有 shebang的文件路径作为该解释器 的参数
比如 #!/bin/bash 就是使用/bin/bash作为解释器运行脚本,如果以Python作为解释器运行脚本先找到Python解释器的路径,一般在Linux自带的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行为 # coding=utf-8 用来指定编码格式,否则Python2输出中文乱码
对于自定义脚本,推荐放置在 /usr/local/bin 目录,有多个可执行文件目录在环境变量中,区别如下:
/bin : 包含二进制可执行文件,为系统最基本的命令,如ls等
/sbin : 与/bin 类似,不同之处是其为root权限命令文件
/usr/bin : 系统预装可执行文件,会随着系统升级而改变
/usr/sbin : 同上,不同之处是其为root权限运用
/usr/local/bin : 三级目录,用户自己的可执行文件,系统不管理
/usr/local/sbin : root权限用户程序
㈧ 怎么用python写程序
1、安装编译器,将工具双击打开,按照默认方式安装即可,安装完成后再开始程序中找到IDLE快捷方式,打开,可以新建一个窗口,保存为py的文件格式。
2、如果要执行该文件,应该点击菜单Run下的RunMoleF5按钮即可。
3、如果要调试,应该仔细的查看命令行回馈回来的信息,注意出错的位置,通过Alt加G命令迅速转到出错位置,仔细检出并改正。
㈨ 有哪些值得推荐的 Python 开发工具
第一款:最强终端 Upterm
它是一个全平台的终端,可以说是终端里的IDE,有着强大的自动补全功能,之前的名字叫做:BlackWindow。有人跟他说这个名字不利于社区推广,改名叫Upterm之后现在已经17000+Star了。
第二款:交互式解释器 PtPython
一个交互式的Python解释器,支持语法高亮、提示,甚至是VIM和emacs的键入模式。
第三款:包管理必备 Anaconda
强烈推荐:Anaconda。它能帮你安装许多麻烦的东西,包括:Python环境、pip包管理工具、常用的库、配置好环境路径等等。这些小事情小白自己一个个去做的话,容易遇到各种问题,也容易造成挫败感。如果你想用Python搞数据方面的事情,安装它就可以了,它甚至开发了一套JIT的解释器Numba。所以Anaconda有了JIT之后,对线上科学计算效率要求比较高的东西也可以搞定了。
第四款:编辑器 Sublime3
如果你是小白的话,推荐从PyCharm开始上手,但是有时候写一些轻量的小脚本,就会想到轻量级一点的工具。Sublime3很多地方都有了极大的提升,并且用起来比原来还要简单,配合安装Anaconda或CodeIntel插件,可以让Sublime3拥有近乎IDE的体验。
第五款:前端在线编辑器 CodeSandbox
虽然这个不算是真正意义上的Python开发工具,但如果后端工程师想要写前端的话,这个在线编辑器太方便了,节省了后端工程师的生命。不用安装npm的几千个包了,它已经在云端完成了,才让你直接就可以上手写代码、看效果。对于React、Vue这些主流前端框架都支持。
第六款:Python Tutor
Python Tutor是一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在web浏览器中编写Python代码,并逐步可视化地运行程序。
第七款:IPython
如何进行交互式编程?没错,就是通过IPython。IPython相对于Python自带的shell要好用的多,并且能够支持代码缩进、TAB键补全代码等功能。如果进行交互式编程,这是不可缺少的工具。
第八款:Jupyter Notebook
Jupyter Notebook就像一个草稿本,能将文本注释、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,以Web页面的方式展示,它是数据分析、机器学习的必备工具。
第九款:Pycharm
Pycharm是程序员常常使用的开发工具,简单、易用,并且能够设置不同的主题模式,根据自己的喜好来设置代码风格。
第十款:Python Tutor
这个工具可能对初学者比较有用,而对于中高级程序员则用处较少。这个工具的特色是能够清楚的理解每一行代码是如何在计算机中执行的,中高级程序员一般通过分步调试可以实现类似的功能。这个工具对于最初接触Python、最初来学习编程的同学还是非常有用的,初学者可以体验一下。