2. Python开发【第二篇】:初识Python-2020.09.17
#01 Python开发系列课程概要
一、Linux基础
运维工程师:在Linux上搭建服务、安装、维护软件
网络工程师:解决网络相关情况
软件开发工程师:开发应用程序
应用程序开发好之后,放置在公司的服务器上,别人就可以访问了。
二、Python开发
参考博客http://www.cnblogs.com/wupeiqi/articles/5433893.html
作业:
博客开通地址:http://www.cnblogs.com //注册、申请博客、登陆
我的博客:随笔:所有人在博客中都可以找到的文章
文章:别人找不到,可以通过URL访问
日志:别人找不到、URL也看不到
主要内容:
a、Python基础 //基础、基本数据类型、函数、面向对象
b、网络编程 //消息通过网络进行传输(断电续传)
c、WEB框架 //用来写网站的———>本质是什么?在网络编程的基础上
学东西要清楚它的本质,如果连本质都不知道的话,只能死记硬背,然而人的记忆力是有限的,长时间不学或者不用的话就忘记了;
要形成文档库,有自己的一套记忆方法;
d、设计模块+算法 //如何更快更好地完成任务,其实基础的套路都是差不多的,当经验丰富的时候,就知道什么情况下应该怎么做会更好;
设计时间应该大于开发 一般是架构师设计,初级程序员编写程序;
e、项目阶段
第一章、Python简介
一、Python前世今生
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
最新的TIOBE排行榜,Python占据第三!!!

由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
备注:上述重点字体表示该公司主要使用Python语言开发。
二、开发语言:
1.各种开发语言:
高级语言:Python、Java、 PHP(适用于网站,只写页面)、C#、Go、ruby、C++----->生成字节码
低级语言:C、汇编-------------------------->生成机器码
每种语言的规则不一样
2.机器码和字节码:
机器码是计算机可以直接识别的,010101;
字节码是高级语言先转换为开发者认识的字节码(各语言转化为各自对应的字节码,如python先转化为python的字节码),字节码再转换为机器码;
为什么要有字节码?方便下次使用时,不用再次转化字节码,上次生成的字节码可以直接用,加速程序的执行效率;
3.各种开发语言之间的对比:
C 和 Python、Java、C#等
C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作;
其他语言: 代码编译得到字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行;
C语言,只要做开发,以后一定要自学,可以走得更远,因为C语言是根源,高级语言都要找到C语言继续往下执行,高级语言虽然对低级语言进行分装、总结,但很多时候它是拿低级语言的功能直接用的,没有封装,学高级语言时可能对这些功能不太明白,但是理解了低级语言之后,就可以更好地掌握高级语言;
现在不报C语言班的原因:1、学不会;2、学习成本高;3、学习之后,知识储备找不到工作,C语言往往开发底层的,执行效率高,但是开发效率低;
低级语言往往涉及到内存管理,C语言开发需要自己控制内存(不用的时候需要清空内存,一旦忘记释放,会一直获取,那程序跑一段时间之后电脑就直接跑崩了,内存全被占满了,电脑会非常卡);高级语言开发的时候不需要关注内存问题,因为开发这门语言的人的C语言水平非常高,开辟内存和释放内存的功能已经写成了一个公共的功能,集成在高级语言里面了;所以公司一般先用高级语言开发,后续再慢慢C化。
Python 和 C
Python这门语言是由C开发而来;对于速度:Python的运行速度相较与C,绝逼是慢了;
Python 和 Java、C#等
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持;
对于速度:Python在速度上可能稍显逊色;
Python和Java是一类,PHP是一类;对于百度:页面,PHP(适用于写网页,有局限性,并且可以快速地搭建出来,在国内比较多,但是在国外就不是了);后端,如阿法狗(不是网站,是一个应用程序自己在做计算),Python和Java可以做,即可以写页面,又可以写后台功能;Java比Python的执行效率高,做企业级的应用比Python更成熟,Java能做的事情Python都能做,Python的开发效率高(Python10行,Java100行);硬件的发展速度非常快,相对硬件资源会便宜,加服务器、优化可以提高执行效率。
阿法狗:
学习狗就是IT界的“深度学习”,目前用于人脸识别,语音识别。由于需要大量的数据(比如很多棋谱棋谱),所以和大数据结合紧密,大家最常用的应该就是---汽车驾驶导航。乱走猫呢,就是大名鼎鼎的“蒙特卡洛搜索树”他最大的特别是可以并行,可以理解成同时下很多种可能,把每种可能都分身成一盘新棋来下。
Alpha是希腊字母的第一个。GO是围棋的英文说法,翻译过来应该是:围棋一号。
三、Python的种类:
-
Cpython
Python的官方版本,通常说的Python,指的是CPython,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上(将python文件交给python的解释器生成字节码,再交给c生成机器码)。
-
Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行(将python文件交给java的解释器生成Java对应的字节码,再交给c生成机器码)。
-
IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
-
PyPy(特殊)
Python实现的Python,直接将Python的字节码交给c编译成机器码,不用重新生成字节码。
pypy 这是用CPython开发的Python,速度虽然快,但是现在不是主流,功能还不够完善、稳定。
-
Brython、RubyPython ...
以上除PyPy之外,其他的Python的对应关系和执行流程如下:(执行、虚拟机、兼容语言)(编译器、翻译)

PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

第二章、Python环境
一、安装Python
相关介绍:
Python安装在OS上,
执行操作:
按照Python的规则写一个文件,将文件交给Python软件,Python软件(Python解释器,内存管理)读取文件中的内容(读取到内存,并检查是否按照Python规则写),然后进行转换和执行(涉及底层的处理),最终获取结果。
python.org(官网)下载即可:Python3与Python2相比,跨度很大,不能向下兼容
目前Python2和Python3都在继续更新,Python2慢慢向Python3转化
下载路径,建议安装在C、D盘的根目录下,方便找到
Python2和Python3建议都安装,运行的时候一般默认优先选择的是第一个安装的版本,所以为了方便使用,可以修改名称为python2.exe和python3.exe进行区分,运行时对应写python2或python3;
#环境变量:C:\Python27(把路径加到环境变量里面后(用分号分隔),执行exe文件的时候只需要写一个名字就可以,否则每次执行都需要写全路径)
具体步骤:

二、更新Python

第三章、Python入门基础
1、第一句Python
--后缀名可以是任意的吗?//只有一个文件就可以实现所有的功能时,文件名的后缀可以是任意的;
--导入模块时,必须是.py文件,如果不是.py文件,会报错;
---->所以以后文件名后缀一定要是.py;
2、两种执行方式
在终端,输入python解释器安装目录的全路径 python文件的路径
cmd--->输入python进入python解释器:实时输入并获取到执行结果
3、python解释器
#!/usr/bin/env python 作用:声明python解释器的路径,即python的解释器在Linux的/usr/bin/env路径下;
在Windows上面运行,写不写完全不影响;
在Linux系统上运行时,
---->D:\python35\python 2.py
---->加进环境变量里面之后,可以简化为python 2.py,其中python用于指定python解释器;
//在指定python解释器的情况下,文件的头部可以不写#!/usr/bin/env python
---->./2.py 这种情况下,看不到python的解释器是什么,此时文件的头部必须加#!/usr/bin/env python,并且文件要加可执行权限
4、编码
#-*- coding:utf-8 -*- 作用:告诉python解释器怎么编码你的python文件
当文件里面全都是英文时,不加#-*- coding:utf-8 -*-,python2和python3都可以执行成功;
当文件里面包含有中文时,不加#-*- coding:utf-8 -*-,python2报错,python3可以执行成功;
//原因:计算机最开始只认英文,英文对应的就是ASCII码,ASCII码里面不包含中文,python2的解释器内部默认使用ASCII码进行编码,
所以python2执行全是英文的文件可以执行成功,执行包含有中文的文件时会报错,所以必须在包含有中文的文件头部加#-*- coding:utf-8 -*-,告诉python2的解释器用utf-8编码程序;
python3默认的编码为utf-8,所以python3无需关注。
编码回顾:ASCII:用8个二进制位表示,最多表示256个(起源于美国); 00000001
unicode:用至少16位表示,才能把很多个国家的文字都表示出来; 0010000000000000+
utf-8:能用多少表示,就用多少表示,可以节省内存和磁盘空间; 00000001 00010000000000011110(中文用3个字节来表示)
gbk/gb2312主要是为了处理中文,用2个字节表示中文(windows终端cmd默认的编码是gbk)
unicode作为万国码,unicode可以和其它任何编码之间直接转换,但是其它编码之间不能直接转换,必须通过unicode编码;

备注:要既支持python2.7又支持3.5,#!/usr/bin/env python、#-*- coding:utf-8 -*-,必须放在文件的开头两行;
5、执行一个操作
提醒用户输入:用户名和密码
获取用户名和密码,检测:是否用户名=root,密码=root
正确:登陆成功 错误:登陆失败
python解释器解释的时候,是从上到下一行一行地解释的,当遇到input的时候,会永远等待,直到用户输入了值,就会将输入的值赋值给n,n代指用户输入的内容;
变量:代指某一个变化的值
n1 = input("请输入用户名:")
n2 = input("请输入密码:")
6、变量名
-变量只能由字母、数字、下划线组成
-变量不能由数字开头
-不能使用python的关键字(关键字有:['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内置的东西重复(内置的函数或类)
7、条件语句
1.if基本语句
1 """ 2 if 条件: 3 内部代码块 4 内部代码块 5 else: 6 内部代码块 7 print('....') 8 """
场景一
if 1 == 1:
print("欢迎进入大学1") #缩进可以是1个、2个...空格,但是一定要统一,一般采用4个空格缩进
print("欢迎进入大学2")
#TAB键,代指4个空格
else:
print("欢迎进入公司")
场景二
if 1 == 1:
print("欢迎进入大学1")
print("欢迎进入大学2")
print('end')
2.if语句支持嵌套
1 if 1 == 1: 2 if 2 == 2: 3 print("欢迎进入大学1") 4 print("欢迎进入大学2") 5 else: 6 print("欢迎进入公园") 7 else: 8 print("欢迎进入公司")
3.if...elif
1 age = int(input('请输入年龄:')) 2 if age < 8: 3 print('儿童') 4 elif age < 18: 5 print('青少年') 6 else: 7 print('成年')
注意:n1 = "alex" 赋值
n1 =="alex" 比较
"""
if 条件1:
pass
elif 条件2:
pass
elif 条件3:
pass
else:
pass
print('end')
"""
4.补充:pass
if 1 == 1:
pass #pass代指空代码,无意义,仅仅用于表示代码块
else:
print('烧饼')
8、基本数据类型
1.字符串(引号引起来,字符串里面每个组成部分,叫字符)
name="我是小春"
name='我是小春'
name='''我是小春'''
name="""我是小春"""
name="""woshixiaochun"""
加法(连接):
n1 = "alex"
n2 = "sb"
n3 = n1 + n2
print(n3) #n3 = "alexsb"
乘法(拷贝):
n1 = "alex"
n4 = n1*10
print(n4) #n4 = "alexalexalexalexalexalexalexalexalexalex"
2.数字
age = 13
加减乘除次方余数:
a1 = 10
a2 = 20
a3 = a1 + a2 #加,10+20==30
a3 = a1 - a2 #减,10-20==-10
a3 = a1 * a2 #乘,10*20==200
a3 = a1 / a2 #除,10/20==0.5
a3 = 39 // 8 #获得39除以8得到的商,4
a3 = 2**4 #获得2的4次方,即16
a3 = 39 % 8 #获得39除以8得到的余数,7
应用:判断一个数是奇数还是偶数
a = 13 temp = a % 2 if temp == 0: print("偶数") else: print("奇数")
9、循环
死循环
while 1 == 1:
print('ok')
10、练习题(知识点:if条件语句、while循环、奇数偶数)
1.使用while循环输入 1 2 3 4 5 6 8 9 10;
1 n = 1 2 while n < 11: 3 if n == 7: #不输出7,重点是如何不输出7 4 pass 5 else: 6 print(n) 7 n = n + 1 8 print('----end----')
2.求1-100的所有数的和;
1 n = 1 2 sum = 0 3 while n <= 100: 4 sum = sum + n 5 n = n + 1 6 print(sum) 7 8 print('----end----')
3.输出 1-100 内的所有奇数;
1 n = 1 2 while n < 101: 3 if n % 2 ==1: 4 print(n) 5 else: 6 pass 7 n = n + 1
4.输出 1-100 内的所有偶数;
1 n = 1 2 while n < 101: 3 if n % 2 ==1: 4 pass 5 else: 6 print(n) 7 n = n + 1
5.求1-2+3-4+5 ... 99的所有数的和;
1 n = 1 2 sum = 0 3 while n < 100: 4 temp = n % 2 5 if temp == 1: 6 sum = sum + n 7 else: 8 sum = sum - n 9 n = n + 1 10 print(sum)
6.用户登陆(三次机会重试);
知识点梳理:
1、编程语言:高级语言(7种)、低级语言(2种)
2、Python的种类:javaPython cPython(***) pypy
字节码、机器码
3、Python程序:
①2种执行方式
在终端,输入python解释器安装目录的全路径 python文件的路径
cmd--->输入python进入python解释器:实时输入并获取到执行结果
②以文件形式写Python文件,2行头部信息
#!/uer/bin/env python 申明Python解释器的路径
#-*- coding:utf-8 -*- 让Python解释器编码这个Python文件的时候,用utf-8编码文件
③编码:ASCII unicode utf-8(中文2个字节) gbk(中文3个字节)
④print('asdf')
⑤inp=input(>>>) #input()输入的内容是字符串
>>>hello inp== "hello"
>>>10 inp== "10"
⑥变量名
由字母数字下划线组成;不能以数字开头;不能使用Python关键字;不能使用Python内置的东西
⑦条件语句
基本条件语句、嵌套、if elif else
⑧while循环
while 条件:
....
print('....')
补充:while else
continue 终止当前循环,开始下一次循环
break 终止所有循环

浙公网安备 33010602011771号