学习如何使用 Python 程式语言

教程说明:


本书作者:Chu-Siang Lai(冻仁翔) 本书来源:https://www.gitbook.com/book/chusiang/using-python/details

阅读需知:

这是一份适合程式设计初学者,或是 Python 初学者的正体中文文件。

在阅读本手册前,您也可以先学习以下教程:

《python基础教程》

关于Python:

Python, 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,在1991年发行第一个公开发行版,Python 源代码遵循 GPL(GNU General Public License)协议。Python的语法简洁而清晰,具有丰富和强大的类库。我们也称Python语言为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

Python的特点:

  • 简单:Python是一种代表简单主义思想的语言,它使你能够专注于解决问题而不是去搞明白语言本身。
  • 容易上手:Python极其容易上手,因为Python有极其简单的语法。
  • Python是免费且开源的:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
  • 高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
  • 具有可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
  • 具有解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
  • 运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。

    在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

  • 是面向对象的:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
  • 具有可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
  • 具有可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
  • 有丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、 线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
  • Python的代码是规范的:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

Python的优点与缺点:

优点:

Python 是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。因而得到了广泛应用和支持。

缺点:

  • 强制缩进
  • Python 用缩进来区分语句关系的方式还是给很多初学者带来了困惑,有时一些很有经验的Python程序员,也可能陷入陷阱中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分辨的。
  • 单行语句和命令行输出问题
  • 在Python中很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

更多与Python有关的内容可以参考:

《Python学习》

《Python项目》

《Python学习资源》

文章目录:

  1. 安装 Python 直译器
  2. Python 推荐的开发环境
  3. Python 处理数值资料
  4. Python 使用变数
  5. Python 处理字串资料
  6. Python 处理 List 及 Tuple 资料
  7. Python 处理 Dictionary 资料
  8. Python 控制程式执行流程
  9. Python 使用函式
  10. Python 程式写作的守则和技巧

    1. Python 使用 iterator 少用 index 增加程式的可读性
    2. Python 使用 generator 节省记忆体和组合相似的操作
    3. Python 少用 else 让程式逻辑更清楚
    4. Python 用 with 管理物件的前置和后置处理以隐藏资源管理的细节
    5. Python 用 Compose Method 让程式更易读
    6. Python 遵守物件不可变的准则以减少犯错的机会


领取免费资料

扫描下方二维码或打开微信搜一搜“w3cschool编程狮”关注公众号回复关键词【Python123】或者【Python资料包】免费领取 Python 学习资料,包含软件安装包,思维导图等



温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }