Python复习题Python语法基础小结(2010-09-08)1python的基础数据类型类型类型名例子整数int1,-5,0xab实数float2.3,7.8E10字符串str“abcd”,‘你好’逻辑boolTrueFalse2运算符+加法,字符串联接,数组融合-减法*乘法,字符串级联/实数除法//整除%求余数**求幂in判断元素是否在序列类型中forxin序列类型:序列类型遍历and并且or或者not不是比较运算符:==!===赋值语句=+=-=*=/=%=3if语句格式一if条件:如果条件成立执行本段代码else:如果条件不成立执行本段代码格式二if条件:如果条件成立执行本段代码格式三if条件1:如果条件1成立执行本段代码elif条件2:如果条件2成立执行本段代码elif条件3:如果条件3成立执行本段代码else:如果以上条件都不成立执行本段代码4for循环foriin序列类型:对于序列类型的每一个元素执行本段代码例一:求数组元素平均的程序#coding=gbk#求数组元素的平均值x=[1,2,3,4.6,7.1]s=0foriinx:s=s+ia=s/len(x)print(x=,x)print(共,len(x),个元素)print(总和=,s)print(平均值=,a)x=[1,2,3,4.6,7.1]共5个元素总和=17.7平均值=3.54例2:求1+2+3+...+100=?#coding=gbk#求1+2+3+...+100=?s=0foriinrange(1,100+1):s=s+iprint(1+2+3+...+100=,s)1+2+3+...+100=5050例3:求1+3+5+7...+99=?#coding=gbk#求1+3+5+7+...+99=?s=0foriinrange(1,99+1,2):s=s+iprint(1+3+5+7+...+99=,s)1+3+5+7+...+99==2500range(1,100,2)的意思是:[1,3,5,7,….99]从1开始,到100结束,但不包含100,每次增加2range(1,101)的意思是:[1,2,3,….99,100]从1开始,到101结束,但不包含101,每次增加1例4:求10+9+8+7+…..+1=?#coding=gbk#求10+9+8+7+…+1=?s=0foriinrange(10,0,-1):s=s+iprint(10+9+8+7+…..+1=,s)10+9+8+7+…..+1=55例5:求数组[10,8,-1,100,200,35]的最大元素---方法一#coding=gbk#求数组[10,8,-1,100,200,35]的最大元素x=[10,8,-1,100,200,35]mx=x[0]foriinrange(0,len(x)):ifmxx[i]:mx=x[i]print(x=,x)print(最大元素=,mx)x=[10,8,-1,100,200,35]最大元素=200例6:求数组[10,8,-1,100,200,35]的最大元素---方法二#coding=gbk#求数组[10,8,-1,100,200,35]的最大元素x=[10,8,-1,100,200,35]mx=x[0]foryinx:ifmxy:mx=yprint(x=,x)print(最大元素=,mx)x=[10,8,-1,100,200,35]最大元素=200range(10,0,-1)的意思是:[10,9,8,7,6,…,1]从10开始,到0结束,但不包含0,每次增加-15while循环格式:while条件:当条件成立时,一直执行本段如果条件成立,一直执行后面的“语句块”,这意味着,您需要在(循环体的)语句块中于适当的时候改变条件表达式中的某个(或某些)变量,或者使用break中止循环。while与if的不同是:if条件:如果条件成立,执行一次本段代码而while则是,一直重复执行那段代码,直到,条件不满足时为止。场景一场景二狄仁杰说道:我只问你一个问题,说了就放你走。。。。。山无陵,天地合,乃敢与君绝!if说了:就放你走whilenot(山无陵,天地合):与君一直在一起例1:求数组[10,8,-1,100,200,35]的最大元素---方法三#coding=gbk#求数组[10,8,-1,100,200,35]的最大值x=[10,8,-1,100,200,35]mx=x[0]i=0whileilen(x):ifmxx[i]:mx=x[i]i=i+1print(x=,x)print(最大元素=,mx)x=[10,8,-1,100,200,35]最大元素=200容易遗忘的地方例2:求数组[10,8,-1,100,200,35]的最大元素---方法四#coding=gbk#求数组[10,8,-1,100,200,35]的最大值x=[10,8,-1,100,200,35]mx=x[0]i=len(x)-1whilei=0:ifmxx[i]:mx=x[i]i=i-1print(x=,x)print(最大元素=,mx)x=[10,8,-1,100,200,35]最大元素=200死循环的用法例3:求数组[10,8,-1,100,200,35]的最大元素---方法五#coding=gbk#求数组[10,8,-1,100,200,35]的最大值x=[10,8,-1,100,200,35]mx=x[0]i=len(x)-1whileTrue:ifmxx[i]:mx=x[i]i=i-1ifi0:break#结束循环的执行print(x=,x)print(最大元素=,mx)x=[10,8,-1,100,200,35]最大元素=200练习题:将下面数组中的奇数变成它的平方,偶数保持不变.X=[1,2,3,4,8,7,22,33,88]#coding=gbk#将下面数组中的奇数变成它的平方,偶数保持不变x=[1,2,3,4,8,7,22,33,88]print(x=,x)foriinrange(0,len(x)):if(x[i]%2)!=0:#如果第i个元素是奇数x[i]=x[i]*x[i]print(变换后,x=,x)x=[1,2,3,4,8,7,22,33,88]变换后,x=[1,2,9,4,8,49,22,1089,88]第2章函数2.1系统内建函数系统内核提供了许多基本的常用函数,例如:ord()求字符的编码,chr()将字符编码转化为字符。等(1)ord(字符)返回值:int类型ord(A)的值是65ord(0)的值是48ord(a)的值是97ord(b)的值是98ord(你)的值是20320一个汉字是一个字符(说明:在pyhon2.6以前一个汉字是两个字符)(2)chr(编码)由字符编码转化为字符chr(65)的值是Achr(66)的值是Bchr(97)的值是achr(48)的值是0chr(20320)的值是你(3)hex(整数)将整数转化为16进制字符串hex(17)的值是'0x11'hex(19491001)的值是'0x12968b9'hex(-65)的值是'-0x41'请注意:python负数的十六进制字串与C语言表示方法不同(4)int(字符串)将字符串转化为整数将字符串按十进制转换为整数int(“123”)的值是123int(“-65”,10)的值是-65将字符串按十六制转换为整数int(“123”,16)的值是291int(“-65”,16)的值是-101int(“0x11”,16)的值是17说明:int(字符串,进制)进制的取值范围是2,4,8,10,16,32,默认值是10(5)求序列类型元素的个数len([1,2,8,-6])的值是4#这是求数组元素的个数len(abc你12)的值是6#这是求字符串中字符的个数(6)求变量、常数、表达式的类型type(表达式)返回表达式的类型(6.1)判断一个表达式是否为整数的方法:iftype(x)==int:…..(6.2)判断一个表达式是否为实数的方法:iftype(x)==float:(6.3)判断x是否为数:整数或实数if(type(x)==float)or(type(x)==int):…..还可以写作:if(type(x)in[float,int]):…..(7)abs求整数或实数的绝对值abs(x)x是整数时,返回的是整数x是实数时,返回的是实数更多系统函数在以后章节介绍2.2函数的定义到目前为止,我们用的都是Python定义的函数。这些Python内置的函数,其定义部分对我们来说时透明的。因此,我们只关注这些函数的用法,而不必关心函数是如何定义的。我们也可以创建自己的函数,来执行特定的操作。函数的定义形式如下:def函数名(arg1,arg2,...argN):语句函数的名字也必须以字母开头,可以包括下划线“_”,但不能把Python的关键字定义成函数的名字。(1)函数内的语句数量是任意的(至少一条语句)(2)函数内的每个语句至少有一个空格的缩进,以表示此语句属于这个函数的。(3)缩进结束的地方,函数自然结束。(4)函数如果有返回值,用return表达式语句。例:求阶乘的函数#coding=gbk#ex0908-09-求阶乘的函数deffact(n):求阶乘的函数fact(n)n:=0的自然数返回值:n!f=1foriinrange(1,n+1):f=f*ireturnfprint(5!=,fact(5))5!=120在fact函数中:n是形式数,f,i是函数fact的局部变量,returnf是函数的返回值,5是调用函数fact的实际参数。函数的文档2.3函数的形式参数与实际参数让我们看下面的例子:#coding=gbkdeftest(x1,x2):#x1,x2是形式参数x1=x1*x1x2=x2*x2y=x1+x2#y是局部变量returnya1=2a2=3b=test(a1,a2)#a1,a2是实际参数print(a1,a2=,a1,a2)print(b=,b)a1,a2=23b=13在这个例子中:函数test有两个形式参数:x1和x2。变量a1和a2是函数的实际参数。调用test(a1,a2)时,把实际参数a1、a2的值分别传递给形式参数x1、x2,虽然形式参数x1,x2的值在函数内部被改变了,而实际参数a1,a2没有被改变。2.4序列类型之元组(tuple)将几个量用逗号隔开,用一对园括号括起来,就形成一个元组。例如:(1,2,“abc”)用途:x,y,z=(1,2,3)#这一句叫作元组的解包。执行该语句后,x=1;y=2;z=3。实际应用中,在不产生二义性的时候,可以省略园括号。例如:name,sex,age=“张三”,“男”,58虽然形式参数x1,x2的值在函数内部被改变了,而实际参数a1,a2没有被改变。2.5元组作为函数的返回值当我们需要从函数中返回多个值时,可以使用元组作为返回值。#coding=gbk#求序列类型的最大元素和最小元素#入口:v序列类型#返回:(最大元素,最小元素)defgetMaxMin(v):big=v[0]small=v[0]foriinrange(0,len(v)):ifbigv[i]:big=v[i]ifsmallv[i]:small=v[i]returnbig,small#---应用举例----a=[1,2,0,5,10]x,y=getMaxMin(a)print(a=,a)print(最大元素=,x,最小元素=,y)a=[张三,李四,王五,艰苦奋斗]x,y=getMaxMin(a)print(a=,a)print(最大元素=,x,最小元素=,y)a=满清皇帝听说这双刀之中有一个能无敌於天下的大秘密x,y=getMaxMin(a)print(a=,a)print(最大元素=,x,最小元素=,y)a=[1,2,0,5,10]最大元素=10最小元素=0a=['张三','李四','王五','艰苦奋斗']最大元素=艰苦