Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
龟叔给Python的定位是“优雅”、“明确”、“简单”。
第一个缺点就是运行速度慢,和C程序相比非常慢。
因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
第二个缺点就是代码不能加密。
如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。
可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。
Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。
1.在Mac上安装Python如果你正在使用Mac,系统是OS X 10.8~10.10,那么系统自带的Python版本是2.7。要安装最新的Python 3.6,有两个方法:
方法一:从Python官网下载Python 3.6的安装程序(网速慢的同学请移步国内镜像),双击运行并安装;
方法二:如果安装了Homebrew,直接通过命令brew install python3
安装即可。
2.在Linux上安装Python
如果你正在使用Linux,那我可以假定你有Linux系统管理经验,自行安装Python 3应该没有问题,否则,请换回Windows系统。
对于大量的目前仍在使用Windows的同学,如果短期内没有打算换Mac,就可以继续阅读以下内容。
Add Python 3.6 to PATH
,然后点“Install Now”即可完成安装。安装成功后,打开命令提示符窗口,敲入python后,会出现两种情况:
情况一:看到上面的画面,就说明Python安装成功!
你看到提示符>>>
就表示我们已经在Python交互式环境中了,可以输入任何Python代码,回车后会立刻得到执行结果。现在,输入exit()
并回车,就可以退出Python交互式环境(直接关掉命令行窗口也可以)。
情况二:得到一个错误:
这是因为Windows会根据一个Path
的环境变量设定的路径去查找python.exe
,如果没找到,就会报错。如果在安装时漏掉了勾选Add Python 3.6 to PATH
,那就要手动把python.exe
所在的路径添加到Path中。
运行Python的视频 点击打开链接
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py
文件。
当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python
就是启动CPython解释器。
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
键入win键+r 进入运行提示框,输入cmd命令
python
,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>
。在Python交互模式下输入exit()
并回车,就退出了Python交互模式,并回到命令行模式:
在交互模式的提示符>>>
下,直接输入代码,按回车,就可以立刻得到代码执行结果。现在,试试输入100+200
,看看计算结果是不是300:
- >>> 100+200
- 300
print()
函数,然后把希望打印的文字用单引号或者双引号括起来,但不能混用单引号和双引号:- >>> print('hello world')
- hello world
这种用单引号或者双引号括起来的文本在程序中叫字符串,今后我们还会经常遇到。
最后,用exit()
退出Python,我们的第一个Python程序完成!唯一的缺憾是没有保存下来,下次运行时还要再输入一遍代码。
第一个Python程序视频演示 点击打开链接
在命令行模式下,可以执行python
进入Python交互式环境,也可以执行python hello.py
运行一个.py
文件。
执行一个.py
文件只能在命令行模式执行。如果敲一个命令python hello.py
,看到如下错误:
错误提示No such file or directory
说明这个hello.py
在当前目录找不到,必须先把当前目录切换到hello.py
所在的目录下,才能正常执行:
此外,在命令行模式运行.py
文件和在Python交互式环境下直接运行Python代码有所不同。Python交互式环境会把每一行Python代码的结果自动打印出来,但是,直接运行Python代码却不会。
例如,在Python交互式环境下,输入:
- >>> 100+200+300
- 600
直接可以看到结果600
。
但是,写一个calc.py
的文件,内容如下:
100 + 200 + 300
然后在命令行模式下执行:
F:\work>python calc.py
发现什么输出都没有。
这是正常的。想要输出结果,必须自己用print()
打印出来。把calc.py
改造一下:
print(100 + 200 + 300)
再执行,就可以看到结果:
- F:\work>python calc.py
- 600
最后,Python交互模式的代码是输入一行,执行一行,而命令行模式下直接运行.py
文件是一次性执行该文件内的所有代码。可见,Python交互模式主要是为了调试Python代码用的,也便于初学者学习,它不是正式运行Python代码的环境!
一个是Sublime Text
一个是Notepad++
请注意,用哪个都行,但是绝对不能用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误。
安装好文本编辑器后,输入以下代码:
print('hello, world')
注意print
前面不要有任何空格。然后,选择一个目录,例如E:\work
,把文件保存为hello.py
,就可以打开命令行窗口,把当前目录切换到hello.py
所在目录,就可以运行这个程序了:
- E:\20180315\work>python hello.py
- hello, world
也可以保存为别的名字,比如first.py
,但是必须要以.py
结尾,其他的都不行。此外,文件名只能是英文字母、数字和下划线的组合。
如果当前目录下没有hello.py
这个文件,运行python hello.py
就会报错
- E:\20180315>python hello.py
- python: can't open file 'hello.py': [Errno 2] No such file or directory
报错的意思就是,无法打开hello.py
这个文件,因为文件不存在。这个时候,就要检查一下当前目录下是否有这个文件了。如果hello.py
存放在另外一个目录下,要首先用cd
命令切换当前目录。
运行hello.py的视频教程 点击打开链接
在windows上是不能直接运行.py文件的,但是,在Mac和Linux上是可以的,方法是在.py
文件的第一行加上一个特殊的注释:
- #!/usr/bin/env python3
- print('hello world')
hello.py
以执行权限:$ chmod a+x hello.py
就可以直接运行hello.py
了,比如在Mac下运行:
Python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码。原理如下:
点击Run
按钮,代码被发送到本机正在运行的Python代码运行助手;
Python代码运行助手将代码保存为临时文件,然后调用Python解释器执行代码;
网页显示代码执行结果:
点击右键,目标另存为:learning.py
备用下载地址:learning.py
在存放learning.py
的目录下运行命令:
E:\20180315\work>python learning.py
如果看到Ready for Python code on port 39093...
表示运行成功,不要关闭命令行窗口,最小化放到后台运行即可:
需要支持HTML5的浏览器:
输出
用print()
在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world'
,用代码实现如下:
>>> print('hello world')
print()
函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
- >>> print('The quick brown fox','jumps over','the lazy dog')
- The quick brown fox jumps over the lazy dog
print()
会依次打印每个字符串,遇到逗号“,”会输出一个空格,因此,输出的字符串是这样拼起来的:
print()
也可以打印整数,或者计算结果:
- >>> print(300)
- 300
- >>> print(100 + 200)
- 300
因此,我们可以把计算100 + 200
的结果打印得更漂亮一点:
- >>> print('100 + 200 =', 100+200)
- 100 + 200 = 300
注意,对于100 + 200
,Python解释器自动计算出结果300
,但是,'100 + 200 ='
是字符串而非数学公式,Python把它视为字符串,请自行解释上述打印结果。
输入
现在,你已经可以用print()
输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python提供了一个input()
,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
- >>> name = input()
- hui
当你输入name = input()
并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到>>>
状态了。那我们刚才输入的内容到哪去了?答案是存放到name
变量里了。可以直接输入name
查看变量内容:
- >>> name
- 'hui'
什么是变量?
请回忆初中数学所学的代数基础知识:
设正方形的边长为a
,则正方形的面积为a x a
。把边长a
看做一个变量,我们就可以根据a
的值计算正方形的面积,比如:
若a=2,则面积为a x a = 2 x 2 = 4;
若a=3.5,则面积为a x a = 3.5 x 3.5 = 12.25。
在计算机程序中,变量不仅可以为整数或浮点数,还可以是字符串,因此,name
作为一个变量就是一个字符串。
要打印出name
变量的内容,除了直接写name
然后按回车外,还可以用print()
函数:
- >>> print(name)
- hui
有了输入和输出,我们就可以把上次打印'hello, world'
的程序改成有点意义的程序了:
- name=input()
- print('hello,',name)
运行上面的程序,第一行代码会让用户输入任意字符作为自己的名字,然后存入name
变量中;第二行代码会根据用户的名字向用户说hello
,比如输入hui
:
- E:\20180317\work>python hello.py
- hui
- hello, hui
但是程序运行的时候,没有任何提示信息告诉用户:“嘿,赶紧输入你的名字”,这样显得很不友好。幸好,input()
可以让你显示一个字符串来提示用户,于是我们把代码改成:
- name=input('please enter your name:')
- print('hello,',name)
再次运行这个程序,你会发现,程序一运行,会首先打印出please enter your name:
,这样,用户就可以根据提示,输入名字后,得到hello, xxx
的输出:
- E:\20180317\work>python hello.py
- please enter your name:hui
- hello, hui
每次运行该程序,根据用户输入的不同,输出结果也会不同。联系客服