首先什么是REPL?

A Read-Eval-Print-Loop (REPL) is available both as a standalone program and easily includable in other programs. REPL provides a way to interactively run JavaScript and see the results. It can be used for debugging, testing, or just trying things out.

交互式解释器(REPL)既可以作为一个独立的程序运行,也可以很容易地包含在其他程序中作为整体程序的一部分使用。REPL为运行JavaScript脚本与查看运行结果提供了一种交互方式,通常REPL交互方式可以用于调试、测试以及试验某种想法。

可以理解执行的交互式命令行界面,相当于一个DOS界面的Shell.

Python是支持REPL的语言

配置运行Python3.5

https://sublimerepl.readthedocs.io/en/latest/#installation

以上是SublimeREPL配置Lua语言的文档

模仿这个可以配置Python3.5

首先Packages:Browse Package 找到 SublimeREPL的文件夹,再进入config文件夹,可以看到许多语言的配置文件,Python也在里面

在这里新建一个Python3.5的文件夹,在里面新建Default.sublime-commands和Menu.sublime-menu两个文件(模仿Python文件夹)我们Python3.5目前只要能打开shell运行,和运行这个脚本,两个功能,因此就只要包含Python3.5 和 Python3.5 – Run current file两项就好了

Default.sublime-commands配置如下:

[

{

"caption": "SublimeREPL: Python3.5",

"command": "run_existing_window_command", "args":

{

"id": "repl_python3.5",

"file": "config/Python3.5/Main.sublime-menu"

}

},

{

"caption": "SublimeREPL: Python3.5 - RUN current file",

"command": "run_existing_window_command", "args":

{

"id": "repl_python3.5_run",

"file": "config/Python3.5/Main.sublime-menu"

}

}

]

Menu.sublime-menu配置如下:

[

{

"id": "tools",

"children":

[{

"caption": "SublimeREPL",

"mnemonic": "R",

"id": "SublimeREPL",

"children":

[

{"caption": "Python3.5",

"id": "Python3.5",

"children":[

{"command": "repl_open",

"caption": "Python3.5",

"id": "repl_python3.5",

"mnemonic": "P",

"args": {

"type": "subprocess",

"encoding": "utf8",

"cmd": ["python3.5", "-i", "-u"],

"cwd": "$file_path",

"syntax": "Packages/Python/Python.tmLanguage",

"external_id": "python3.5",

"extend_env": {"PYTHONIOENCODING": "utf-8"}

}

},

// run files

{"command": "repl_open",

"caption": "Python3.5 - RUN current file",

"id": "repl_python3.5_run",

"mnemonic": "R",

"args": {

"type": "subprocess",

"encoding": "utf8",

"cmd": ["python3.5", "-u", "$file_basename"],

"cwd": "$file_path",

"syntax": "Packages/Python/Python.tmLanguage",

"external_id": "python3.5",

"extend_env": {"PYTHONIOENCODING": "utf-8"}

}

}

]}

]

}]

}

]

注意Default.sublime-commands文件里的id 和Menu.sublime-menu文件里的id要一致,Menu.sublime-menu里的caption就是菜单栏的层级内容,cmd里的内容python3.5,就是你直接在ubuntu terminal里打的命令,而Default.sublime-commands文件里的file指向了Menu.sublime-menu文件,通过id和文件名,就可以找到相应命令的配置

保存文件后可以从菜单栏,Tools->SublimeREPL->Python3.5运行命令

为了和ctrl+B运行保持一致,可以使用

分成上下两栏,上面写代码,下面运行结果,十分方便

设置key binding

每次这样到菜单栏里去找,太慢,能不能像ctrl+B一样直接运行呢?

可以的,只要设置快捷键就好了,在Preference->key Bindings-User里

写上如下配置:

[

{"keys":["f4"],

"caption": "SublimeREPL: Python - RUN current file",

"command": "run_existing_window_command", "args":

{

"id": "repl_python_run",

"file": "config/Python/Main.sublime-menu"

}

},

{"keys":["f5"],

"caption": "SublimeREPL: Python3.5 - RUN current file",

"command": "run_existing_window_command", "args":

{

"id": "repl_python3.5_run",

"file": "config/Python3.5/Main.sublime-menu"

}

}

]

注意id还是要和Menu.sublime-menu文件里的id要一致,F4运行2.7 repl F5 运行3.5 repl

F4正常工作,但是F5确抛出了异常,当没有响应或者出错了的时候可以看看控制台

ValueError:No JSON Object could be decoded

这说明我们的python3.5 Menu.sublime-menu文件有问题,

使用了Json在线语法检查器

http://jsonlint.com/

它说是Menu.sublime-menu 里的注释 // run files 不合法,去掉注释后,F5也能正常运行了

多次运行的时候会出现如下的问题

can't open file '$file_basename': [Errno 2] No such file or directory

这个只要再次用鼠标点击一下test.py就好了,就可以获取运行的文件了

JSON语法与注释

事实上,JSON文件只是记录数据的格式,不适合像XML一样作为配置文件,

Comments were removed from JSON by design.

I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't.

Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.

Source: Public statement by Douglas Crockford on G+

之所以Sublime能支持带注释的json,可能是它在提交前解析过了,但是我们的异常来自Python3.3 说明python3.3里不支持解析这种带注释的json,因此以后还是不要加带注释的json了

JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。它易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

二、JSON的编写规则

JSON的规则很简单:对象是一个无序的"'名称/值'对"集合。一个对象以"{"(左括号)开始,"}"(右括号)结束。每个"名称"后跟一个":"(冒号);"'名称/值'对"之间使用","(逗号)分隔。

规则如下:

1、映射用冒号(":)表示。名称:值

2、并列的数据之间用逗号(",")分隔。名称1:值1,名称2:值2

3、映射的集合(对象)用大括号("{}")表示。

{

名称1:值1,

名称2:值2

}

4、并列数据的集合(数组)用方括号("[]")表示。

[

{名称1:值,名称2:值2},

{名称1:值,名称2:值2}

]

如图就创建Object对象:总是以{开始以}结束,对象的每个属性名与属性值之间用英文的默冒号(:)分隔,多个属性之间用英文的(,)隔开:语法格式如下:

student = {

name:"kouxiaolin",

age:22,

sex:"女"

}

备注:使用JSON语法创建对象时,属性不仅可是普通的字符,而且可以是任何基本数据类型,还可以是函数,数组,甚至是另外一个用JSON语法创建的对象.

teacher = {

name:"xiaoqian",

Student:{

Name:"kouxiaolin",

Sex:"女"

},

//使用JSON为teacher对象分配一个方法

toString:function(){

alert("方法的测试…….");

}

}

JSON创建数组以英文的中括号[开始,然后以中括号]结束.其中放入数组的元素.元素之间用英文的逗号,分开最后的不需要英文逗号。

例如:

Arr = [value1,value2,value3,………]

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

例子

var employees = [

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName": "Carter" }

];

可以像这样访问 JavaScript 对象数组中的第一项:

employees[0].lastName;

返回的内容是:

Gates

可以像这样修改数据:

employees[0].lastName = "Jobs";

cities =[

province1:{

name:"北京",

city[

"大兴","昌平","朝阳","海淀","东城","西城"

]

},

province2: {

name:"河南",

city[

"郑州","安阳","平顶山","开封","商丘","洛阳"

]

}

]

一个叫cities的数组 里有两个对象,province1 province2:

province1有名字和城市两个属性,其中城市属性是个数组,里面有"大兴","昌平","朝阳","海淀","东城","西城 这些值

SublimeREPL配置Python3开发的更多相关文章

  1. PyCharm配置Python3开发环境

    PyCharm配置Python3开发环境 PyCharm的开发环境是配置在对应的工程中: 一.创建一个Project 工具栏:New - New Project 建议指定一个专门的目录 ,用来存放py ...

  2. 轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_210 20世纪初,几乎所有的飞机都是并列双翼结构,此时,美国著名飞行大亨霍华德·休斯认为自己的飞机不够快,助手委婉地提醒他,如果速 ...

  3. Sublime Text 3配置 Python3 开发环境

    来自 https://www.cnblogs.com/zhangqinwei/p/6886600.html Sublime Text作为一款支持多种编程语言的文本编辑神器,深受广大开发者的喜爱.通过简 ...

  4. 【python3】window下 vscode 配置 python3开发环境

    本文以python3.7 为例 一 下载python3 url : https://www.python.org/downloads/windows/ 提示: 安装过程中.记得勾选  添加环境变量 二 ...

  5. kali配置python3的开发环境

    最近打算学习一下python3,毕竟不会写脚本的程序员,不是一个好的安全测试人员! 对于我来说,python的大部分应用都是在linux上,而kali是我唯一一个有图形化操作界面的linux系统 所以 ...

  6. 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...

  7. windows 10下sublime text3环境的搭建以及配置python开发环境

    1 - 安装Sublime Text 3 到官网下载对应的版本,如下: OS X (10.7 or later is required) Windows - also available as a p ...

  8. Mac 配置教程-开发篇

    将 Mac 日常使用的软件和开发软件区分开,将之前写的 Mac 配置的文章分成了两篇: Mac 配置教程-日常篇 Mac 配置教程-开发篇 图床 iPic 设置快捷键 Command+Shift+u ...

  9. 完美配置Python3.5+Anaconda+PyQt5,实现UI和其他模块的结合

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

随机推荐

  1. ThinkPHP3.2.3中,查询语句中in的使用方法。

    //删除分类 public function del(){ $cid = I('get.cid'); $cate = M('category')->field('cid,pid')->se ...

  2. 各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWeb开发)!!!

    各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWbd开发)!!! [1]jQuery手机端开发视频教程篇 [10]扬中科JQuery基础教程.zip [15]J ...

  3. 计算机图形学之扫描转换直线-DDA,Bresenham,中点画线算法

    1.DDA算法 DDA(Digital Differential Analyer):数字微分法 DDA算法思想:增量思想 公式推导: 效率:采用了浮点加法和浮点显示是需要取整 代码: void lin ...

  4. android opengl es 源码

    [转自:http://blog.csdn.net/happyhell/article/details/6086973] The entire OpenGL ES API on Android is i ...

  5. phpstrom安装bootstrap3插件

    1.步骤 File > > Settings > >Plugins > > 搜索bootstrap 3 然后点击 Browse repositories 就会有一个 ...

  6. Weekly Contest 111-------->944. Delete Columns to Make Sorted

    We are given an array A of N lowercase letter strings, all of the same length. Now, we may choose an ...

  7. POJ3450【KMP理解】

    题意: 求多个字符串的最长公共子串 思路: 4000个串,200长度. 一种暴力,对于一个串最多有200*200=40000级别个子串,然后我要再处理一下next数组200,8e6复杂度: 然后我要和 ...

  8. 51nod 1068【简单博弈】

    思路 手动打表, N 1 : A出1 A胜: 2 : A出2 A胜: 3 : A只能出2的整数幂&&这个数<=3,所以只能出1,2:A出1的时候,B就是2的情况,B胜:A出2的时 ...

  9. 基于SpringBoot+MyBatis实现一套电商系统

    项目介绍 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现. 前台商城系统包含首页门户.商品推荐.商品搜索.商品展示.购物车.订单流程.会员中心 ...

  10. 重构学习day01 类型码 类型码的上层建筑 与类型码相关的重构方法 1.使用子类代替类型码 2.使用状态或策略模式代替类型码

    名词:类型码 类型码的上层建筑 重构方法 1.使用子类代替类型码 2.使用状态/策略模式代替类型码 类中存在方法把某个字段当作条件,根据字段值的不同,进行不同的处理.(自定义概念)则这个字段叫做:类型 ...