跟老齐学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 10 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
python实现抖音视频批量下载
Jun 20 Python
python文本数据处理学习笔记详解
Jun 17 Python
详解Django定时任务模块设计与实践
Jul 24 Python
python打开使用的方法
Sep 30 Python
python 实现按对象传值
Dec 26 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
python批量替换文件名中的共同字符实例
Mar 05 Python
基于python实现坦克大战游戏
Oct 27 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 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将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
纯php生成随机密码
2015/10/30 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
详解Python中的文件操作
2016/08/28 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
分享vim python缩进等一些配置
2018/07/02 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python实现websocket的客户端压力测试
2019/06/25 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
质检部职责
2013/12/28 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
高一学生期末评语
2014/04/25 职场文书
2014年班干部工作总结
2014/11/25 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
感恩老师主题班会
2015/08/12 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS