Python复习题Word文件下载.docx
- 文档编号:17874005
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:51
- 大小:122.63KB
Python复习题Word文件下载.docx
《Python复习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《Python复习题Word文件下载.docx(51页珍藏版)》请在冰豆网上搜索。
elif条件2:
如果条件2成立执行本段代码
elif条件3:
如果条件3成立执行本段代码
如果以上条件都不成立执行本段代码
4for循环
foriin序列类型:
对于序列类型的每一个元素执行本段代码
例一:
求数组元素平均的程序
#coding=gbk
#求数组元素的平均值
x=[1,2,3,4.6,7.1]
s=0
foriinx:
s=s+i
a=s/len(x)
print("
x="
x)
共"
len(x),"
个元素"
)
总和="
s)
平均值="
a)
x=[1,2,3,4.6,7.1]
共5个元素
总和=17.7
平均值=3.54
例2:
求1+2+3+...+100=?
#求1+2+3+...+100=?
foriinrange(1,100+1):
1+2+3+...+100="
s)
1+2+3+...+100=5050
例3:
求1+3+5+7...+99=?
#求1+3+5+7+...+99=?
foriinrange(1,99+1,2):
1+3+5+7+...+99="
1+3+5+7+...+99==2500
例4:
求10+9+8+7+…..+1=?
#求10+9+8+7+…+1=?
foriinrange(10,0,-1):
10+9+8+7+…..+1="
10+9+8+7+…..+1=55
例5:
求数组[10,8,-1,100,200,35]的最大元素---方法一
#求数组[10,8,-1,100,200,35]的最大元素
x=[10,8,-1,100,200,35]
mx=x[0]
foriinrange(0,len(x)):
ifmx<
x[i]:
mx=x[i]
x)
最大元素="
mx)
x=[10,8,-1,100,200,35]
最大元素=200
例6:
求数组[10,8,-1,100,200,35]的最大元素---方法二
foryinx:
y:
mx=y
5while循环
格式:
while条件:
当条件成立时,一直执行本段
如果条件成立,一直执行后面的“语句块”,
这意味着,您需要在(循环体的)语句块中于适当的时候改变条件表达式中的某个(或某些)变量,或者使用break中止循环。
while与if的不同是:
if条件:
如果条件成立,执行一次本段代码
而while则是,一直重复执行那段代码,直到,条件不满足时为止。
场景一
场景二
狄仁杰说道:
我只问你一个问题,说了就放你走。
。
。
山无陵,天地合,乃敢与君绝!
if说了:
就放你走
whilenot(山无陵,天地合):
与君一直在一起
例1:
求数组[10,8,-1,100,200,35]的最大元素---方法三
#求数组[10,8,-1,100,200,35]的最大值
i=0
whilei<
len(x):
i=i+1
求数组[10,8,-1,100,200,35]的最大元素---方法四
i=len(x)-1
whilei>
=0:
i=i-1
死循环的用法
求数组[10,8,-1,100,200,35]的最大元素---方法五
whileTrue:
i=i-1
ifi<
0:
break#结束循环的执行
练习题:
将下面数组中的奇数变成它的平方,偶数保持不变.
X=[1,2,3,4,8,7,22,33,88]
#将下面数组中的奇数变成它的平方,偶数保持不变
x=[1,2,3,4,8,7,22,33,88]
x)
foriinrange(0,len(x)):
if(x[i]%2)!
#如果第i个元素是奇数
x[i]=x[i]*x[i]
变换后,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"
)的值是65
0"
)的值是48
ord("
a"
)的值是97
b"
)的值是98
你"
)的值是20320
一个汉字是一个字符(说明:
在pyhon2.6以前一个汉字是两个字符)
(2)chr(编码)由字符编码转化为字符
chr(65)的值是"
chr(66)的值是"
B"
chr(97)的值是"
chr(48)的值是"
chr(20320)的值是"
(3)hex(整数)将整数转化为16进制字符串
hex(17)的值是'
0x11'
的值是'
0x12968b9'
hex(-65)的值是'
-0x41'
请注意:
python负数的十六进制字串与C语言表示方法不同
(4)int(字符串)将字符串转化为整数
将字符串按十进制转换为整数
int(“123”)的值是123
int(“-65”,10)的值是-65
将字符串按十六制转换为整数
int(“123”,16)的值是291
int(“-65”,16)的值是-101
int(“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的关键字定义成函数的名字。
-函数内的语句数量是任意的(至少一条语句)
-函数内的每个语句至少有一个空格的缩进,以表示此语句属于这个函数的。
-缩进结束的地方,函数自然结束。
-函数如果有返回值,用return表达式语句。
例:
求阶乘的函数
#ex0908-09-求阶乘的函数
函数的文档
deffact(n):
"
"
求阶乘的函数fact(n)
n:
=0的自然数
返回值:
n!
f=1
foriinrange(1,n+1):
f=f*i
returnf
5!
="
fact(5))
=120
在fact函数中:
n是形式数,
f,i是函数fact的局部变量,
returnf是函数的返回值,5是调用函数
fact的实际参数。
2.3函数的形式参数与实际参数
让我们看下面的例子:
deftest(x1,x2):
#x1,x2是形式参数
x1=x1*x1
x2=x2*x2
y=x1+x2#y是局部变量
returny
a1=2
a2=3
b=test(a1,a2)
#a1,a2是实际参数
a1,a2="
a1,a2)
b="
b)
a1,a2=23
b=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
2.5元组作为函数的返回值
当我们需要从函数中返回多个值时,可以使用元组作为返回值。
#求序列类型的最大元素和最小元素
#入口:
v序列类型
#返回:
(最大元素,最小元素)
defgetMaxMin(v):
big=v[0]
small=v[0]
foriinrange(0,len(v)):
ifbig<
v[i]:
big=v[i]
ifsmall>
small=v[i]
returnbig,small
#---应用举例----
a=[1,2,0,5,10]
x,y=getMaxMin(a)
a="
a)
x,"
最小元素="
y)
a=["
张三"
"
李四"
王五"
艰苦奋斗"
]
a="
满清皇帝听说这双刀之中有一个能无敌於天下的大秘密"
a=[1,2,0,5,10]
最大元素=10最小元素=0
a=['
张三'
'
李四'
王五'
艰苦奋斗'
]
最大元素=艰苦奋斗最小元素=张三
a=满清皇帝听说这双刀之中有一个能无敌於天下的大秘密
最大元素=这最小元素=一
思考题:
请推测下面代码的运行结果是什么
Z=(8,4,2,10,7)
X,Y=getMaxMin(Z)#getMaxMin是上面的函数
print(X,Y)
第3章简单应用题
3.1闰年的计算
地球的公转周期是365.2422个太阳日,按这个天数,地球围绕太阳公转一周后,并不是整整365个昼夜。
因此,如果按照每年365天算,则每到四年,地球就和四年前的位置差了近一天。
这一天的公转距离需要闰(多)一日来补足,因此一般每四年就会出现一个闰年。
0.2422*4=0.9688<
1,因此每闰一次都会有点矫枉过正,造成了0.0312天的误差。
每100个闰年(即400年)会造成3.12天的误差,为了减掉这个误差,人们又规定,在第25个、第50个、第75个“闰年”处不闰(减掉多余的3天),而在第100个闰年处保持闰年。
为了好算,人们这么制定了规则:
1、如果年数可以整除400,则该年是闰年。
否则判断2。
2、如果年数可以整除100,则该年不是闰年。
否则判断3。
3、如果年数可以整除4,则是闰年。
否则不是闰年。
闰年的计算方法,既是程序设计语言中常用的例题,又是现实程序设计中常用而且回避不了的一个问题。
判断一个年份是否为闰年的函数
defleapYear(y):
if(y%400)==0:
lp=1
elif(y%100)!
=0and(y%4)==0:
lp=1
else:
lp=0
returnlp
这个函数被无数的人写过无数次,虽然此处写的不是最简单的,但它看起来与前面的算法是一致的。
例题1:
判断下列年份是否为闰年?
1918,1937,1949,1984,2000,2010。
#判断某年是否为闰年的函数
#入口:
y,int类型,>
=1
#返回:
#1=y是闰年
#0=y不是闰年
if(y%400)==0:
elif(y%100)!
=0and(y%4)==0:
#应用举例:
#判断下列年份是否为闰年?
#1918,1937,1949,1984,2000,2010
yy=[1918,1937,1949,1984,2000,2010]
foryinyy:
z=leapYear(y)
ifz==1:
s="
是闰年"
不是闰年"
print(y,"
年"
1918年不是闰年
1937年不是闰年
1949年不是闰年
1984年是闰年
2000年是闰年
2010年不是闰年
例题2:
计算y年m月共有多少天的函数getLastDay(y,m)
#计算y年m月的天数
defgetLastDay(y,m):
ify<
1:
y=1
ifm<
m=1
ifm>
12:
m=12
#每个月的正常天数
#月份123456789101112
monthDay=[31,28,31,30,31,30,31,31,30,31,30,31]
r=monthDay[m-1]
ifm==2:
r=r+leapYear(y)#此处调用了前面的计算闰年有函数
returnr
例题3:
计算从公元1年1月1日到y年m月d日的天数(含两端)
从公元1年1月1日到1年2月2日的天数是31+2=33天
分析:
要计算从公元1年1月1日到y年m月d日的天数,我们分成三个部分:
(4)计算从公元1年到y-1年,是整年,每年是365天或366天(如果某年是闰年)
(5)对于第y年,当m>
1时,先计算1~m-1月整月的天数
(6)最后加上零头(第m月的d天)即可
这种方法,在程序设计中叫做“分而治之”。
elif(y%100)==0:
lp=0
elif(y%4)==0:
monthDay=[31,28,31,30,31,30,31,31,30,31,30,31]
r=r+leapYear(y)
#计算从公元1年1月1日到y年m月d日的天数(含两端的函数
defcalcDays(y,m,d):
m=12
ifd<
d=1
ifd>
getLastDay(y,m):
d=getLastDay(y,m)
T=0
foriinrange(1,y):
T=T+365+leapYear(i)
foriinrange(1,m):
T=T+getLastDay(y,i)
T=T+d
returnT
y,m,d=2010,9,8
T=calcDays(y,m,d)
从1年1月1日到"
y,"
m,"
月"
d,"
日共"
T,"
天"
)
从1年1月1日到2010年9月8日共734023天
例题4求某年某月某日是星期几?
公元1年1月1日是星期一。
很久很久以前,上帝创造了天和地。
(这一天定为公元1年1月1日)
第二天上帝创造空气(大气),或穹苍,称空气为天。
按着上帝的命令,黑暗再次的取代了光明。
这是当天的傍晚发生的。
第三天,上帝创造了大海和高山。
第四天,上帝创造太阳、月亮和星星。
从此太阳为地球提供光和热。
第五天,上帝创造了空中的鸟和水里的鱼。
第六天,上帝创造各类的动物在地上。
这事之后,上帝就在第七日安息了。
因此,我们也当工作六日,礼拜天休息。
根据这个故事,我们知道,要求出某年某月某日是星期几,只需调用calcDays(y,m,d),然后除以7余几就是星期几,余0就是星期日(礼拜天)。
3.2计算级数的前n项和
例1求Sn=1+2+3+4+5+……+n
#求Sn=1+2+3+4+5+……+n
#方法一:
用累加法
defcalcSn1(n):
ifn<
return0
s=0
returns
#方法二:
用等差级数的求和公式
#入口:
a0=第一项
#n=项数
#d=公差
#返回:
Sn
#Sn=n*a0+n*(n-1)*d/2
defcalcSn2(a0,n,d):
if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 复习题