首先什么是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. HDFS源码分析三-DataNode实现

    3. DataNode 实现( 未完待续 )

  2. 技术胖Flutter第三季-17布局PositionedWidget层叠定位组件

    博客地址: https://jspang.com/post/flutter3.html#toc-d7a 把我们上节的 Container的部分代码去掉. 使用:Positioned 有点像css里面的 ...

  3. 2-2和2-3基本数据类型 & 2-4基本数据类型详解 & 3-1和3-2整形字面量值及变量声

    2-4基本数据类型详解 3-1和3-2整形字面量值及变量声 023是八进制的 0x1357是十六进制 0X3C也是十六进制 0x1abL:长整型 变量声明 数据类型 空格 变量名 赋值: 变量的定义:

  4. httpd基础

    hpptd http服务器应用 http服务器程序 httpd apache nginx lighttpd 应用程序服务器 IIS .asp tomcat .jsp jetty 开源的servlet容 ...

  5. roguelike地图的随机生成算法

    如果要想自己设计一个roguelike游戏,那么需要你有一个随机地图生成,我在indienova上看到一篇文章,描述了一个roguelike算法,然后自己用unity实现了一个下. 原文地址:随机生成 ...

  6. OPENGL_变换与坐标系

    参考:http://blog.csdn.net/kandyer/article/details/12449973 坐标系 世界坐标系:绝对坐标 物体坐标系:以物体自身为原点的坐标系 摄像机坐标系:以摄 ...

  7. BAT或赌在当下或押在未来,谁是王者?

    转自:http://www.tmtpost.com/97132.html 百度阿里和腾讯三家本来的核心业务并不冲突,各守一方阵地,但随着各自的收购注资加上业务的延展而慢慢有了交际,阿里和腾讯在移动支付 ...

  8. 用EnumMap代替序数索引

    用EnumMap代替序数索引   有时候,会见到利用ordinal方法来索引数组的代码.例如下面这个简化的类,表示一种烹饪用的香草: public class Herb { public enum T ...

  9. windows如何搭建redis集群

    操作系统:win10 64位 redis版本:3.2.1-x64 ruby版本:2.5.1-1-x64 rubygems版本:2.7.6 今天突然想简单的搭建一个redis的集群,因为系统是Windo ...

  10. vijos次小生成树

    xiaomengxian的哥哥是一个游戏迷,他喜欢研究各种游戏.这天,xiaomengxian到他家玩,他便拿出了自己最近正在研究的一个游戏给xiaomengxian看.这个游戏是这样的:一个国家有N ...