【Python 第64课】python shell

各位好久不见,我终于又更新了:D。今天抽空来讲点非常非常基础的东西,关于在哪里写 python。

如果你已经编写过自己的程序,相信对这些内容已经熟悉。但很多刚刚接触编程的人,对于在 python 里编写并运行代码,还时常有些疑问。

一般来说,有两种运行 python 代码的方法:

1. 使用交互式的带提示符的解释器

2. 使用源文件

第一种方法,所谓“交互式的带提示符的解释器”,也被称做 python shell。当你安装好 python,并正确配置系统变量 PATH 后(linux 和 mac 上通常都预装并配置好了 python),在命令行里输入 python,会看到诸如以下的提示:

$ python

Python 2.7.5 (default, Aug 25 2013, 00:04:04)

[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

这就是 python shell。三个右括号 >>> 是 python 输入的提示符,它表示 python 解释器已经准备好了,等待你的命令。

在这里输入 python 的命令,并输入回车,python 解释器将在下一行立刻给出运行的结果。

以最简单的 print 方法为例:

>>> print 'hello world'

hello world

>>>

当输入完并回车之后,python 会立刻在后面输出你指定的字符串。

python shell 可以非常方便的运行 python 语句,这一点对调试、快速组建和测试相当有用。当你在编写代码的过程中,对一些方法不确定的时候,可以通过 python shell 来进行试验。一(cheng)些(xu)人(yuan)甚至把 Python shell 当作计算器来使用:

>>> 1 + 1

2

>>> x = 1

>>> y = 2

>>> x + y

3

>>>

注意上面的例子中,我们在 python shell 中定义了变量。这些变量值在 python shell 打开时一直有效,关闭后变量值则会丢失,除非你通过其他的方式进行保存。

但 python shell 不足的地方是,当你写多行代码时很不方便。你可以尝试写一个 if 语句:

>>> if 2 > 1:

... print 'right'

...

right

>>>

你需要在第二行开头加上空格,并用两个回车结束语句。当你发现前面某行有错误时,想要回去修改就很麻烦。

另外,python shell 里写好的代码也很难保存(至少我目前还不知道有什么可行的方法)。所以一般并不会用它来“真正地”写代码。当你需要写一个相对完整的 python 程序时,你需要写在一个“源文件”中。这就是运行 python 的第二种方法。

仍然以 print 为例:

用一个文本编辑器新建一个文件,在里面输入:

print "hello world"

保存这个文件为 hello.py。注意,有些同学可能会习惯命名为 print.py,请不要这么做。不要以任何 python 的内置方法或者你会使用到的模块名来命名你自己的代码文件。

然后在命令行中,进入到这个文件所在的文件夹,输入 python hello.py。你会看到:

$python hello.py

hello world

$

这时候不会进入 python shell,而是直接输出了程序的结果。换句话说,python 执行了我们写在源文件 hello.py 中的代码。

python 自带了一个叫做 IDLE 的编辑器。你可以在程序列表里找到并打开它,也可以通过命令行中输入 idle 打开。

打开后,你会看到一个默认的窗口,里面有我们前面说到的 >>> 提示符。这就是 IDLE 里的 python shell,和我们前面说的命令行中的效果是一样的,可以用来调试简单的命令。在这里,你还可以通过快捷键 alt + p(mac 上是 ctrl + p)来返回之前输入过的命令。

如果要编辑源文件,则需要在菜单栏中选择 File -> New Window。这时打开的新窗口就是源文件窗口。在里面写好你的 python 代码后,点击菜单栏上的 Run -> Run Module(或者按键盘上的F5),按提示保存后,就会运行这个源文件,输出结果将会在之前的 python shell 窗口中显示。对于初学者来说,这还是比较方便的开发方式。

当然,还有很多 python 的 IDE(集成开发环境)可供选择,在此我不一一介绍。但基本都包括 python shell 和源代码编辑这两块核心功能。选择合适的方式去写 python,会让你事半功倍。

------------------

最后说点题外话:最近工作上的事情比较忙,一心难以二用,因此耽搁了很久也没有更新文章。目前这种状况仍然没有改变,所以还是不能保证更新的频率,望诸位理解。好在 python 的入门知识已基本都讲到了,点击文章末尾的“阅读原文”可进入之前的文章目录。接下来,我会挑一些小技巧或者常见问题进行分享。同时,我依然会在微信、论坛和QQ群里出现,尽量回答大家的问题,欢迎来各种讨论。

每天5分钟,轻松学编程

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2014-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

面对海量请求,缓存设计还应该考虑哪些问题?

从第一个缓存框架 Memcached 诞生以来,缓存就广泛地存在于互联网应用中。如果你的应用流量很小,那么使用缓存可能并不需要做多余的考虑。但如果你的应用流量达...

10040
来自专栏IT派

秒懂Python编程中的if __name__ == 'main' 的作用和原理

一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述,看完之后,自己觉得不够简单明了,于是在其文章底部写了一句话...

12010
来自专栏北京马哥教育

Python在自动化运维时经常会用到的方法

本文由马哥教育Python自动化实战班6期学员推荐,转载自互联网,作者为seed,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 随着信...

38080
来自专栏Ryan Miao

Git 工作流的正确打开方式

前言 一直在使用git做版本控制,也一直工作很顺利,直到和别人发生冲突的时候。这才注意到git 工作流并不是那么简单。比如,之前遇到的清理历史。百度到的资料很...

34460

Cloudify中的部署组合

[这篇文章是由DeWayne Filppi撰写的。]

37760
来自专栏同步博客

Redis应用----消息传递

  消息传递这一应用广泛存在于各个网站中,这个功能也是一个网站必不可少的。常见的消息传递应用有,新浪微博中的@我呀、给你评论然后的提示呀、赞赞赞提示、私信呀、甚...

18920
来自专栏木可大大

漫谈Web缓存架构

目前,Web应用的核心数据通常存放在数据库中,比如说用户信息、订单信息、交易信息等,同时,数据库和编程语言是无关的,通过SQL交互,Java、Php等语言写的程...

458100
来自专栏嵌入式程序猿

进入main之前,都干了什么,老实招来

经常有程序猿会说软件上电后从main函数开始执行,其实是不对的,在进入main之前,经历了好多,今天就带你来熟识下IAR环境下,应用软件系统的main函数之前的...

318100
来自专栏FLINK

tailf、tail -f、tail -F三者区别

数据采集,浪尖公司一直是自己公司写的agent和插件,今天新增业务要快速上线,就想试试flume。结果是用flume,采用tail -f 监控文件的方式,然后发...

1.1K40
来自专栏程序员互动联盟

【编程基础】什么是内存泄露

内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之...

35760

扫码关注云+社区

领取腾讯云代金券