龙空技术网

10分钟快速了解Python!看看这门编程语言适不适合你

人民邮电出版社电子书 6321

前言:

目前同学们对“python语言运行快捷键”大约比较珍视,同学们都需要剖析一些“python语言运行快捷键”的相关文章。那么小编同时在网络上网罗了一些对于“python语言运行快捷键””的相关知识,希望大家能喜欢,小伙伴们快快来了解一下吧!

第1章 初识Python

■ Python是一门面向对象的、解释型的编程语言,具有语法简洁、易读、功能强大等特点,对于初学者来说,非常容易上手。而且,使用Python可以完成非常多的需求,比如开发网络爬虫,进行自动化运维、自动化测试、逆向编程、量化分析等。所以,Python这门语言获得了大量IT从业人员以及编程爱好者的喜爱。本章会对Python的基础进行介绍,让读者对Python有一个快速的认识。

1.1 快速了解Python

十分钟快速了解Python

Python是一门非常优秀的语言,于1989年由吉多·范罗苏姆(Guido van Rossum)创立,拥有语法简洁、易于学习、功能强大等多种优势与特点,所以非常受程序员的欢迎。目前Python在最流行的10种编程语言排行榜中排名第1。

1.1.1 Python的起源与背景

1989年圣诞节期间,荷兰人吉多·范罗苏姆打算开发一门新的语言作为ABC语言的继承,随后便以自己非常喜欢的一个喜剧团Monty Python的名字中的Python为这门新语言命名。就这样,在吉多·范罗苏姆的努力下,Python语言诞生了。从一开始,吉多·范罗苏姆在Python语言的设计中就特别在意易读性与可扩展性。比如强制缩进这方面的设计就参照了当时的ABC语言,非常有利于提升程序的易读性。

当然,强制缩进这方面的内容目前还存在着比较大的争议,有些人认为强制缩进让编写变得更加麻烦,而有些人认为强制缩进可以让代码更加整洁。笔者觉得强制缩进是利大于弊的。虽然在写程序的时候,如果不注意程序的缩进,会导致程序出现错误,稍微麻烦了一点,但是缩进可以让程序更加美观,在阅读程序的时候可以一目了然。而且,缩进也是有规律的,最大的规律就是同一层级的代码在同一个缩进幅度上。这样做可以让程序的层次结构变得非常分明,尤其在代码多的时候,如果层次分明,可以更方便开发与管理程序。同样,读者在写Python程序的时候,只需要把握住这一规律,就会发现强制缩进非但不麻烦,而且还会提升开发效率。

在可扩展性方面,Python语言做得也是相当不错的。比如可以将一些常用的功能写成.py文件,然后放到Python安装目录的Lib目录下,这样该文件就成了一个Python的模块,此时若想用对应的功能,直接导入对应的模块即可。比如对应的.py文件的文件名为a.py,在将该文件封装为模块之后,直接通过import a就可以导入该文件,然后就可以使用该文件中所实现的功能了。除此之外,也可以使用C语言去写一些程序文件,写好了之后只需要将对应的C语言文件编译为.so文件,随后就可以直接在Python中引入对应的.so文件并使用了。正因为Python语言在可扩展性方面做得非常好,所以使用Python来实现各种功能都非常适合,这让Python具备了强大的功能。

在1991年的时候,Python第一版正式发行。第一版Python就具备了核心数据类型、函数、模块、异常处理及面向对象等方面的内容。

在接下来的发展中,Python语言获得了很多Python用户的支持与改进。开始的时候,Python用户以邮件列表(maillist)的方式进行沟通和开发,不同的用户使用Python开发出一些功能或改进之后,会将这些改进及新的功能发送给吉多·范罗苏姆。如果吉多·范罗苏姆觉得这些改进或新的功能非常有用,则会将这些改进或新的功能添加到Python或者Python的标准库中。之前提到过,Python的可扩展性非常好,所以,当用户的改进或新的功能添加到Python之后,Python可以继续保留原有的功能,也可以很轻松地对接新的功能。

随后,Python用户越来越多,Python社区也越来越大,Python社区后来也拥有了自己的网站(python.org),之后Python的开发与改进方式也由原先通过邮件列表的方式逐渐向开源的方式转变。

目前,Python已经拥有了大量的模块,通过不同的模块,可以实现各式各样的功能。读者可以通过Python社区的PyPI查找别人开发的模块并使用。当然,用户开发或改进的某个新功能,也可以通过PyPI提交上去,供别的开发者使用。

Python发展到今天,已经深受广大程序开发者的喜爱,应用在各个行业上,比如常见的爬虫、数据挖掘、人工智能等领域,Python都有着极其广泛的应用。

如图1-1所示,2017年,Python在最流行的10种编程语言排行榜中排名第1,也在逐渐地影响着更多的程序员。

图1-1 2017年最流行的10种编程语言

1.1.2 Python的功能

由于Python的可扩展性非常好,所以Python可以实现的功能也非常多。

就目前来说,经常使用Python来处理的领域有简单脚本编程、Web系统开发、爬虫数据采集、数据分析与挖掘、自动化运维等。

除此之外,Python还可以实现很多其他的功能。例如游戏开发、黑客逆向编程、网络编程等方面,使用Python来实现也是非常适合的。

在使用Python开发程序时,尤其是在实现某个专业方向的功能时,通常会使用到Python的模块。一般来说,Python的自带模块(即标准库)就已经非常丰富了,但如果某个自带模块无法实现更深层次的功能,开发者还可以选择使用第三方模块进行开发。如果还无法满足需求,也可以自己开发一些程序封装成模块使用,这些都是很容易实现的。也正因为如此,使得Python能够适应多个专业领域的开发。当然,在初学Python的时候,并不需要大家对Python所有的标准库都非常熟悉,只需要关注与自己专业方向相关的标准库即可。例如,如果主要做网络爬虫,可以重点关注urllib(自带模块)、re(自带模块)、Scrapy(第三方模块),对于其他模块,可以有选择地掌握。总之,一切以需求为导向。

为了让大家能够更好地理解Python的功能,笔者将为大家展示一些自己用Python开发实现的项目案例。

图1-2所示是使用Python实现的乘法口诀表,可以使用循环自动地输出。

图1-2 使用Python实现的乘法口诀表

图1-3所示是使用Python实现的豆瓣自动登录网络爬虫,会自动登录豆瓣网(假如遇到验证码,会自动识别验证码再自动登录),然后爬取个人中心页面日志数据。

图1-3 豆瓣自动登录爬虫(具有验证码自动识别功能)

图1-4所示是使用Python实现的智能预测课程销量的一个程序,使用的是人工神经网络算法。当然,由于实验数据及时间有限,当前的loss值为0.3818,相对比较高,所以准确率不算太高,即此时有61.82%的概率是预测准确的,此时加多训练次数以及加大训练数据数量即可改善准确率。从图1-4中也可以看到,随着训练次数的增加,loss逐渐减小,即准确率逐渐提高。

图1-4 使用Python实现的预测课程销量的程序执行结果

除此之外,还能使用Python做很多有趣的事情。

当然,要想使用Python实现各种各样的功能,首先需要把Python基础打好,本书会为大家全面地呈现Python的基础知识。基础打好之后,方可继续研究深层次的内容。

1.1.3 Python的优势与特色

Python简介及特色

Python作为一门流行的编程语言,有着非常多的优势与特色。下面就来介绍一下Python基本的优势与特色。

1. Python的优势

Python语言有着三大显著的优势,即:

(1)简单易学。

(2)功能强大。

(3)支持面向对象。

首先,如果想入门Python,相对来说是非常容易的,因为Python的编程风格非常简洁。举个例子,想定义一个变量并赋值为19,然后输出该变量的值,如果使用C++进行编写,需要通过如下程序实现:

#include <iostream>
using namespace std;

int main() {
    int i=19;
    cout<<i;
    return 0;
}

而如果使用Python实现,以下程序即可:

i=19
print(i)

都是输出19。

从上面的例子可以看出,相对来说,Python的编程风格是非常简洁的,正因为如此,读者很快就能学会Python。

Python的语法如此简洁,是否意味着Python的功能不够强大呢?

答案当然是否定的。Python的功能非常强大,几乎是一门全能的语言,总结来说,Python可以应用在以下方面。

(1)系统编程。

(2)GUI编程。

(3)开发网络爬虫。

(4)Web开发。

(5)数据分析与挖掘。

(6)机器学习领域。

(7)游戏开发。

(8)自动化运维。

Python的第三个优势就是支持面向对象编程,这个优势可以让Python在开发大型项目的时候变得非常方便。

2. Python的特色

Python常见的一些特点如下。

(1)大小写严格区分。

(2)简单、易学、支持面向对象。

(3)开源。

(4)库非常丰富。

(5)跨平台使用。

(6)解释性语言。

(7)高级语言。

这些特点大家在后续的学习过程中会逐渐感受到,前两个特点不用过多阐述,接下来重点介绍一下后5个特点。

Python是开源的,所谓“开源”,简单理解就是开放源代码。正因为其是开源的,所以可以让更多的人传播和使用Python,并且能够更好地发现其中的Bug并修复,这大大促进了Python的发展。

Python的库是非常丰富的,所谓“库”,读者可以理解为是一系列Python功能的封装,比如要使用Python开发一个网络爬虫,那么就可以使用网络爬虫相关的库。首先导入urllib库,然后直接进行网络爬虫的编写,因在urllib库中封装了大量与网络爬虫相关的功能。再比如,需要使用Python实现一些与操作系统相关的功能,如运行某个shell命令,此时可以使用Python的os库进行实现,因为在os库中封装了大量与操作系统相关的功能。

接触Python后就会发现,正因为Python的库非常丰富,所以使用Python来实现各种各样的功能就变得非常方便了。

另外,跨平台使用也是Python的一大特点。比如,在Windows操作系统写好的Python程序,可以不加修改或者只进行少量修改,就能够在Linux系统、Mac系统及其他操作系统中运行。这一点对于程序开发来说是极为方便的。

此外,Python是一门解释性语言,同时也是一门高级语言,这是它的另外两大特点。

解释性语言区别于编译型语言,解释性语言是在程序运行的时候将程序翻译成机器语言,而编译型语言则需要在程序执行之前进行一个编译的过程,统一地将程序转换为机器语言,然后执行。按常规来说,解释性语言的执行速度一般会比编译型语言慢,但是,学到后面会发现,Python程序在执行的时候会生成一个跟程序对应的PYC格式的文件,这样可以大大提高程序运行的速度。关于PYC格式的文件,此处不需要深入理解,因为在后面会详细介绍到。

高级语言与低级语言不同,一般来说,与人类思维方式更接近的语言称为高级语言,而与机器的运行方式(二进制)更接近的语言称为低级语言。两种类型的语言各有优势,比如,使用高级语言编程,编写的速度自然会更快一些,而使用低级语言实现相同的功能,则相对慢一些。但是,在程序运行的时候,由于低级语言更接近于机器的习惯,而高级语言需要经过解释或编译的过程转换为机器语言,之后再交由机器执行,所以,高级语言的运行速度一般来说会比低级语言的运行速度慢。

这里为大家介绍了Python的三大优势与七大特点,当然,这些并不代表Python的所有优势与特点,其他的优势及特点大家可以在后续的学习中逐步领会。

1.2 在Windows下搭建Python开发环境

Windows下安装Python

要想学习Python程序开发,首先需要搭建好Python的开发环境。所以,需要在自己的计算机上安装好Python,并配置好相应的开发环境。

在此,先为大家介绍如何在Windows操作系统中安装Python并配置相关的开发环境。

1.2.1 操作系统的选择

考虑到目前大部分读者使用的都是Windows操作系统的计算机,而Python的跨平台能力又非常强,所以对于学习Python的读者来说,操作系统并不是学习Python的关键影响因素,所以本书会选择大部分读者熟悉的Windows操作系统进行编写。

在实际的工作环境中,编程人员常常在Windows以及Mac计算机中进行Python程序的开发,当然也会有一部分公司喜欢用Linux系统进行Python程序的开发,所以大家在掌握了Python程序开发的知识之后,未来有机会也可以学习一下Linux系统的使用。

一般来说,在Python自动化运维领域,应该优先选用Linux操作系统进行Python程序的开发。而在其他Python应用的领域,比如网络爬虫、Web开发等方面,使用哪种系统进行Python程序开发并不是那么重要,这也是本书为什么选择Windows操作系统进行编写的原因之一。

1.2.2 在Windows下安装Python

如果希望在Windows计算机上搭建Python开发环境,总体上可以按照以下步骤进行。

(1)选择Python版本。

(2)下载对应版本的Python。

(3)在计算机上安装好Python。

(4)配置好环境变量。

(5)选择一款合适的编辑器(可选)。

下面分别对这些步骤进行详细的讲解。

1. 选择Python的版本

目前,Python版本主要分为两种,一种是Python 2.X,另外一种是Python 3.X。这两种版本的兼容性并不是太好,所以还是推荐大家使用Python 3.X进行学习,毕竟Python 3.X在各相关公司用得越来越多,也必将是未来的发展趋势。

至于使用Python 3.X系列下面哪个具体的版本,并不是那么重要。一般来说,Python 3.4及以上的版本,差别并不是太大,本书选择的版本是Python 3.5.2,当然,读者也可以安装Python 3.6及以上的版本进行学习,影响不大。

2. 下载对应版本的Python

读者可以打开Python官网,然后选择Downloads下面的Windows选项,如图1-5所示。

图1-5 在官网选择Windows版本的Python进行下载

然后,在出现的页面中可以选择相关的版本,比如选择Python 3.5.2版本,如图1-6所示。

图1-6 选择具体的Python版本

这里有很多个文件链接,此时只需要重点关注以executable installer结束的文件即可,代表对应的文件为可执行的安装文件。

在图1-6中,出现了两个相关的文件,即:

(1)Windows x86 executable installer。

(2)Windows x86-64 executable installer。

这两个文件中,(1)为32位的安装包(即x86字样的),(2)为64位的安装包(即x86-64字样的),所以此时需要查看读者的计算机的位数,如果计算机为64位,选择文件(2)进行下载即可。

3. 安装下载的Python

双击下载好的文件(如果无法打开或出现问题,可以右键单击图标,选择“以管理员身份运行”命令,即可解决问题),会出现图1-7所示的界面。

图1-7 安装Python的界面

在该界面中,可以将下方的“Add Python 3.5 to PATH”复选框勾选上,此时会对相关的环境变量进行自动配置。此外,如果不想为所有用户安装Python,也可以取消选择“Install launcher for all users(recommended)”复选框,如图1-7所示。

随后,可以单击图1-7中的“Customize installation”,会出现图1-8所示的界面。

图1-8 选项配置界面

此时可以勾选“pip”与“tcl/ tk and IDLE”复选框。pip工具可以极大地方便模块的安装;IDLE则为默认的Python编辑器;其他的选项部分,如果不需要可以不必勾选。这样可以节省安装时间,随后单击“Next”按钮,会出现图1-9所示的界面。

图1-9 设置Python的安装目录

在图1-9所示的界面中,可以设置Python的安装目录,例如可以将路径设置在D盘下的Python35文件夹中。选项设置方面,可以将第3、4个复选框勾选上,取消其他复选框的勾选,如图1-9所示,然后,单击“Install”按钮即可安装成功。

4. 环境变量的配置

由于在安装的时候勾选了自动添加环境变量,如果不出意外,环境变量此时已经添加好了。但有时由于系统或者其他原因,环境变量可能自动添加不上,所以最好检查一下。

首先,在计算机左下角的运行框内输入“环境变量”后进行搜索,然后在出现的匹配结果中选择“编辑系统环境变量”,如图1-10所示。

图1-10 选择“编辑系统环境变量”

此时会出现图1-11所示的对话框。

图1-11 “系统属性”对话框

此时,需要单击图1-11中的“环境变量”按钮,即可出现环境变量的相关配置对话框,如图1-12所示。

图1-12 “环境变量”对话框

然后选择“me的用户变量”列表框中的“PATH”变量,只需要单击即可选中,如图1-12所示。

在此编辑PATH环境变量的目的,是为了告诉系统Python安装在了什么地方,否则系统无法知道Python在什么地方,所以如果环境变量没有配置好,在cmd命令行下输入“python”,会出现相关错误。

选中“PATH”变量之后,单击图1-12中的“编辑”按钮,则会出现图1-13所示的对话框。

图1-13 “编辑环境变量”对话框

在图1-13所示的对话框中,可以看到左边列表框的每一行均为一个目录地址,当前的第一行和第二行分别为Python的安装目录下面的Scripts目录和Python的安装目录。所以此时的环境变量是自动配好的,如果在所有的行中都找不到Python的安装目录及安装目录下面的Scripts目录,只需要单击右方的“新建”按钮,然后输入相关的目录地址,单击“确定”按钮即可。

单击“确定”按钮之后,该界面会自动退出到图1-14所示的对话框。

图1-14 “环境变量”对话框

然后只需要在图1-14所示的界面中单击最下方的“确定”按钮,即可完成环境变量的配置。

到这一步为止,Python的开发环境基本上已经配置完成了,如果想在编写代码的时候不使用自带的编辑器IDLE,也可以安装其他的编辑器来编写Python程序,比如Notepad++、PyCharm等,都是非常好的选择。读者也可以直接使用Python自带的编辑器IDLE,该编辑器是非常好用的,接下来会使用IDLE编辑器进行编写程序。

5. 使用IDLE编辑器验证Python开发环境是否搭建成功

首先,可以在计算机左下角的运行框处输入“cmd”,打开cmd命令行界面,如图1-15所示。

图1-15 cmd命令行界面

然后在cmd命令行界面中输入“python”,按回车键,如图1-16所示。如果此时能够出现Python版本相关的信息,则说明Python的开发环境已经搭建成功。如果输入“python”并按回车键后出现类似“python不是内部或外部命令,也不是可运行的程序”的提示信息,说明Python环境变量的配置有问题,只需要按照之前讲述的步骤配置好环境变量即可。

图1-16 检验“python”命令能否运行

如果想退出图1-16中的“>>>”区域,返回到cmd命令行输入模式,只需要在“>>>”右边输入“exit()”即可。

在退出到cmd命令行输入模式的时候,再来检测一下pip命令能否运行。输入“pip”后按回车键,如果出现图1-17所示的界面,说明此时pip命令能够成功运行,若此时提示“pip不是内部或外部命令,也不是可运行的程序”之类的信息,则很有可能是安装目录下面的Scripts目录没有配置好环境变量。

图1-17 检验pip命令能否运行

完成了这些之后,接下来可以测试一下IDLE能否正常运行。

在计算机的左下角运行处输入“IDLE”,然后按回车键,如果没有问题,可以直接打开IDLE编辑器,如图1-18所示。在此编辑器中,用户可以自由地编写Python程序。

图1-18 IDLE编辑器

接下来,在IDLE编辑器中编写第一个Python程序并执行,测试一下能否正常运行。可以在“>>>”右侧输入:

print("I like Python!")

然后按回车键,如果可以正常执行,则会输出“I like Python!”的信息,如图1-19所示。

图1-19 在IDLE编辑器中输入Python程序并执行

到此为止,在Windows系统中已经成功搭建好Python开发环境,并测试好Python开发环境是否能正常运行了。走到这一步,读者已经开始踏进Python的世界了。

1.3 在Linux下搭建Python开发环境

Linux下安装Python

一般,Linux系统中默认有Python开发环境,但是目前Linux中自带的Python一般为Python 2.X版本。

如果想在Linux中使用Python 3.X版本,一般不建议卸载自带的Python 2.X版本,因为卸载后会遇到很多麻烦。如果目前要在Linux系统中使用Python 3.X的环境,一般建议在保留自带的Python 2.X版本的基础上,同时安装Python 3.X版本,也就是要保证两个版本共存于该Linux系统中。

这中间会涉及相应的技巧,具体以CentOS 7系统为例进行讲解。

首先,在终端中输入“python”,便可以查到当前自带的Python版本,本例中自带的版本为Python 2.7.5,如下所示:

[root@localhost weisuen]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

接下来,要安装3.X版本的Python可以这样做:先从Python的官网下载Python 3.X,在此选择的版本是Python-3.4.2.tgz,所以可以按如下代码进行下载:

# wget 

下载之后进行相应的解压操作:

# tar -zxvf Python-3.4.2.tgz

随后对其进行配置:

[root@localhost weisuen]# ls 
Python-3.4.2   Python-3.4.2.tgz  公共  模板   视频   图片  文档  下载   音乐   桌面 
[root@localhost weisuen]# cd Python-3.4.2/ 
[root@localhost Python-3.4.2]# ./configure --prefix=/usr/local/ python3

配置完成之后,可以进行make(编译)和make install(安装):

[root@localhost Python-3.4.2]# make 
[root@localhost Python-3.4.2]# make install

安装完成之后,为了能通过直接输入“python”调用刚刚安装的Python 3.4.2,需要建立软链接。在建立软链接之前,一般首先需要备份原来的Python,具体过程如下:

[root@localhost bin]# mv /usr/bin/python /usr/bin/python2bac 
[root@localhost bin]# ln -fs /usr/local/python3/bin/python3 /us r/bin/python

此时,输入“python”即可调用刚刚安装的Python 3.4.2,而输入“python2.7”,则可以调用系统原来的Python 2.X版本,两种Python版本都在Linux中,如下所示:

[root@localhost bin]# python
Python 3.4.2 (default, Sep 3 2016, 20:04:41)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@localhost bin]# python2.7
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

接下来需要配置好Python 3.X对应的pip工具,其实在Python 3.4中会默认带有pip3,所以此时,为了能在终端中输入“pip3”可以直接调用Python 3.4自带的pip3,需要为pip3建立软链接,如下所示:

[root@localhost bin]# ln -fs /usr/local/python3/bin/pip3 /usr/bin/pip3

建立好软链接之后,在终端中输入“pip3”,即可出现如下信息,说明此时在终端中输入“pip3”已经能成功调用pip3。

[root@localhost bin]# pip3

Usage:
  pip <command> [options]

Commands:
  install           Install packages.
  uninstall          Uninstall packages.
  freeze           Output installed packages in requirements format.
  list            List installed packages.
  show            Show information about installed packages.
  search           Search PyPI for packages.
  wheel            Build wheels from your requirements.
  zip             DEPRECATED. Zip individual packages.
  unzip            DEPRECATED. Unzip individual packages.
  bundle           DEPRECATED. Create pybundles.
  help            Show help for commands.
General Options:
  -h, --help         Show help.
  -v, --verbose        Give more output. Option is additive, and can be used up to 3 times.
  -V, --version        Show version and exit.
  -q, --quiet         Give less output.
  --log-file <path>      Path to a verbose non-appending log, that only logs failures. This log is active by default at /root/.pip/pip.log.
  --log <path>        Path to a verbose appending log. This log is inactive by default.
  --proxy <proxy>       Specify a proxy in the form [user:passwd@]proxy.server:port.
  --timeout <sec>       Set the socket timeout (default 15 seconds).
  --exists-action <action>  Default action when a path already exists: (s)witch, (i)gnore, (w)ipe,(b)ackup.
  --cert <path>        Path to alternate CA bundle.

通过以上的步骤,已经在Linux系统中搭建好了Python 2.X与Python 3.X共存的开发环境。但是,由于升级之后会影响某些系统的功能,所以还需要了解一下经常出现的问题及解决方案。

常见问题1:升级Python 3.X后,yum无法使用。

问题描述:

升级Python 3.X后,可能会导致yum无法使用,出现如下信息:

  File "/usr/bin/yum", line 30
     except KeyboardInterrupt, e:
                             ^
SyntaxError: invalid syntax

解决办法:

因为/usr/bin/yum文件中会调用Python,而此时调用的Python为升级后的Python 3.X,由于Python 3.X与Python 2.X有一些差异,所以可以让系统调用Python 2.X,修改一下相应的代码。

编辑文件/usr/bin/yum:

[root@localhost Python-3.4.2]# vim /usr/bin/yum 
#!/usr/bin/python 
import sys 
try: 
    import yum 
except ImportError: 
     print >> sys.stderr, """\ 
There was a problem importing one of the Python modules 
required to run yum. The error leading to this problem was: 
 
   %s 
 
Please install a package which provides this module, or 
verify that the module is installed correctly. 
 
It's possible that the above module doesn't match the 
current version of Python, which is: 
%s 
 
If you cannot solve this problem yourself, please go to 
the yum faq at: 
   
""" % (sys.exc_value, sys.version) 
    sys.exit(1) 
 
sys.path.insert(0, '/usr/share/yum-cli') 
try: 
    import yummain 
        yummain.user_main(sys.argv[1:], exit_code=True) 
except KeyboardInterrupt, e: 
     print >> sys.stderr, "\n\nExiting on user cancel." 
    sys.exit(1)

可以发现,第一行代码默认会调用Python 3.X,所以需要将第一行代码改为:

#!/usr/bin/python2.7

修改之后,保存并退出。

随后,使用yum时就不会再出现该问题。

常见问题2:升级Python后,/usr/libexec/urlgrabber-ext-down出现问题。

问题描述:

升级Python后,有时程序在用到/usr/libexec/urlgrabber-ext-down文件的时候(比如有时用yum之时),可能会出现如下所示的问题:

Downloading packages: 
Delta RPMs reduced 2.7 M of updates to 731 k (73% saved) 
  File "/usr/libexec/urlgrabber-ext-down", line 28 
    except OSError, e: 
                  ^ 
SyntaxError: invalid syntax 
  File "/usr/libexec/urlgrabber-ext-down", line 28 
    except OSError, e: 
                  ^ 
SyntaxError: invalid syntax 
  File "/usr/libexec/urlgrabber-ext-down", line 28 
    except OSError, e: 
                  ^ 
SyntaxError: invalid syntax

由于用户取消而退出。

解决办法:

这个问题的原因跟问题1的原因类似,即程序用到Python的时候无法调用Python 2.X。

所以可以修改/usr/libexec/urlgrabber-ext-down文件里面的代码,具体操作如下:

[root@localhost Python-3.4.2]# vim /usr/libexec//urlgrabber-ext-down 
#! /usr/bin/python 
#   A very simple external downloader 
#   Copyright 2011-2012 Zdenek Pavlas 
 
#    This library is free software; you can redistribute it and/or 
#    modify it under the terms of the GNU Lesser General Public 
#    License as published by the Free Software Foundation; either
#    version 2.1 of the License, or (at your option) any later version. 
…

同样,需要将第一行改为:

#! /usr/bin/python2.7

修改并保存之后,该问题即可解决。

1.4 编写Python程序

如何编写Python程序

至此,我们已经完成了Python开发环境的搭建。接下来为大家讲解如何编写Python程序,此处以Python自带的编辑器IDLE为例进行程序的编写。

IDLE中的Python程序编写,按照程序的行数不同可以分为以下两种情况。

(1)逐行执行的Python程序的编写。

(2)多行Python程序的编写。

此处将分别为大家演示。

首先,打开IDLE之后出现的界面就是逐行执行的Python程序的编写界面。在此,需要一行一行地编写Python程序,每编写一行,按回车键便执行一行。

如果想编写多行Python程序,然后统一执行,也是可以的,此时需要进行多行Python程序的编写。

打开IDLE之后,按“Ctrl+N”组合键调出一个窗口,在该窗口中可以进行多行Python程序的编写,如图1-20所示。

图1-20 多行Python程序的编写

编写好之后,可以按“Ctrl+S”组合键将所编写的内容保存为本地文件进行存储。按“Ctrl+S”组合键之后会调出图1-21所示的界面,此时只需要选择存储的目录,并命名该多行Python程序,之后单击“保存”按钮即可存储。如图1-21所示,我们将Python程序文件命名为first。

图1-21 保存多行Python程序文件

1.5 运行一个Python程序

运行一个Python程序

上面已经学习了如何编写Python程序,接下来为大家讲解如何运行编写好的Python程序。

1.5.1 运行单行Python程序

直接打开IDLE之后,编写的Python程序是逐行运行的,所以若要运行单行Python程序,只需要按回车键即可。

如图1-22所示,每输入一行Python程序并按回车键之后,就会直接运行该单行Python程序,该图中一共运行了3个单行Python程序。

图1-22 运行单行Python程序

相对来说,单行Python程序的运行是比较简单的。

1.5.2 运行源码(多行)Python程序

首先通过按“Ctrl+O”组合键打开需要执行的源码Python程序,若还要执行刚才编写的first.py文件,可以选中该文件,单击“打开”按钮即可,如图1-23所示。

图1-23 打开源码Python程序

打开之后,如果想运行该文件,有两种方式。

方式1:

如图1-24所示,单击菜单栏中的“Run”,然后在下拉菜单中选择“Run Module”命令,便可直接运行该多行Python程序,运行结果如图1-25所示。

图1-24 运行多行Python程序

方式2:

除此之外,也可以通过快捷键“F5”直接运行多行Python程序。同样,需要首先打开对应的多行Python程序,然后按“F5”键,会出现图1-25所示的执行结果。

图1-25 多行Python程序运行结果

需要注意的是:在多行Python程序文件中也可以只放一行Python代码,这里多行的含义是可以将多行Python代码一次性执行,区别于Python Shell模式下的逐行执行方式。

1.6 小结与练习

小结:

(1)高级语言不同于低级语言,一般来说,与人类思维方式更接近的语言称为高级语言,而与机器的运行方式(二进制)更接近的语言称为低级语言。两种类型语言各有优势,比如,使用高级语言编程,编写的速度自然会更快一些,而使用低级语言实现相同的功能,则相对慢一些。但是,在程序运行的时候,由于低级语言更接近于机器的习惯,而高级语言需要经过解释或编译的过程,转换为机器语言之后再交由机器执行,所以,高级语言的运行速度一般来说会比低级语言的运行速度慢。

(2)Python语言有着三大显著的优势,即简单易学、功能强大、支持面向对象。

(3)编辑PATH环境变量的目的,是为了告诉系统Python安装在了什么地方,否则系统无法知道Python在什么地方。所以,如果环境变量没有配置好,在cmd命令行下输入“python”,会出现相关错误。

习题:请判断以下说法是否正确。

判断:多行Python程序文件中只能放置两行及两行以上的Python程序,因为是多行。

参考答案:不正确,多行Python程序文件中,也可以只放一行Python代码,这里的多行的含义是可以将多行Python代码一次性执行,区别于Python Shell模式下的逐行执行方式。

标签: #python语言运行快捷键