交互式编程
新建demo1.py,文件内容如下:
import sysprint(sys.platform)print(2 ** 100)x = 'Spam!'print(x * 8)
执行python demo1.py,得到结果如下:
demo1运行结果
事实上,如果你只想尝试下这种简单的交互,压根没必要新建一个文件,直接使用python交互式窗口就可以了。通过python命令唤醒交互式窗口。
接下来,你可以尝试输入你在demo1.py中的每一行代码,并回车,如下:
交互式命令
注意最后一行命令,它告诉我们,在交互式编程模式下,print是可以被省略的,当然,在文件中还是要有。至于这些代码的真实含义,现在还没必要深究。
交互式编程给我们提供了一种更简单的去体会python乐趣的方式,同时,它也可以被当成一种测试工具来使用。
Input
在这里,插入一条python的语法讲解,确实有些奇怪,但是……是有理由的。
windows下执行demo1.py,事实上你可以省略python,直接通过demo1.py就可以执行,甚至你直接双击demo1.py就可以。于是,赶紧试一下。
纳尼?什么玩意儿一闪而过?出错了?
没事,不要着急,打开demo1.py,在最下方添加一行input()。保存,再次运行,你会得到一个一直打开着的窗口,就像是等你回家的媳妇儿。
demo1运行结果
input命令的能力就是接收一行标准输入,如果不输入,就会一直等待。新建demo2.py,内容如下:
s = input()print('学你说:' + s)input()
双击你会得到一个命令行窗口,尝试输入abcd,并回车,结果如下:
demo1运行结果
最后一行的input是为了能够看到输入abcd后的反馈结果。
模块和import
python中,每个.py文件,称之为一个模块。模块是python程序架构的一个核心概念,一个大型python工程,往往是以多个模块文件组成的。其中,某个模块文件被设计成为主文件,也叫做顶层文件。模块和模块之间可以通过import语句导入。我们在命令行交互中简单展示下模块的导入。
创建demo3.py,内容如下:
des='我是被你导入的'
通过python命令打开交互窗口,执行import demo3.py命令,再执行des,得到如下结果:
交互式运行demo3
如果你没有得到预期结果,考虑以下几点:
1. 是否直接输入了import,而没有先通过python命令打开交互窗口?
2. 是否路径没有切换对,导致没有找到相应问题?
3. 是否在demo3后面加了.py的后缀?
4. 输出des时,是否忘记了demo3.的前缀?
对象
从某种角度来说,程序的本质就是利用某些东西,来做某些事情。Python中,这些东西,就是对象。更正式点来说,Python中,数据总是以对象的形式出现的。这些对象 ,一部分是Python提供的内置对象,另一部分,则是自定义对象。事实上,我们在Python的使用过程中,用得最多的就是Python提供的内置对象,自定义对象,也都是基于内置对象,以Python或C++等组织起来的。
接下来,我们开始学习内置对象的相关内容。
数字
程序,是为了解决生活中的问题而来的。那第一个必不可少的,就是数字。Python支持各种数字,并支持基本的数字运行,如加减乘除等。
如果你学习过一些其它编程语言,那么,Python中的以下两个彩蛋,可能会让你觉得不可思议。
第一个是,Python中可以用两个 * 号来表示乘方。 如 2 ** 100。
第二个是,当需要的时候,Python的整数类型,会自动提供额外的精度,来处理较大的数值。(居然没有溢出)
对于浮点数来说,Python同样有精度的问题。(对于计算机来说,所有内容在最底层,都是以二进制,即0和1组成的序列来存在的,所以,除部分特殊的小数外,其它小数都无法准确的表示。)例如,计算 3.1415 * 2,你得到的会是6.2830000000000004,但是,奇怪的是,如果你使用print语句来输出,又会得到6.283。bug吗?并不是,这只是Python的一种友好的形式。当使用print时,Python帮助把一些没必要的内容隐藏掉了。
除了基本的数字外,和Python一起分发的,还有一些常用的数学模块,如math,random等。
另外,Python还能表示一些少见的数字对象,如复数,固定精度十进制数,有理数,集合和布尔值等,甚至,通过一些第三方开源扩展,还可以表示矩阵和向量等更专业的内容。