名校公开课 加入小组

965个成员 2994个话题 创建时间:2011-10-19

山东工商学院董付国详述Python的编程要点

发表于 2017-03-24 2307 次查看

山东工商学院董付国详述Python的编程要点

3月2日,山东工商学院计算机科学与技术学院副教授董付国在CIO时代APP微讲座栏目作了题为《Python的编程要点》的主题分享,对Python编程语言进行了详细的介绍。

山东工商学院董付国详述Python的编程要点

一、Python语言的特点和优势

  • 1.免费开源跨平台

免费开源是备受人们喜爱的,跨平台也备受人们喜爱,如Windows平台、各种版本的Linux、苹果机、Android手机均可使用Python语言。

  • 2.易学易用

与C语言、C++、Java等语言相比,Python语言更容易上手,几日内便可入门,一两个月之内便可写出很好的程序。

  • 3.简洁清晰可读性强

代码简洁清晰,非常漂亮。

  • 4.功能强大

本身有大量内置对象、标准库对象。

  • 5.生态良好

大量涉及到各领域的专业扩展库,有很多狂热的Python支持者与热爱者开发出很多可用的扩展库。

山东工商学院董付国详述Python的编程要点

以上图为例对代码进行解释,第一行是导入random模块,是一个标准库;第二行的range(20)是返回的一个range对象,range对象包含了从0到20的数字,包括0但不包括20,是一个左闭右开的区间;第三行的random.shuffle(x),shuffle是随机打乱顺序,像扑克牌洗牌一样。接着对打乱的数字进行排序,在Python中直接用x.sort(),对数字进行排序,其中可以为sort加一个参数,实现降序排列,制定排序规则,实现更复杂的排序功能。

山东工商学院董付国详述Python的编程要点

以上图为例解释python语法的简洁清晰,第一行的意思为交换两个变量的值,它属于Python中的序列解包用法。一般而言,将两个变量的值进行交换,需借助于一个中间变量,如c=a,a=b,b=c。但在Python语言中不需要中间变量,a,b=b,a便可;第二行中相当于数学中的不等式,在Python中的关系运算符可以连着用,1<2<3<4等价于1<2and2<3and3<4,可省掉很多字符;第三行是一个列表,其中有1,2,3的元素,用“in”关键字来查看3是否在列表中,在时返回“true”,不在时返回“false”;第四行是导入了randint,接着使用列表推导式生成了10个介于1到1000之间的数字。

山东工商学院董付国详述Python的编程要点

上图所说明的问题是Python对于代码布局的要求非常严格,可读性强,要求程序不仅要正确,还要漂亮。如代码的缩进,来体现代码的业务逻辑关系,如果缩进不正确,意味着程序是错误的。

山东工商学院董付国详述Python的编程要点

上图为Python所提供的运算符,比其他语言丰富,且每一个运算符的功能也强大于其他语言。如“+”不仅可用作算术的加法运算,还可将两个列表、元素或字符串连接起来。“-”不仅可用作算术减法,还可用作集合差集、相反数等。其中,隐含着一个知识,即Python内置支持集合以及各种运算,支持复数及加减乘除等各种运算。

二、Python所支持的内置类型

int、float、complex是数字,整数、实数和复数;str、bytes、ascii是字符串和字节串;接着是常用的数据结构,如列表、元素、集合及冻结的集合;range、map、zip等是对象及函数,除第一个外,其他都具有惰性求值的特点。如map函数返回的是map对象,其中访问过的元素无法再次访问,zip、filter等也不支持随机访问,不支持使用下标访问其中的任意一个元素。

Python中可支持非常大的数字,如99999的99次方,可直接算出结果,无任何障碍。

山东工商学院董付国详述Python的编程要点

上图简单列出Python常用的扩展库,第一行与数字、统计、随机有关;第二行与字符串及表达式有关;第三行与系统编程有关,当然在系统运维中也会用到。

山东工商学院董付国详述Python的编程要点

上图为常用的Python扩展库。第一行与图形图像有关,pillow库是做数字图像处理常用的库,pyopengl是封装图形学的库,pygame是做游戏策划、游戏处理及简单的游戏编程。第二行是科学计算可视化领域应用较多的,pyopencv在计算机视觉图像处理利用较多。第三行是深度学习用的较多,尤其是tensorflow在深度学习领域应用非常广泛,pySpark在大数据领域应用比较广泛。第四行是在密码学领域应用非常广泛。第五行是在网页编程用的较多。第六行是在GUI开发常用的扩展库。第七行在自然语言处理、中英文分词中用的较多。第八行在系统运维中用的较多。第九行在网络爬虫中用的较多。第十行是在数据库访问领域用的较多。第十一行是在安全编程领域用的较多。最后一行用于把Python程序打包成可执行文件。

Python的内存管理与其他语言不同,它是基于值的自动内存管理方式,这种方式在变量中并不直接存放值,而是存放值的引用。而C语言中每个变量是直接存储值的。

在Python中编程,不需要提前声明一个变量,如果需要一个变量,则需直接对其赋值,会自动创建变量,尽管不需要说明每一个变量的类型,但在每一个瞬间,每一个变量均属于一个特定的类型。

在列表对象使用过程中需谨慎,列表对象功能虽然很强大,但负担也很重。使用过程中应尽量避免在列表非尾部位置进行元素添加或删除操作。列表的in操作的时间复杂度为O(n),而集合和字典的in操作是常数级的。

一般而言,操作一个文件分三步走:第一步,打开文件;第二步,操作文件;第三步,关闭文件。操作文件包括读写修改等,在操作文件的过程中需特别注意确定文件是否关闭,由于代码问题、磁盘空间不足、网络突然中断等问题会出现异常。如果使用上下文管理语句with,则可有效避免这个问题。

在解决问题时,可能会有很多种实现的方法。首先要考虑算法级别的优化,以及语言机制的优化,如选择不同的数据类型,可能会对程序的执行速度产生影响。在创建字典后,获取信息进行重新设置。

在使用Python编程时,可考虑使用一些机制,在机制层面上对代码进行优化。

在写代码时,需养成写注释的习惯,以方便日后查看代码,回顾写代码的思路。也可方便他人调用函数时显示其使用帮助,查看其调用形式及功能。

发表回复
功能维护升级中,维护完成完后将再次开放,非常抱歉给您学习造成的不便。