Python-基础
一、Python语言的发展史
目前python主要的应用领域:
云计算、科学计算、系统运维、金融行业(量化交易,金融分析,在金融工程领域)、图形GUI。
python是一门什么样的语言?
解释型语言与编译型语言
动态语言和静态语言
强类型定义语言和弱类型定义语言
python是一门动态解释型的强类型定义语言
python的优缺点
优点:
1、 python的定位是优雅、明确、简单,所以python程序看上去总是简单易懂,初学者学python,不但入门容易,而且将来深入下去,可以编写哪些非常非常复杂的程序。
2、 开发效率非常高,python有非常强大的第三方库,基本上你想通过计算机实现任何功能,python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子
3、 高级语言---当你用python语言编写程序的时候,你无需考核诸如如何管理你的程序使用的内存一类的底层细节。
4、 可移植性---由于他的开源本质,python已经被移植在许多平台上(经过改动使他能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有python程序无需修改就几乎可以在市场上所有的系统平台上运行。
5、 可扩展性---如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后再你的python程序中使用它们。
6、 可嵌入性----你可以把python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
缺点:
1、 运行速度慢,python的运行速度相比C语言确实慢很多,和JAVA相比也更慢一些,因此这也是很多所谓的大牛不屑于使用python的主要原图,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,但是python在大多数情况下已经能够蛮子你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,那建议你使用C去实现。
2、 代码不能加密,因为Python是解释型语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用python来实现。
3、 线程不能利用多CPU的问题,这是python被人诟病最多的一个缺点,GIL即全局解释器锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,python的线程是操作系统的原生线程。在linux上为pthread,在windows上为win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行,关于这个问题的折中解决方法,我们在以后线程和进程的章节里再进行详细讨论。
python解释器
当我们编写python代码时,得到的是一个包含python代码的以.py为扩展名的文本文件。要运行代码,就需要python解释器去执行.py文件。
python解释器种类:
CPython: 官方版本的解释器,这个解释器是用于C语言开发的,所以叫CPython,在命令行下运行python就是启动CPython解释器。
IPython: 是基于CPython之上的一个交互式解释器
PyPy:PyPY采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度
Jython:Java平台上的python解释器
IronPython
小结: Python的解释器很多,但是用最广泛的还是CPython。如果要和java或.net平台交互,最好的办法不是用Jython或者IronPython,而是通过网络调用来交互,确保各程序之间的独立性
Python发展史
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。
Python 2.4,诞生于2004年,同年目前最流行的WEB框架Django诞生,目前主流的版本是python 2.7,这个版本官方支持到2020年。
注意: 3.0的特性不支持2.x的版本。
二、第一个Python程序
指定解释器
在.py结尾的文件中指定解释器 #!/usr/bin/env python,告送使用python的解释器。
#!/usr/bin/pythony与#!/usr/bin/env python的区别:
#!/usr/bin/python为锁死状态,不能通过环境变量来运行,一般不建议使用。
#!/usr/bin/env python指定使用python环境变量,一般建议使用
第一个python实例

三、变量
什么是变量?
定义:用于存储数据的容器,方便程序中调用。
例题: 创建一个变量name,再创建一个变量name02,变量name02=变量name,然后改变name的值为PaoChe Ge,分别打印变量name和name02的值

图解过程:

变量的定义规则:
1、变量名只能是字母、数字或下划线的任意组合
2、变量名的第一个字符不能是数字
3、以下关键字不能为变量:and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield.
四、字符编码
字符编码
python解释器在加载.py文件的代码时,会对内容进行编码(默认为ascill)
ASCll(美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即: 2**8 = 256 -1,所以ASCll码最多只能表示255个符号。

ASCII 最早开始计算机的字符编码,原始编码
中文字符编码:GB2312(1980年)----------àGBK(1995年) -------------àGB18030(2000年,支持2万7个中文)
国际字符编码: Unicode 2bytes(缺点是英文字符需要2个字符集)---------àutf-8 en:1byte, zh:3bytes
五、注释
注释
1、单行注释: # 当行注释
2、多行注释: '''被注释的内容'''
六、if...elif...else判断
用于流程语句的判断,如果条件成立,则执行。如果条件不成立,则跳出。
if 条件:
代码
elif 条件:
代码
else:
代码
实例:

七、while循环
用于流程语句的循环,如果条件成立,则流程控制循环执行。
while 条件:
代码
实例:

八、for迭代循环
用于流程语句的迭代循环
格式:
for iterating_var in sequence:
statements(s)
实例:

题目一、编写登陆接口
1、输入用户名密码
2、认证成功后显示欢迎信息
3、输入三次后锁定。
题目二、多级菜单
1、三级菜单
2、可依次选择进入各子菜单
3、所需新知识有: 列表、字典。

浙公网安备 33010602011771号