关于python命令在editor里编写与在interpreter里的编写的不同之处

  其实用这个标题,我心里还是有点胆怯的。作为一个python入门的小白,不,编程入门的小白,我还不太确定我对editor和interpreter的理解是否到位。

  在我目前的理解中,editor就是将所有命令一次性输入,保存成 .py 文件,之后可以在interpreter里运行,decode 成机器语言,让计算机识别你的命令。

  而我们同样也可以在interpreter里逐行输入命令,但每次输完一行命令后,计算机就会马上执行该命令。这就导致在interpreter里写code不如editor方便。

  但本文就是想比较一下同样的命令,分别在editor里编写后运行与在interpreter直接编写运行的不同点。

  我是把《learn python the hard way》作为我的第一本入门书的,以看完四分之三,到最后越来越难,实在看不下去了,总体感觉这本书只是给了你一个python语法的框架,但很多细节的东西都没告诉你,很多知识都需要你自己上网去做了解补充,不过这正是作者通过这本书想让你学习的,其实这也正是学习编程的要领,书里每一节都有 study drills ,你需要自己摸索一些函数的用法,所以我认为这本书更多的算是一本编程入门书,而不是python入门书。

  好了,言归正传,editor选用Notepad++,interpreter选用powershell,也就是《learn python the hard way》这本书里推荐使用的。

example 1

	powershell

	>>> a = 2
>>> b = 3
>>> a - b
-1

	Notepad++

	1>   a = 2
2> b = 3
3> a - b #该语句在powershell运行后不显示任何内容

example 2

	powershell

	>>> def test(a):
... return a
...
>>> test(2)
2

	Notepad++

	1>	def test(a):
2> return a
3>
4> test(2) #该语句在powershell运行后不显示任何内容

小结:

在Notepad++里只有输入print才会显示内容。

在powershell里赋值语句和函数定义都不会显示内容,而一旦进行操作运算(操作符运算或者调用函数)即使不使用print也能显示操作后的结果

example 3

	powershell

	>>>t = [1, 2, 3, 4]
>>>t
[1, 2, 3, 4]

	Notepad++

	1>	t = [1, 2, 3, 4]
2> t #该语句在powershell运行后不显示任何内容

小结:

在Notepad++里给变量赋值后,若要显示变量内容,只有输入print才会显示变量内容。

在powershell里给变量赋值后,若要显示变量内容,只需输入变量名。

example 4

在powershell中有一个奇怪的例子:

	>>>a = [1, 2, 3, 4]
>>>a.append(5)
>>> #结果不显示任何内容

为什么会这样?难道我们之前的结论是错误的?我们试试加入print :

	>>>a = [1, 2, 3, 4]
>>>print a.append(5)
None

原来是因为 a.append(5) 的值是None,也就是说在powershell中若操作结果为None则不显示任何东西

总结

powershell的执行过程:

在powershell中除了赋值语句,一般的命令都会显示结果。None也不例外,其实我们好好想想,它显示的就是“空”。

打印提示符并等待用户输入

获取用户输入

分析用户输入

解释执行

关于python命令在editor里编写与在interpreter里的编写的不同之处的更多相关文章

  1. 让你如绅士般基于描述编写 Python 命令行工具的开源项目:docopt

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  2. [转]Python 命令行参数和getopt模块详解

    FROM : http://www.tuicool.com/articles/jaqQvq 有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Pyt ...

  3. Python 命令行参数和getopt模块详解

    有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实现的).在C语言里,m ...

  4. visual studio如何附加到进程调试python命令

    既然是调试python脚本,那么我首先想到的是附加到进程(python.exe) 至于为什么不用F5直接启动python脚本呢,因为调用命令如下 C:> python test.py < ...

  5. Python命令行选项參数解析策略

    概述 在Python的项目开发过程中,我们有时须要为程序提供一些能够通过命令行进行调用的接口.只是,并非直接使用 command + 当前文件 就ok的,我们须要对其设置可选的各种各样的操作类型.所以 ...

  6. Python 命令行之旅 —— 初探 argparse

    『讲解开源项目系列』启动--让对开源项目感兴趣的人不再畏惧.让开源项目的发起者不再孤单.跟着我们的文章,你会发现编程的乐趣.使用和发现参与开源项目如此简单.欢迎联系我们给我们投稿,让更多人爱上开源.贡 ...

  7. Python 命令行模块使用技巧

    命令行参数传递 python main.py -H 192.168.1.1 -p 22,23,24 #coding:utf-8 import optparse def PortScan(host,po ...

  8. 快速上手 Python 命令行模块 Click

    关于Click? 说下 Click 模块是干啥的,简单说,它就是把我们的 Python 脚本的一些函数,通过 添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后 ...

  9. shell脚本命令 运行python文件&python命令行运行python代码

    单独的python文件运行的时候 报错: 在shell脚本中,运行shell脚本命令:在Python命令行中,运行Python代码.然而,“python hello.py”是一个脚本命令,不是pyth ...

随机推荐

  1. Ubuntu中nfs服务器安装与配置

    一.执行命令 sudo apt-get install nfs-kernel-server 二.为创建nfs文件夹 sudo mkdir /usr/nfs 更改目录权限:sudo chmod 777 ...

  2. sqlite在c++中的使用方法

    1.需要下载的文件      http://pan.baidu.com/s/1c06NpzM 2.执行文件shell的编译 3.在c++中如何使用 #include <stdio.h> # ...

  3. directive和controller如何通信

    1.AngularJS是何方神圣 Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持整个开发进程,提供web应用的架构,无需进行手工 ...

  4. webservice跨服务器上传附件

    最近一个项目,用到文件上传功能,本来简单地使用upload控件直接post到服务器保存,简单实现了.后来考虑到分布是部署,静态附件.图片等内容要单独服务器(命名为B服务器,一台,192.168.103 ...

  5. HTML5图形绘制学习(1)-- Canvas 元素简介

    Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...

  6. NPOI导出多张图片到Excel

    常用NPOI导出数据到excel,但没有试过如何导出图片.NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel.在单元格中插入图片主要是用HSSFClientAnchor对象.他有 ...

  7. 类与对象 - PHP手册笔记

    基本概念 PHP对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝. 当创建新对象时,该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常.类应在被实例化 ...

  8. 用Total Commander替换windos默认资源管理器

    用Total Commander替换windos默认资源管理器的方法 Total Commander(简称TC)是一个功能强大的资源管理器. TC本身没有自带的替换windows资源管理器的功能,就必 ...

  9. How Node.js Multiprocess Load Balancing Works

    As of version 0.6.0 of node, load multiple process load balancing is available for node. The concept ...

  10. 使用AES加密的帮助类

    在开发中经常使用加密/解密对一些内容进行处理,比如密码在存入数据库之前先经过加密处理等等,这里就把一个加密帮助类代码贴出来,供以后查找使用. 这个帮助类主要功能是对字符串和字节数组进行加密解密处理. ...