跟老齐学Python之一个免费的实验室


Posted in Python onSeptember 14, 2014

在学生时代,就羡慕实验室,老师在里面可以鼓捣各种有意思的东西。上大学的时候,终于有机会在实验室做大量实验了,因为我是物理系,并且,遇到了一位非常令我尊敬的老师——高老师,让我在他的实验室里面,把所有已经破旧损坏的实验仪器修理装配好,并且按照要求做好实验样例。经过一番折腾,才明白,要做好实验,不仅仅花费精力,还有不菲的设备成本呢。后来工作的时候,更感觉到实验设备费用之高昂,因此做实验的时候总要小心翼翼。

再后来,终于发现原来计算机是一个最好的实验室。在这里做实验成本真的很低呀。

扯的远了吧。不远,现在就扯回来。学习Python,也要做实验,也就是尝试性地看看某个命令到底什么含义。通过实验,研究清楚了,才能在编程实践中使用。

怎么做Python实验呢?

走进Python实验室

在《集成开发环境(IDE)》一章中,我们介绍了Python的IDE时,给大家推荐了IDLE,进入到IDLE中,看到>>>符号,可以在后面输入一行指令。其实,这就是一个非常好的实验室。

另外一个实验室就是UNIX操作系统(包含各种Linux和Mac OSx)的shell,在打开shell之后,输入python,出现如下图所示:

跟老齐学Python之一个免费的实验室

如果看官是用windows的,也能够通过cmd来获得上图类似的界面,依然是输入python,之后得到界面。

在上述任何一个环境中,都可以输入指令,敲回车键运行并输出结果。

在这里你可以随心所欲实验。

交互模式下进行实验

前面的各讲中,其实都使用了交互模式。本着循序渐进、循环上升的原则,本讲应该对交互模式进行一番深入和系统化了。

通过变量直接显示其内容

从例子开始:

>>> a="http://qiwsir.github.io"
>>> a
'http://qiwsir.github.io'
>>> print a
http://qiwsir.github.io

当给一个变量a赋值于一个字符串之后,输入变量名称,就能够打印出字符串,和print a具有同样的效果。这是交互模式下的一个特点,如果在文件模式中,则不能,只有通过print才能打印变量内容。

缩进

>>> if bool(a):
...   print "I like python"
... 
I like python

对于if语句,在上一讲《从if开始语句的征程》中,已经注意到,if下面的执行语句要缩进四个空格。在有的python教材中,说在交互模式下不需要缩进,可能是针对python3或者其它版本,我使用的是python2.7,的确需要缩进。上面的例子就看出来了。

看官在自己的机器上测试一下,是不是需要缩进?

报错

在一个广告中看到过这样一句话:程序员的格言,“不求最好,只求报错”。报错,对编程不是坏事。如何对待报错呢?

一定要认真阅读所提示的错误信息。

还是上面那个例子,我如果这样写:

>>> if bool(a):
... print "I like python"
 File "<stdin>", line 2
   print "I like python"
       ^
IndentationError: expected an indented block

从错误信息中,我们可以知道,第二行错了。错在什么地方呢?python非常人性化就在这里,告诉你错误在什么地方:

IndentationError: expected an indented block

意思就是说需要一个缩进块。也就是我没有对第二行进行缩进,需要缩进。

另外,顺便还要提醒,>>>表示后面可以输入指令,...表示当前指令没有结束。要结束并执行,需要敲击两次回车键。

探索

如果看官对某个指令不了解,或者想试试某种操作是否可行,可以在交互模式下进行探索,这种探索的损失成本非常小,充其量就是报错。而且从报错信息中,我们还能得到更多有价值的内容。

例如,在《眼花缭乱的运算符》中,提到了布尔运算,其实,在变量的类型中,除了前面提到的整数型、字符串型,布尔型也是一种,那么布尔型的变量有什么特点呢?下面就探索一下:

>>> a
'http://qiwsir.github.io'
>>> bool(a)   #布尔型,用bool()表示,就类似int(),str(),是一个内置函数
True
>>> b=""
>>> bool(b)
False
>>> bool(4>3)
True
>>> bool(4<3)
False
>>> m=bool(b)
>>> m
False
>>> type(m)
<type 'bool'>
>>>

从上面的实验可以看出,如果对象是空,返回False,如果不是,则返回True;如果对象是False,返回False。上面探索,还可以扩展到其它情况。看官能不能通过探索,总结出bool()的特点呢?

Python 相关文章推荐
python列表操作使用示例分享
Feb 21 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Django中对数据查询结果进行排序的方法
Jul 17 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
Pytorch模型转onnx模型实例
Jan 15 Python
Python打印特殊符号及对应编码解析
May 07 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
跟老齐学Python之从if开始语句的征程
Sep 14 #Python
跟老齐学Python之眼花缭乱的运算符
Sep 14 #Python
跟老齐学Python之玩转字符串(3)
Sep 14 #Python
跟老齐学Python之玩转字符串(2)
Sep 14 #Python
跟老齐学Python之玩转字符串(1)
Sep 14 #Python
跟老齐学Python之永远强大的函数
Sep 14 #Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 #Python
You might like
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python学习数据结构实例代码
2015/05/11 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python 实现逻辑回归
2020/12/30 Python
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
优秀高中生事迹材料
2014/02/11 职场文书
环保标语口号
2014/06/13 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
单位婚育证明范本
2014/11/21 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
大国崛起观后感
2015/06/02 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL