CIO时代APP微讲座:山东工商学院董付国详述Python的编程要点

2017-03-07 09:04:38  来源:CIO时代网

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

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

\

  一、Python语言的特点和优势

  1.免费开源跨平台

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

  2.易学易用

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

  3.简洁清晰可读性强

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

  4.功能强大

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

  5.生态良好

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

\

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

\

  以上图为例解释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所支持的内置类型

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

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

\

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

\

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

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

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

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

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

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

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

  在写代码时,需养成写注释的习惯,以方便日后查看代码,回顾写代码的思路。也可方便他人调用函数时显示其使用帮助,查看其调用形式及功能。
第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:董付国

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。