关于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. X - A == B ?(第二季水)

    Description Give you two numbers A and B, if A is equal to B, you should print "YES", or p ...

  2. mysql中select into 和sql中的select into 对比

    现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去.answer 01: create table dust select * from student;//用于复制前未 ...

  3. listview滚动到底部

    方法一: // msgListView是ListView控件 // adapter是ListView绑定的Adapter,如果不方便直接使用,也可以通过ListView的getAdapter()方法获 ...

  4. ssh username@10.2.1.23无法连接

    ssh username@10.2.1.23无法连接 经过排查各种openSSH版本等,最终因为两个机器不是一个段(A:255.255.0.0 B:255.255.255.0)造成的. 关于IP需要以 ...

  5. springmvc+mybatis如何分层

    通常情况下,我们之间调用mapper,spring会为我们注入其实现,很方便,mybatis也提供了一个generator供我们生成bean.dao接口等.但是总有一种感觉叫不爽,感觉除了bean和m ...

  6. python运维开发(十三)----SQLalchemy和paramiko续

    内容目录: ORM架构SQLalchemy Paramiko SQLalchemy对表的操作 使用 ORM/Schema Type/SQL Expression Language/Engine/Con ...

  7. MYSQL create database 和 create table 做了一些什么!

    create database Studio; 这样就可以创建一个数据库了.他包涵一些什么呢? 可以看到它创建了一个文件夹,下面我们进去看一下它里面有一些什么东西. 还是先建一张表再进去吧,运行一下这 ...

  8. 全选demo

    我们处理数据时,最好能够支持全选操作. 选中之后,进行删除,或其他处理. 我自己写了一个demo. 主要功能: 1.点击全部选中 2.点击全部取消 3.然后进行获取选中的id,进行处理 代码如下: & ...

  9. Linux进程间通信——使用流套接字

    前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程.通常我们使用socket进行网络编 ...

  10. 任何时候都适用的20个C++技巧

    这些小技巧之所以特别,是因为这些信息通常吧不能在C++书籍或者网站上找到.比如说,成员指针,即使对于高级程序员也是比较棘手,和易于产生bugs的,是应该尽量避免的问题之一. <翻 by凌云健笔& ...