作者:赵家刚,狄光智,吕丹桔
出版社:人民邮电出版社
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
计算机编程导论——Python程序设计试读:
前言
Python是一种功能强大的通用型语言,自1989年推出至今已有二十多年的历史,成熟且稳定,它支持命令式编程、面向对象程序设计、函数式编程,包含了完善且容易理解的标准库,还有非常丰富的扩展库,能够轻松完成开发任务。与其他计算机程序设计语言不同的是,Python 采用缩进来定义语句块,使得语法非常简洁和清晰,它的编程效率非常高,使用py2exe工具还可以将Python源代码转换成可以脱离Python解释器执行的程序。Python是一门简单易学的语言,非常适合初学者使用,其在世界范围内的影响力正在逐步上升。作者多年的教学实践表明:与C语言等语言相比,使用Python作入门语言能使学生更快地掌握编程思想和编程方法,能更快地提高学生的编程能力。
本书以实际问题为核心进行组织和编写,以框图为工具来描述问题的解决步骤,最终用Python语言写出程序,旨在培养学生从整体上思考问题和把握问题,并以直观的方式描述问题的解决步骤,训练学生用简洁而快速的方式编写程序。本书以培养学生的编程思想和编程能力为目标,精心设计了各章节的内容以及习题和思考题。书中介绍了程序设计领域的许多基本问题,示范性地用框图表达了解决问题的算法,并用Python语言进行实现,旨在逐步培养学生的编程思想和编程能力。
本书由经验丰富、长期从事软件开发和程序设计教学的教师编写,在例题和习题中包含了许多实用的编程方法和编程技巧,将由易到难、由浅入深的启发式教学方法贯穿于每一章,有利于读者阅读和理解。
本书每章都附有一定数量的习题,可以帮助学生进一步巩固基础知识,也可为学生提供更多思考和锻炼机会。此外还配套了 PPT 课件、源代码、教学大纲等丰富的教学资源,读者可登录人民邮电出版社教学服务与资源网(www.ptpress.com.cn)下载。
本书的参考学时为64学时,其中实验32学时,各章的参考学时见下面的分配表。续表
教师可根据专业需要和学生实际情况调整教学内容。
第1章、第5章、第8章、第12章、第13章以及第7章的7.1节至7.3节由赵家刚编写,第2章和第9章由狄光智编写,第3章、第14章以及第7章的7.4节和7.5节由吕丹桔编写,第4章、第11章和由李俊萩编写,第6章由林宏编写,第10章由孙永科和熊飞编写,第15章由孙永科编写,第16章由熊飞编写。
书中难免有不当之处,敬请读者提出宝贵意见,以便再版时修改。编者2013年6月第1章顺序程序设计
程序设计的目的是让计算机解决实际问题,其方法就是把人解决问题的思想和方法转化为计算机可以执行的程序。本章研究如何用计算机来解决实际问题,并介绍程序设计的一般方法、顺序程序设计的语言基础和解决实际问题的方法。1.1 用计算机解决问题的方法
对于一些较为简单的问题,运用数学知识进行简单计算就能解决;对于一些复杂的问题,则可能还需要用到分支、循环等知识。在生活、娱乐、经济、工程、科研等领域中,人们不仅需要用计算机解决简单问题,而且需要解决较为复杂的问题。
用计算机解决问题的一般方法如下(1)用框图或自然语言描绘出解决问题的步骤。本书用框图描绘。描绘出解决问题的步骤也称为算法。(2)用程序设计语言来实现解决问题的步骤。即用程序设计语言把框图表示的算法翻译成机器能够理解并执行的程序。
由于计算机不能直接执行高级程序设计语言编写的程序,这里的执行是指由翻译或编译程序进行解释执行或编译成机器代码再执行。本书所用的高级程序设计语言是 Python,关于 Python的安装请参阅1.8节和1.9节“Python的使用”。
用高级程序设计语言编写的程序称为源程序。1.2 程序设计方法
用计算机解决实际问题的过程称为程序设计。
程序设计的一般方法为:首先用框图描绘出实际问题的解决方案,然后用程序设计语言表达出来,最后在计算机上执行求得计算结果。
学习程序设计要做如下6件事。(1)学会用框图来描绘解决实际问题的步骤。(2)学习至少一门高级程序设计语言,并熟练使用该语言把自己设计的框图转换为程序。(3)观看现成的框图,体会解决问题的思想。(4)掌握一些常用的基本计算方法,作为搭建自己的框图和程序的基础。(5)通过一些完整的问题实例,掌握从分析问题、绘制框图到程序实现的全过程。(6)多做练习并善于总结经验,包括独立分析问题、设计框图、根据框图写出代码、阅读大量代码、模仿例题解决类似问题。1.2.1 学会用框图来描绘解决实际问题的步骤
框图又称流程图,是表达程序设计思想和程序设计步骤的一种直观的工具。学习程序设计应该首先学会使用框图。下面是框图常用的部件及说明(见图1-1)。图1-1 框图常用部件
框图直观且易于修改,有利于人们表达解决问题的思想和方法。对于十分复杂难解的问题,框图起初可以画得粗放一些、抽象一些,首先表达出解决问题的轮廓,然后再细化,或不细化而直接用高级程序设计语言实现框图;对于较为简单的问题,框图可以画得粗放一些也可以画得细致一些。1.2.2 把框图转换为程序
框图表达了解决问题的思想、方法和步骤,但计算机还不能执行,因而不能得到结果。只有把框图转换为程序,计算机才能执行,从而得到结果。把框图转换为程序需要一种计算机程序设计语言。本书采用简单易学的Python语言。下面举例说明。【问题1-1】用户输入一个三位自然数,让计算机输出百位、十位和个位。
分析:该问题需要把三位数的百位、十位、个位分离出来。三位数除以100,其整数商就是百位数;用去掉百位数的剩余部分除以10,其整数商就是十位数;依次类推,可得到个位数。按此思路可画出如下框图(见图1-2)。
框图:图1-2 求三位数各位数字的步骤
程序:
根据框图写出
#Ques1_1.py
x=input('请输入一个三位数:')
a=x//100
b=(x-100*a)//10
c=x-100*a-10*b
print a, b, c
正确性检验:
执行程序,从键盘输入123,得到输出结果1 2 3
说明程序是正确的。1.2.3 理解程序运行过程
编写的程序由一条一条的语句组成。一般情况下语句按顺序逐条在机器中执行,虽然分支语句、循环语句和函数调用语句等可以改变语句运行的顺序,但是改变后语句仍是逐条顺序执行的。编程者需要充分理解计算机程序在内存中的运行原理和过程,能够在程序运行过程中的任意时刻都清楚语句运行到哪里了,当前的变量连接到了哪个对象。只有清楚这些才能在程序调试过程中及时找到出错位置并修改错误,最终让程序按照设计者的意图执行。1.2.4 掌握一些基本算法
学习程序设计可以从模仿开始。开始阶段可以学习一些常用的基本算法,这样在解决复杂问题之前,有一些基本方法可用。例如,数据的累加算法、累乘算法、求最大值(最小值)算法、求平均值的算法,如何判断某个数是否是素数,如何利用列表解决一维数据问题、二维数据问题,如何利用字符串解决实际问题,如何判断某一年是否为闰年等。本书将通过例子逐步给出这些算法。1.2.5 学习完整的解决问题的过程
学习程序设计是为了帮助我们利用计算机解决一些实际问题,而不是单纯为了学会一种编程语言。因此应该掌握整个程序设计的过程,围绕一些具体的问题实例,通过分析问题,描绘出解决问题的框图,最终实现代码并调试成功。只有通过这样一个完整的程序设计过程,才能充分理解程序设计需要完成哪些工作,并且学会判断什么样的问题适合用计算机来解决。1.3 程序设计的一般过程
程序设计的本质是以数据对象为中心的处理过程再加上输入输出。编写程序解决实际问题的阶段包括分析问题找出解决问题的关键所在、用框图描绘出对实际问题的解决步骤、编写代码、运行调试、正确性检验和观察运行结果。下面通过一个实际问题说明程序设计的一般过程。【问题1-2】已知三角形的两边及夹角,求第三边。
分析:这是解三角形的问题,已知两边及夹角,根据余弦定理可求出第三边。因而可画出如下框图(见图1-3)。
框图:图1-3 解三角形的步骤
程序:根据框图写出
#Ques1_2.py
import math #导入数学模块,从而可以使用模块中的数学函数和数学常量
x=input('输入两边及夹角(度)(以逗号分隔):')
a, b, sita=x
c=math.sqrt(a**2+b**2-2*a*b*math.cos(sita*math.pi/180))
print 'c='+str(c)
说明(1)使用了数学模块中的算术平方根函数sqrt( )和余弦函数cos( )及圆周率pi;(2)函数str( ) 的功能是把数字转换为字符串,“+”可用于合并字符串。
正确性检验:
执行程序,从键盘输入3,4,90
得到输出结果c=5.0
满足勾股定理,说明程序是正确的。1.4 顺序程序设计问题【问题1-3】输入两只电阻的阻抗,把它们并联,求并联后的阻抗。
分析:这是电路的并联问题,根据并联公式1/R=1/r1+1/r2可算出并联后的阻抗。
程序:根据框图(见图1-4)写出
框图:图1-4 并联电阻阻抗的计算步骤
#Ques1_3.py
r1, r2=input('请输入两只电阻的阻抗(以逗号分隔):')
R=1.0/(1.0/r1+1.0/r2)
print('R='+'%6.2f' % R)
说明
'%6.2f'% R是格式化字符串,把浮点数R转换成字符串,保留两位小数(对第3 位四舍五入),占6个字符,不足时,左边补空格。
输入及程序运行结果:
请输入两只电阻的阻抗(以逗号分隔):100,200
R=66.671.5 顺序程序设计基础知识
用Python进行程序设计,涉及许多知识。本节介绍进行顺序程序设计所需的基础知识。分支程序设计和循环程序设计也需要这些基础知识。1.5.1 Python的对象模型
对象是内存中的一个单元,包括数值和相关操作的集合。
对象是Python语言中最基本的概念,在Python中处理的每样东西都是对象。Python中还有一些基本概念,它们的关系如下:(1)程序由模块构成;(2)模块包含语句;(3)语句包含表达式;(4)表达式建立并处理对象。
Python中有许多内置对象可供编程者使用。有些内置对象可直接使用,如数字、字符串、列表、del等,如表1-1所示;有些内置对象需要导入模块才能使用,如正弦函数sin(x)、随机数产生函数random( )等。表1-1 常用内置对象
下面的代码建立了一个整数对象:
>>>110
下面的代码建立了一个字符串对象:
>>>'Python'
下面的代码建立了一个复数对象:
>>>3-2j
下面的代码建立了一个列表对象:
>>>[1,2,3]
下面的代码建立了一个元组对象:
>>>(1,2,3)
下面的代码也建立了一个元组对象:
>>>1,2,31.5.2 Python的变量和引用
变量是由赋值语句创建的,如x=3创建了变量x。
1.变量的创建
一个变量(也就是变量名),如x,当代码第1次给它赋值时就创建了它。
2.引用
在Python中从变量到对象的连接称为引用。下面的语句创建了整数型对象3、变量x,并使变量x连接到对象3,也称变量x引用了对象3。如图1-5所示。图1-5 变量连接到对象
>>>x=3 #创建了变量x,并使变量x引用整型对象3
事实上,变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。
内置对象是可以直接使用的,而变量需要通过赋值语句创建。
第1次给变量赋值则创建了变量,再次给该变量赋值则改变了该变量的引用,如:
>>>a=3 #创建了变量a,并使变量a引用整型对象3
>>>a=9.5 #改变了变量a的引用,使变量a引用浮点型对象9.5
>>>a=(1, 2, 3) #改变了变量a的引用,使变量a引用元组对象(1, 2, 3)
变量在进行运算和输出时,自动使用它所引用的对象的值。
3.共享引用
共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3:
>>>a=3
>>>b=a
>>>a='swfu'
>>>a
'swfu'
>>>b
3
改变了a的引用,但b仍然引用对象3(见图1-6)。图1-6 两个变量引用同一个对象
下面的代码展示了a、b引用同一个列表对象,通过变量b修改对象后的输出情况:
>>>a=[1, 2, 3]
>>>b=a
>>>b[0]=9
>>>b
[9, 2, 3]
>>>a
[9, 2, 3]
在程序设计中要注意共享引用带来的影响。1.5.3 数字
数字是Python中最常用的对象。
1.整数
十进制整数:如0、-1、9、123等。
十六进制整数:需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数。为了告诉计算机这是一个十六进制数,必须以0x开头,如0x10、0xfa、0xabcdef。
八进制整数:只需要8个数字0、1、2、3、4、5、6、7来表示整数。为了告诉计算机这是一个八进制数,必须以0o开头,如0o35、0o11。
二进制整数:只需要2个数字0、1来表示整数。为了告诉计算机这是一个二进制数,必须以0b开头,如0b101、0b100。
2.浮点数
浮点数又称小数,如 15.0、0.37、-11.2、9.3e2、314.15qe-2。
3.复数
复数是由实部和虚部构成的数,如3+4j、0.1-0.5j。
下面是复数的例子:
>>>a=3+4j
>>>b=5+6j
>>>c=a+b
>>>c
8+10j
>>> c.real #复数的实部
8.0
>>> c.imag #复数的虚部
10.01.5.4 字符串
用单引号或双引号引起来的符号系列称为字符串,如'abc'、'123'、'中国'、"Python"。
空串表示为''或 "",注意是一对单引号或一对双引号。
1.字符串合并
字符串合并运算符是“+”,用法如下:
>>>'abc'+'123'
'abc123'
2.转义字符
计算机中存在可见字符与不可见字符。可见字符是指可以在屏幕上显示的字符;不可见字符是指换行、制表符等,通常起一定的控制功能,在屏幕上没有直接的显示。不可见字符只能用转义字符来表示,可见字符也可用转义字符表示。转义字符以“\”开头,后接字符或数字,如表1-2所示。表1-2 转义字符
3.三引号的用法
三引号表示的字符串可以换行,因此可用来表示超长字符串或为程序添加较长的注释。
三引号的用法演示如下:
>>> s='''insert into addressList
(name , sex , phon , QQ , address)
values('王小明' , '男' , '13888997011' , '66735' , '北京市' )'''
>>>print s
insert into addressList
(name , sex , phon , QQ , address)
values('王小明' , '男' , '13888997011' , '66735' , '北京市' )1.5.5 操作符和表达式
常用操作符如表1-3所示。表1-3 常用操作符续表
使用操作符的运算式称为表达式。如 1+2 、x>yandx>z 、(x+y)*z、x+(y*z)等。
在用表达式进行运算时,要善于用小括号指定运算的顺序。
单独的对象也称为表达式,如True 、x等。1.5.6 常用内置函数
python中的常用内置函数如表1-4所示。表1-4 常用内置函数
下面对部分函数进行演示。
1.eval( )
eval( )函数的功能十分强大,既能进行简单转换又能进行复杂计算。
>>>eval('5') #仅指定1个参数,返回表达式的值
5
>>>x, y=eval('3, 4') #返回字符串的元组
>>>x, y
(3, 4)
>>>w=5
>>>r=2
>>>print eval('2*w+r') #使用已定义的变量
12
>>> dict1={'x':1, 'y':2}
>>> dict2={'z': 3}
>>> a=eval('3*x+2*y+1*z', dict1, dict2) #3个参数都指定,返回表达式的值
>>> a
15
2.range( )
range( )函数得到的数列包含初值,不包含终值。初值为0时可以省略。
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(2,10,3)
[2, 5, 8]
3.ord( )和chr( )
ord( )函数用于返回字符的编码,chr( )函数用于返回指定编码的字符。
>>> ord('A')
65
>>>chr(97)
'a'
4.set( )
set( )函数把对象转换为集合。
>>> basket=['apple', 'orange', 'pear', 'apple']
>>> fruit=set(basket)
>>> fruit
set(['orange', 'pear', 'apple'])
>>> 'apple' in fruit
True
>>> 'peach' in fruit
False
5.int(x [, d])
int( )函数返回数字x的整数部分,或把d进制的字符串转换为十进制数。
>>> int(12.8)
12
>>> int('11', 2)
3
>>> int('10', 8)
8
>>> int('f', 16)
151.5.7 对象的删除
Python中,del语句用来删除一个对象,并释放对象所占资源。del的用法演示如下:
>>>a=[1, 2, 3]
>>>del a[1]
>>>a
[1, 3]
>>>x=5
>>>x
5
>>>del x #此后x就不存在了
>>> x
Traceback (most recent call last):
File "
x
NameError: name 'x' is not defined1.5.8 输入/输出
在Python中进行程序设计,输入是通过input( )函数或raw_input( )函数来实现的。input( )的一般格式为:
x=input('提示:')
该函数返回输入的对象。演示如下:
>>> x=input('x=')
x=5.2
>>> x
5.2
>>> x=input('x=')
x=12 , 4
>>> x
(12, 4)
>>> x,y=input('x, y=')
x, y=2, 3
>>> x
2
>>> y
3
>>> s=input('s=')
s='China'
>>> s
'China'
>>> x=input('x=')
x=(3,4)
>>> x
(3, 4)
>>> x=input('x=')
x=[2,-2]
>>> x
[2, -2]
input( )函数可输入数字、字符串和其他对象。
raw_input( )函数会把用户输入的对象加上一对单引号或一对双引号,然后返回给用户。因此用户得到的是字符串。演示如下:
x=raw_input('x=')
x=5.2
>>> x
'5.2'
>>> x=raw_input('x=')
x=China
>>> x
'China'
>>> x=raw_input('x=')
x='China'
>>> x
" 'China' "
>>>
>>> x=raw_input('x=')
x=(3, 4)
>>> x
'(3, 4)'
在Python中进行程序设计,输出是通过print语句来完成的。print语句的一般格式为:
print 对象1, 对象2……对象n
输出的结果中,多个对象之间有一个空格作为分隔,末尾输出一个换行符,产生换行。
如:
>>>print 1+2
3
>>>print 1, 2, 3
1 2 31.5.9 模块的导入
导入1个模块之后,就能使用模块中的函数和类。导入模块使用import语句,有3种用法。
1.导入整个模块
一般格式为:
import 模块名1[, 模块名2[,...]]
模块名就是程序文件的前缀,不含“.py”,可一次导入多个模块。导入模块之后,调用模块中的函数或类时,需要以模块名为前缀,程序的可读性好。如:
>>> import math
>>> math.sin(0.5)
0.479425538604203
2.与from联用导入整个模块
一般格式为:
from 模块名 import*
这种方式导入模块之后,调用模块中的函数或类时,仅使用函数名或类名,简洁但程序的可读性稍差。如:
>>> from math import *
>>> cos(0.5)
0.8775825618903728
3.与from联用导入1个或多个对象
一般格式为:
from 模块名 import 对象名1[, 对象名2[,...]]
这种方式只导入模块中的1个或多个对象,调用模块中的对象时,仅使用对象名。如:
>>> from math import exp , sin, cos
>>> exp(1)
2.718281828459045
>>> sin(0.5)
0.479425538604203
>>> cos(0.5)
0.8775825618903728
Python中的常用模块如表1-5所示表1-5 常用模块1.6 顺序程序设计基础知识的应用【例1-1】输入平面上的两个点,计算两点间的距离。
分析:根据解析几何知识,两点间的距离可以由两点间的距离公式求得(见图1-7)。
框图:图1-7 求两点间距离的步骤
程序:
#Exp1_1.py
import math
x1, y1=input('x1, y1=')
x2, y2=input('x2, y2=')
d=math.sqrt((x2-x1)**2+(y2-y1)**2)
print 'd=', d
输入及程序运行结果:
x1,y1=1, 2
x2,y2=5, 3.4
d=4.237924020083418【例1-2】计算昨天和明天的日期。
分析:该例题需要获得日期型数据今天的日期,可通过datatime 模块中的 date.today( )方法获得。通过 datetime 模块中的 timedelta( )方法获得 1 天的日期类型,与今天的日期进行运算(见图1-8)。
框图:图1-8 计算昨天和明天日期的步骤
程序:
#Exp1_2.py
import datetime
today=datetime.date.today( )
one=datetime.timedelta(days=1)
yestoday=today-one
tomorrow=today+one
print yestoday,today,tomorrow
程序运行结果:(2012-08-25 2012-08-26 2012-08-27)【例1-3】任意输入三个英文单词,按字典顺序输出。
分析:三个单词输入后,需要比较两个字符串的大小,需要时交换两个字符串(见图1-9)。
框图:图1-9 按字典顺序输出单词的步骤
程序:
#Exp1_3.py
s=input('x,y,z=')
x, y, z=s.split(',') #把字符串用逗号进行分离,返回子串构成的列表
if x>y:
x, y=y, x #交换x, y的值
if x>z:
x, z=z, x
if y>z:
y, z=z, y
print x, y, z
输入及程序运行结果:
x, y, z='bin,oct,hex'
bin hex oct【例1-4】输入一个二元一次方程组,解方程组。
分析:根据代数知识,二元一次方程组的解是由方程组的4个系数和2个常数决定的。用加减消元法,把方程组等号左端区域变成对角形,从而得到解(见图1-10)。
从
变为
即把a 和a 变为0。用2行3列的列表[ [ a , a , a ], [a 1001000102 , a , a ] ]来存储这6个数,只要把列表的一行乘以一个数加到101112另一行就达到目的。
框图(见图1-10):图1-10 加减消元法解二元一次方程组
程序:
#Exp1_4.py
a=[[0, 0, 0], [0, 0, 0]] #定义一个列表
s=input('请输入第1个方程的3个数:')
a[0][0], a[0][1], a[0][2]=s
s=input('请输入第2个方程的3个数:')
a[1][0], a[1][1], a[1][2]=s
#第1行乘以-a[1][0]/a[0][0]加到第2行
d=-a[1][0]/a[0][0]
a[1][0]=a[1][0]+d*a[0][0]
a[1][1]=a[1][1]+d*a[0][1]
a[1][2]=a[1][2]+d*a[0][2]
#第2行乘以-a[0][1]/a[1][1]加到第1行
d=-a[0][1]/a[1][1]
a[0][0]=a[0][0]+d*a[1][0]
a[0][1]=a[0][1]+d*a[1][1]
a[0][2]=a[0][2]+d*a[1][2]
print 'x=', a[0][2]/a[0][0]
print 'y=', a[1][2]/a[1][1]
输入及程序运行结果:
请输入第1个方程的3个数:1,2,3
请输入第2个方程的3个数:4,9,7
x=13.0
y=-5.01.7 代码块的缩进
Python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。Python解释程序也是依靠这种缩进对代码进行解释和执行的。同时,代码块的合理缩进也能帮助程序员理解代码,并养成良好的编程习惯。下面给出一个合理缩进的例子。其中列表的使用、循环的使用将在后面章节中进行讲解,这里先认识一下。【例1-5】解决行列式的输出问题。
#Exp1_5.py
a=[[111, 2, 30], [4, 50, 6], [7, 8, 9]]
s1=''
print '______1 ______'
for x in a:
s=''
for y in x:
s1='%6d' % y
s=s+s1
print s
print '______2 ______'
i=j=0
while i<3:
j=0
s=''
while j<3:
s1=str(a[i][j])
s1=s+(s1+' '*(6-len(s1)))
j=j+1
print s
i=i+1
print '\n用了两种方法\n'
程序运行结果:
______1______
111 2 30
4 50 6
7 8 9
______2______
111 2 30
4 50 6
7 8 9
用了两种方法。1.8 在Ubuntu操作系统中使用Python
在Ubuntu操作系统中,Python作为系统的组成部分已经被安装好,并且Ubuntu的一些功能是使用 Python 编写的,因此可直接使用 Python。如果需要安装某版本的 Python ,可到http://www.Python.org下载。1.8.1 交互编程窗口
在终端(命令窗口)中输入Python会启动Python2.7,输入Python3会启动Python 3.2。本书使用的是Python2.7.3,启动方法如下。(1)打开终端。(2)输入Python,就会启动Python2.7.3,且自动打开交互编程窗口,进入友好的交互编程状态,如图1-11所示。图1-11 启动Python
在交互编程状态,可输入一些简短的语句直接执行。在交互状态下,输入变量名或表达式,会直接显示其值,因而可以当计算器使用。还可用help方法显示对象的帮助信息。在交互状态下开展Python语言的学习、验证、理解性试验十分方便,许多其他语言都无法与之相比。下面给出几个代码的例子。
>>>1+1/2+1/3
1.8333333333333333
>>> (2+3j)*(3-4j)
(18+1j)
>>>2**3
8
>>>import math
>>>math.sin(30*math.pi/180)
0.49999999999999994
>>>import random
>>>random.random( )
0.55232296831935
>>>random.random( )
0.10076076140837642
>>>random.randrange(1, 100 )
7
>>>x='abc123'
>>>x[0]
'a'
>>>s=[1, 3, 5, 7]
>>>s[1]
3
>>>sum(s)
16
>>>min(s)
1
>>>k=s[:]
>>>k
[1, 3, 5, 7]
>>>del(s[0])
>>>s
[3, 5, 7]
>>>k
[1, 3, 5, 7]1.8.2 在交互式窗口中执行Python源程序
执行Python源程序的方法如下。(1)用文本编辑器录入Python程序,存盘,一般以py作为文件名后缀。(2)在交互式窗口中用execfile(程序文件名),执行Python源程序。
>>>execfile(程序文件名)1.8.3 在操作系统的控制台上执行Python源程序
执行Python源程序的方法如下。(1)用文本编辑器录入Python程序,存盘,一般以py作为文件名后缀。(2)在命令窗口中输入“Python文件名”就能执行Python源程序,如图1-12所示。图1-12 编写程序、执行程序
如果程序有错误或需要修改程序,在修改后按Ctrl+S组合键保存,然后转到命令窗口中再次执行。1.8.4 在集成编程环境IDLE中编写和执行程序
在命令窗口中输入IDLE则启动了集成编程窗口IDLE。IDLE的窗口称为PythonShell,同样可输入一些简短的语句直接执行程序,可用help方法显示对象的帮助信息,还可自动显示对象的属性和方法。这是一个更加友好的交互编程界面。
1.编写程序文件
在idle中编写程序的步骤如下。(1)按Ctrl+N组合键或用File菜单如图1-13所示打开新窗口,就新增了一个窗口,可用来输入代码,如图1-14所示。图1-13 打开新窗口的方法图1-14 新增加的编程窗口(2)输入代码并存盘。
在新增的窗口中输入代码,并按Ctrl+S组合键或用菜单保存。以“py”作为文件名后缀。存盘后的窗口,如图1-15所示。图1-15 文件存盘后的窗口
2.执行程序
文件保存后,按F5或用Run菜单,就能执行程序。程序的执行结果显示在IDLE窗口Python Shell中,如图1-16所示。图1-16 执行程序
3.执行程序后检查变量的值
执行程序后,仍可在PythonShell中检查程序中变量的值。
>>>i
61.8.5 集成编程环境IDLE中的对象成员提示
在 IDLE 环境中编程时,对象名后输入“·”将出现成员的提示,按空格键则输入提示的成员。如图1-17所示。图1-17 对象的成员提示1.9 在Windows操作系统中使用Python
在Windows中使用Python,需要下载并安装Python,可参照下面的步骤。(1)打开浏览器,访问http://www.Python.org。(2)单击Download链接。(3)下载Python2.7.xWindows installer。(4)下载后,双击下载的文件进行安装。
安装后在 Windows 的开始菜单中能找到 Python(command line)及 IDLE(Python GUI)的启动条,如图1-18所示。两者的用法与Ubuntu中一样,在1.8节中已经介绍过。图1-18 Windows中Python的启动1.10 使用帮助
使用Python的帮助对学习和开发都是很重要的。在Python中可以使用help( )方法来获取帮助信息。使用格式如下。
help(对象)
下面分3种情况进行说明。
1.查看内置对象的帮助信息
>>>help(open)
如图1-19所示。图1-19 查看内置对象的帮助信息
如果在Ubuntu的命令行下查看帮助信息,需要先退出,可按Q键。
2.查看模块中对象的帮助信息
查看模块中对象的帮助信息,首先要导入模块。
>>>import os
>>>help(os.getcwd)
>>import图1-19 查看内置对象的帮助信息
sys
>>>help(sys.path.append)
>>>help(sys.path)
查看模块中对象的帮助信息,如图1-20所示。
试读结束[说明:试读内容隐藏了图片]