1用途
(1)适用场景,Python适合开发哪些类型的应用:
首选是网络应用,包括网站、后台服务等等;
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
另外就是把其他语言开发的程序再包装起来,方便使用。
(2)不适用场景
贴近硬件的代码(首选C) 移动开发 游戏开发(C/C++)
2优缺点及对比
(1)优点
优雅,明确,简单。这也是进行python编程的理念。
Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
(2)缺点
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器码,翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。但大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,用户不会感觉到1.001秒和1.1秒的区别。 CPU都很快,但网络和硬盘却较慢,运行速度的瓶颈不在于python代码,而在于数据库的操作和网络调用。
第二个缺点就是代码不能加密。如果要发布Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
这个缺点仅限于要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少,靠网站和移动应用卖服务的模式越来越多,后一种模式不需要把源码给别人。
(3)和其他语言的对比
C:类型:编译成机器码;运行速度:非常快;代码量:非常多; Java:类型:编译成字节码;运行速度:快;代码量:多; Python:类型:解释执行;运行速度:慢;代码量:少;
二 基本概念与技术重点整理
三 使用实践及案例
1 安装python
Python目前主要有两个版本,2.x版和3.x版,两个版本不兼容。
Mac 上默认已安装的python版本为2.7,若 安装新版本需通过下载: https://www.python.org/downloads/
点击下载的安装包安装即可。
可通过命令: python 查看python 版本。
要查看python 3.X是否安装成功,需要在命令行输入 :
python3
查看。
在输入python和python3之后,就会进入python交互环境,此时如果退出 该 交互环境,可使用: 输入 exit(),输入quit() 和 ctl+d 三种的任何一种,均可退出python交互环境。
2 python解释器
写python代码时,生成的文件为.py拓展名的文件,如果要运行该文件中的代码,就需要使用python的解释器进行解析编译运行。
(python解释器是开源的,可以由自己自行设定,现在也有不少不错的python 解释器)
Python的解释器很多,最常用的的是Cpython,下载安装好python3.5后,会自动安装的,一个官方的 python 解释器,该解释器是由C语言开发的。
如果要和Java或.Net平台交互,最好的办法不是用Jython(运行在Java 平台的python编译器,可直接把python变异成java字节码执行)或IronPython(运行在微软.net 平台的 python 解释器,可以直接把python代码编译成.net 字节码),而是通过网络调用来交互,确保各程序之间的独立性。
3 命令行模式和Python交互模式
命令行下,可以执行python进入Python交互式环境,
也可以执行python someName.py 运行一个.py文件 (命令行模式)
区别
Python交互式环境会把每一行Python代码的结果自动打印出来,但是,直接运行Python代码却不会。
4 直接运行py文件
能不能像.exe文件那样直接运行.py文件呢?在Windows上不行,但在Mac和Linux上可以,方法是在.py文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3
print('hello, world')
然后,通过命令给hello.py以执行权限:
$ chmod a+x hello.py
就可以直接运行hello.py了。