Python语言程序设计实训题目及答案_第1页
Python语言程序设计实训题目及答案_第2页
Python语言程序设计实训题目及答案_第3页
Python语言程序设计实训题目及答案_第4页
Python语言程序设计实训题目及答案_第5页
已阅读5页,还剩55页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python语言及其应用第1章认识PythonPAGE30PAGE311.5实训1.5.1实训1一、实训目的1.了解Python运行原理、注释的使用2.掌握Python的编码规范3.掌握Python的输入与输出的写法4.掌握Python变量与标识符的运用5.能够利用Python语言基础编写简单的Python代码二、单元练习(一)选择题1.下列用户标识符中合法的是(C)A.2name、length1、_e1 B.m_a、name、#intC.m_Name、length1、_name D._name、Gen$2、length12.关于标识符,下列说明错误的是(B)A.标识符可以由字母、数字、下划线组成B.标识符必须由字母、下划线、数字开始C.标识符大小写敏感(不同)D.标识符不可以使用Python的关键字3.将python中的.py文件转换为.pyc文件的组件为(B)A.编辑器 B.编译器 C.虚拟机 D.连接器(二)填空题1.Python由解释器、编译器和虚拟机三个主要部分组成。2.Python程序设计中一行可以写1条语句,每条语句以换行结束。3.Python程序设计的注释是以#开头,也可以用’’’(三个引号)符号代替注释,注释对程序的执行不起任何作用。4.编写Python语言,其扩展名为.py,编译后生成的文件扩展名为.pyc。5.Python3的数字类型分为int、long、float、complex等子类型。6.可以使用\符号把一行过长的Python语句分解成几行。7.Python2中使用#coding:utf-8支持中文编码。(三)名词解释1.解释器:用来运行语句。2.编译器:将.py文件转换成.pyc文件。3.虚拟机:用来运行.pyc文件。三、实训任务任务1:【安装Python】1.Python官方网站下载并安装python3.6msi包。2.安装pycharmGUI开发环境。3.配置Python环境变量,并能成功在cmd命令下进行Python的代码运行。任务2:【打印】编写一个简短的程序,打印下面内容:你的姓名、生日以及你最喜欢的颜色。具体格式如下所示:********************************你的姓名生日你最喜欢的颜色********************************程序编写于下方name='张三'birthday='2000-1-1'color='蓝色'print('********************************')print('姓名:{}'.format(name))print('生日:{}'.format(birthday))print('最喜欢的颜色:{}'.format(color))任务3:【求直角三角形的面积】输入直角三角形的三条边,三条边为整型,计算其面积,结果以浮点型输出。程序编写于下方frommathimportsqrta=int(input('请输入三角形边a:'))b=int(input('请输入三角形边b:'))c=int(input('请输入三角形边c:'))p=(a+b+c)/2ifa+b>canda-b<c:s=sqrt(p*(p-a)*(p-b)*(p-c))print('三角形的面积为:{}'.format(s))else:print('无法构成三角形')任务4:【圆形的周长】输入圆的直径,计算其面积(pi=3.14)程序编写于下方l=int(input('请输入圆形直径:'))pi=3.14s=pi*(l/2)**2print('圆形的面积为:{}'.format(s))四、拓展任务任务1:【梯形的面积】输入梯形的上底,下底和高,计算梯形(trapezoid)面积。程序编写于下方top=int(input('请输入梯形上底:'))

base=int(input('请输入梯形下底:'))

h=int(input('请输入梯形高:'))

s=(top+base)*h/2

print('梯形的面积为:{}'.format(s))任务2:【菱形的面积】输入菱形的高和底,计算其面积(公式:菱形=底×高)程序编写于下方base=int(input('请输入菱形底:'))

h=int(input('请输入菱形高:'))

s=base*h

print('梯形的面积为:{}'.format(s))

1.5.2实训2一、实训目的1.了解值与类型、运算符和不同类型的混合计算2.掌握字符串的连接与倍增3.掌握将数值转换成字符串4.掌握Python模块的导入5.能够利用Python语言基础编写简单的Python代码二、单元练习(一)选择题1.下列选项中,不是int整型数据的是(D)A.160 B.010 C.-78 D.0x2342.下列选项中,不是实型数据的是(D)A.0.0 B.20.12 C.20.1e+18 D.0x2343.下面哪个不是Python合法的变量名(B)A.int32 B.40XL C.self D.__name__4.Python不支持的数据类型有(A)A.char B.int C.float D.list5.1*50*2.54,结果为(C) A.整型 B.布尓型 C.浮点型 D.复数(二)填空题1.若定义a=10,执行printtype(a)后,结果为int。2.若定义a=10.0,执行printtype(a)后,结果为float。3.三种基本的程序设计结构为顺序结构、选择结构、循环结构。4.圆的面积公式s=pi*r2,写成Python语言表达式为s=pi*r^2。5.若定义a=97,执行print('a'+'8'+'3')后,结果为a83。6.若定义a=97,执行print(a+'8'+'3')后,结果为报错。7.若定义a=97,执行print(str(a)+'8'+'3')后,结果为9783。8.若定义a=‘D’,执行print(a*10)后,结果为DDDDDDDDDD。(三)名词解释1.ASCII编码:是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC646。2.程序调试:将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。3.软件测试:描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。4.导入模块:把python文件解释一遍。三、实训任务任务1:【PyCharm中Python版本的切换】请参考1.2.13章节的两种方法。任务2:【换字游戏】编写一个换字游戏,要求将两个整数a和b进行交换,然后打印出来。程序编写于下方a=int(input('请输入整数a:'))b=int(input('请输入整数b:'))a,b=b,aprint('a:{}'.format(a))print('b:{}'.format(b))任务3:【数字合并】编写程序,将两个整数a和b合并成一个整数放到c里面,并打印出来。程序编写于下方a=input('请输入整数a:')

b=input('请输入整数b:')

c=a+b

print('c:{}'.format(c))任务4:【随机数的倍增】用随机数包产生一个0~20的随机数(包括小数),在产生一个10~30的随机整数作为前面随机数的倍增的量。程序编写于下方importrandom

a=random.uniform(0,20)

b=random.randint(10,30)

c=a*b

print('a={}\nb={}\nc={}'.format(a,b,c))四、拓展任务1:【数字合并提高】编写程序,将两个的两位数整数a和b合并成一个整数放到c里面,合并的方式为:将a数的十位和个位数依次放到c数的个位和百位上,将b数的十位和个位数依次放到c数的十位和千位上。并将c打印出来。程序编写于下方a=int(input('请输入两位整数a:'))

b=int(input('请输入两位整数b:'))

a1=a//10

a2=a%10

b1=b//10

b2=b%10

c=b2*1000+a2*100+b1*10+a1

print('c:{}'.format(c))2:【求除数】导入随机数库包random,生成随机三个1-20的整数,将三个数相除,以字符串格式输出。程序编写于下方importrandom

a=random.randint(1,20)

b=random.randint(1,20)

c=random.randint(1,20)

print('a/b/c={}'.format(a/b/c))3:【代码版本转换】用Python2语言完成实训任务中的任务2和任务3。(1)编写一个换字游戏,要求将两个整数a和b进行交换,然后打印出来。程序编写于下方#coding:utf-8

a=input('请输入整数a:')

b=input('请输入整数b:')

a,b=b,a

print'a:{}'.format(a)

print'b:{}'.format(b)(2)编写程序,将两个整数a和b合并成一个整数放到c里面,并打印出来。程序编写于下方#coding:utf-8

a=input('请输入整数a:')

b=input('请输入整数b:')

c=str(a)+str(b)

print'c:{}'.format(c)

2.5实训2.5.1实训1一、实训目的1.掌握函数的定义和调用2.学会Python的缩进格式3.理解形参、实参、返回值、局部变量与全局变量4.掌握Python的常用运算5.掌握Python的格式化输出二、单元练习(一)选择题1.关于函数的目的,以下说明不正确的是(B)A.提高程序的执行效率 B.减少程序文件所占用的内存C.提高程序的可读性 D.提高程序的开发效率2.Python中缩进(B)个空格A.1 B.4 C.6 D.23.Q为局部变量的是(B)A.ReturnQ B.deffun():Q=1 C.Q=1 D.printQ4.关于函数名,下列说法正确的是(B)A.函数名必须以下划线和数字开头B.函数名可以包含任意字母、数字或下划线的组合C.函数名能使用任何的标点符号D.函数名不区分大小写(二)填空题1.以下程序输出结果为(3,2)(2,3)。deffun(x,y):

x=x+y

y=x-y

x=x-y

print(x,y)

x=2

y=3

fun(x,y)

print(x,y)2.以下程序输出结果为(3,9)。deffun2():

a=10

b=20

a=3

b=9

fun2()

print(a,b)3.以下程序输出结果为ais1,bis3,cis9ais1,bis5,cis9ais1,bis3,cis10 ais30,bis3,cis20。deffunc(a,b=3,c=9):print("ais%s,bis%s,cis%s"%(a,b,c))func(1)func(1,5)func(1,c=10)func(c=20,a=30)(三)名词解释1.值传递:。2.地址传递:。3.实参:。4.形参:。三、实训任务任务1:【求圆形的面积】编写一个函数。输入圆形的半径,计算其面积。程序编写于下方defcalc_circular(r):area=3.14*r**2returnarea任务2:【自编一个函数包,计算正方形】输入正方形的边长,利用函数包计算,打印出结果。程序编写于下方defcalc_rectangle(l):

area=l**2

long=l*2

returnprint('正方形的面积是:{0},周长是:{1}'.format(area,long))任务3:【自编一个函数包,完成下面图形的面积】图1程序编写于下方defcalc_area(r):

area=3.14*r**2+(2*r)**2

returnarea图2程序编写于下方defcalc_area(r):

area=(2*r)**2-3.14*r**2

returnarea图3程序编写于下方defcalc_area(r):

area=3.14*r**2-(r*2**0.5)

returnarea四、拓展任务任务1:【利用海伦公式求三角形面积】编写一个程序,利用海伦公式求三角形面积。海伦公式如下:程序编写于下方defcalc_triangle(a,b,c):

ifa+b>canda-b<c:

p=(a+b+c)/2

s=(p*(p-a)*(p-b)*(p-c))**0.5

returns

else:

return'无法构成三角形'

a=int(input('请输入三角形边1:'))

b=int(input('请输入三角形边2:'))

c=int(input('请输入三角形边3:'))

print(calc_triangle(a,b,c))

3.5实训3.5.1实训1【分支】一、实训目的1.熟练使用Python的常用运算2.利用if分支语句编写Python代码二、单元练习 (一)选择题1.下列选项中,当x为大于1的奇数时,运算结果为0的表达式是(C)A.x%2==1 B.x/2C.x%2!=0 D.x%2==02.在嵌套使用if语句时,Python语言规定else总是(A)A.和之前与其具有相同缩进位置的if相匹配;B.和之前与其最近的if相匹配;C.和之前的第一个if配对;D.和之前与其最近且不带else的if配对。3.下列Python语句正确的是

(D)A.min

=

x

if

x

<

y

else

y

B.max

=

x

>

y

?

x

:

y

C.if

(x

>

y)

print

x

D.if

1>2:

print(“hello”)

(二)填空题1.写出下列表达式的值,设a=3,b=4,c=5:表达式值a+b>c&&b==cFalse!(a>b)&&!c||1Falsea<c&&c<bFalsea<c<bFalsea<b||c<bTrue2.在算术运算符(+、-、*、/、%)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(and、or、not)和赋值运算符(=、+=、-+、*=、/=、%=、**=、//=)中,运算优先级最高的运算符是**指数,最低的运算符not、or、and。3.判断一个字符是数字字符的条件表达式isdigit。4.判断一个字符是字母的条件表达式isalnum。5.在Python语言中,用true表示逻辑“真”,用false表示逻辑“假”。三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个0-10的数字,提供1次猜字机会。程序编写于下方importrandomsecret=random.randint(0,10)print("请你猜一猜从1到10的数字")print("你只有一次机会")guess=eval(input("请输入你猜的数字:"))ifguess<secret:print('太小了')elifguess>secret:print('太大了')else:print('答对了')print('正确答案是:'+str(secret))任务2:【学生成绩等级评定】根据学生考试成绩,确定成绩等级,成绩与等级的对应关系如下表所示。成绩(score)等级(level)score>=90A80<=score<90B70<=score<80C60<=score<70DScore<60E程序编写于下方score=eval(input('请输入你的考试成绩:'))

ifscore>=90:

level='A'

print('你的考试等级为:'+level)

elif(score>=80)and(score<90):

level='B'

print('你的考试等级为:'+level)

elif(score>=70)and(score<80):

level='C'

print('你的考试等级为:'+level)

elif(score>=60)and(score<70):

level='D'

print('你的考试等级为:'+level)

else:

level='E'

print('你的考试等级为:'+level)任务3:【输入字符判断】键盘输入一个字符,判断该字符是数字、字母、空格还是其他。程序编写于下方word=input('请输入你的字符:')

ifword.isdigit():

print('你输入的是数字')

elifword.isalpha():

print('你输入的是字母')

elifword.isspace():

print('你输入的是空格')

else:

print('你输入的是其他')任务4:【身体质量指数判断】身体质量指数(BMI)是指用体重除以身高的平方得出的数字,它是目前国际常用的衡量人体胖瘦程度以及是否健康的一个标准,具体如下。BMI值<18.518.5~24.925.0~27.9>27.9身体情况消瘦正常超重肥胖程序编写于下方high=eval(input('请输入你的身高:'))

wight=eval(input('请输入你的体重:'))

bmi=wight/(high**2)

ifbmi<18.5:

print('bmi='+str(bmi))

print('偏瘦')

elif(bmi>=18.5)and(bmi<=24.9):

print('bmi='+str(bmi))

print('正常')

elif(bmi>=25)and(bmi<=27.9):

print('bmi='+str(bmi))

print('偏胖')

else:

print('bmi='+str(bmi))

print('肥胖')任务5:【企业发放奖金判断】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序编写于下方i=eval(input('Pleaseinputprofitsofthemonth:'))

ifi<=100000:

money=i*0.1

elif(i>100000)and(i<=200000):

money=100000*0.1+(i-100000)*0.075

elif(i>200000)and(i<=400000):

money=100000*0.1+100000*0.075+(i-200000)*0.05

elif(i>400000)and(i<=600000):

money=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03

elif(i>600000)and(i<=1000000):

money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015

else:

money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.001

print('Thebonusis:'+str(money))任务5:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天。(2月定为28天)。程序编写于下方month=input('请输入月份(例:一月):')

if(month=='一月'):

print(str(month)+'应该有31天')

elif(month=='二月'):

print(str(month)+'应该有28天')

elif(month=='三月'):

print(str(month)+'应该有31天')

elif(month=='四月'):

print(str(month)+'应该有30天')

elif(month=='五月'):

print(str(month)+'应该有31天')

elif(month=='六月'):

print(str(month)+'应该有30天')

elif(month=='七月'):

print(str(month)+'应该有31天')

elif(month=='八月'):

print(str(month)+'应该有31天')

elif(month=='九月'):

print(str(month)+'应该有30天')

elif(month=='十月'):

print(str(month)+'应该有31天')

elif(month=='十一月'):

print(str(month)+'应该有30天')

elif(month=='十二月'):

print(str(month)+'应该有31天')四、拓展任务拓展任务1:【验证码】一般网站在登录时,都会进行“验证码”输入。在输入验证码字符时,无论用户输入的是大写字母还是小写字母,验证时都会忽略大小写的差异,认为是相同的字符。这说明系统已经对验证码中的字符和用户输入的字符进行了大小写转换,然后进行匹配。那么这种转换是如何实现的?请编程实现“从键盘输入一组字符,无论大小写,都转换成小写形式输出”。程序编写于下方string=input('Pleaseinputyourtext:')

print(string.lower())拓展任务2:【商品促销】某淘宝商场采用购物打折的方式进行促销。具体促销方式如下:购买金额折扣1000元及以上九折2000元及以上八折3000元及以上七折请编写程序,当输入顾客实际购物金额,计算并输出优惠价。程序编写于下方money=eval(input('请输入你的购物金额:'))

if(money>=1000)and(money<2000):

level=0.9

cash=money*level

print('折后金额为:'+str(cash))

elif(money>=2000)and(money<3000):

level=0.8

cash=money*level

print('折后金额为:'+str(cash))

else:

level=0.7

cash=money*level

print('折后金额为:'+str(cash))拓展任务3:【闰年】输入一个年份,求它是否是闰年?闰年的条件是:能被4整除不能被100整除或者能被400整除(y%4==0andy%100!=0ory%400==0)程序编写于下方year=eval(input('请输入年份:'))

while(1):

ifyear>=1000andyear<=9999:

if(year%4==0andyear%100!=0)or(year%100==0):

print('该年为闰年')

else:

print('该年不是闰年')

break

else:

year=eval(input('请输入正确年份:'))拓展任务4:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天。(2月根据是否是闰年判断是否28天还是29天)。程序编写于下方defJudgeYear(year):

flag=False

if(year%4==0andyear%100!=0)or(year%100==0):

flag=True

print('该年为闰年')

returnflag

defrestr(string,p,c):

new=[]

forsinstring:

new.append(s)

new[p]=c

return''.join(new)

Month={'01':31,'02':28,'03':31,'04':30,'05':31,'06':30,'07':31,

'08':31,'09':30,'10':31,'11':30,'12':31}

date=input('请输入年月(例2018.01):')

iflen(date)==6anddate[5]!="0":

date+=date[5]

date=restr(date,5,'0')

ifJudgeYear(eval(date[0:4])):

Month['02']=29

print('本月应该有%d天'%Month[date[5:7]])3.5.2实训2【循环】一、知识点清单1、掌握while循环语句使用方法2、掌握for循环语句使用方法3.能够利用流程控制语句解决实际编程问题二、单元练习(一)填空题1.如果循环无休止的进行下去,这种状态称为死循环。2.使用循环输出1234568910,补充下面的填空count=1Whilecount<=10:

ifcount!=7:

passprint(count)

count+=13.循环可以嵌套3-5层。三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个0-100的数字,提供6次猜字机会。程序编写于下方importrandom

key=random.randint(1,10)

c=0

c2=6

whilec<3:

word=eval(input('猜一猜1-10的数字,请输入答案,还剩{}次机会:'.format(c2-c)))

c+=1

ifkey>word:

print('太小了')

elifkey<word:

print('太大了')

else:

print('你在第{}次答对了'.format(c))

break

ifkey!=word:

print('很遗憾你猜错了')

print('正确答案是:'+str(key))任务2:【统计字符分类】输入一行字符,统计出其中英文字母、空格、数字以及其他字符的个数,并打印出来。程序编写于下方word=input('请输入你的文本:')

num_alpha=0

num_digit=0

num_space=0

num_other=0

foriinword:

ifi.isalpha():

num_alpha+=1

elifi.isdigit():

num_digit+=1

elifi.isspace():

num_space+=1

else:

num_other+=1

print('该字符串共有{0}个字母,{1}个数字,{2}个空格,{3}个其他字符'.format(num_alpha,num_digit,num_space,num_other))任务3:【水仙花数】输出所有的“水仙花数”。“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153=13+53+33,该数即为水仙花数。程序编写于下方num=0

foriinrange(100,1000):

c=i%10

b=i//10%10

a=i//100

ifa**3+b**3+c**3==i:

print(str(i))

num+=1

print('共{}个'.format(num))任务4:【用数字组数】用数字1、2、3、4进行组数,能组出多少个互不相同且不重复数字的三位数?并打印出来。程序编写于下方num=0

foriinrange(1,5):

forjinrange(1,5):

forkinrange(1,5):

if(i!=j)and(j!=k)and(i!=k):

print(i,j,k)

num+=1

print('共{}个'.format(num))任务5:【评委评分】分别利用while语句和for语句完成如下功能。某比赛有7个评委,选手的得分为这7个评委的评分总和,请编程实现统计功能。程序编写于下方while方式:Ssum=0

c=0

whilec<7:

score=eval(input('{}号评委请输入评分:'.format(c+1)))

Ssum=Ssum+score

c+=1

print('该选手得分为:{}'.format(Ssum))程序编写于下方for方式:Ssum=0

forcinrange(1,8):

score=eval(input('{}号评委请输入评分:'.format(c)))

Ssum=Ssum+score

print('该选手得分为:{}'.format(Ssum))任务6:【break语句和continue语句的使用】输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键时结束。程序编写于下方text=''

word=''

while1:

word=input('请输入文本:')

foriinword:

ifi.isalpha():

text=text+i

print(text)

text=''

ifword=='':

break四、拓展任务任务1:【韩信点兵】淮安民间传说着一则故事——“韩信点兵”。话说韩信带1500名兵士打仗,战死四五百人,于是韩信要求士兵们先后站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信很快说出人数:1049。现在给你3个队伍的多出人数,分别为非负整数a,b,c,请计算军队的总人数?程序编写于下方a=eval(input('请输入3人一排多出几人:'))

b=eval(input('请输入5人一排多出几人:'))

c=eval(input('请输入7人一排多出几人:'))

flag=True

foriinrange(100,1000):

if(i%3==a)and(i%5==b)and(i%7==c):

print('共有{}人'.format(i))

flag=False

ifflag:

print('无符合人数')

任务2:【数数游戏】有n个人围成一圈,顺序排号。从第一个人开始报数,凡报到5的人退出圈子,问最后留下的是原来第几号。程序编写于下方defJudgePeople(x):

foriinstr(x):

ifi=='5':

returnTrue

break

returnFalse

'''判断传入参数是否包含5,若包含5则返回True,否则返回False'''

people=eval(input('请输入人数:'))

num=people

listP=[0]

foriinrange(people-1):

listP.append(0)

word=1

j=0

whilepeople>1:

j=j%num

iflistP[j]!='':

listP[j]=word

ifJudgePeople(listP[j]):

listP[j]=''

people-=1

word=0

word+=1

j+=1

print(listP)

print('最后一个人的编号是:{}'.format((listP.index(4)+1)))

4.5实训4.5.1实训1【列表】一、实训目的1.了解列表基本操作2.掌握列表的截取与拼接3.掌握列表的赋值机制4.学会列表推导式的应用二、单元练习(一)选择题1.Python列表不包含了以下哪个内置函数(D)A.len() B.max() C.min() D.tuple() E.list()2.列表中可以放多少个字符串(C) A.1 B.255 C.无限个 D.由用户自己定义(二)填空题1.已知tmp=['Deris','Weng',2018,2019],请填写下面的结果。

tmp[1]=Weng

tmp[-1]=2019

tmp[:2]=['Deris','Weng']

tmp[::2]=['Deris,2018]2.请填写Python表达式对应的结果。Python表达式结果len([1,2,3,4,5])5[1,2,3]+[4,5,6,7][1,2,3,4,5,6,7]['123']*4[123,123,123,123]3in[1,2,33,4,5]falseforxin[1,2,3,4]:print(x)1234三、实训任务任务1:【列表创建的基本操作】1、创建1个空列表alist(用两种方法实现)程序编写于下方alist=[]blist=list()print(alist)print(blist)2、创建一个长10000的列表blist(列表元素内容为1开始的整数)程序编写于下方alist=[i+1foriinrange(10000)]

print(alist)

print(len(alist))3、创建一个长10000的列表clist(列表元素内容均为1)程序编写于下方alist=[1foriinrange(10000)]

print(alist)

print(len(alist))4、编写程序,用户输入一个列表和2个整数作为下标,然后使用切片获取并输出列表中介于2个下标之间的元素组成的子列表。例如用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6]。程序编写于下方alist=[1,2,3,4,5,6,7,8]

a=eval(input('下标1:'))

b=eval(input('下标2:'))

print(alist)

print(alist[a:b+1])任务2:【列表截取与拼接】编写下列代码,观察结果,并说明原因。12l=[iforiinrange(0,15)]print(l[::2])结果:[0,2,4,6,8,10,12,14]12l=[iforiinrange(0,15)]print(l[::-2])结果:[14,12,10,8,6,4,2,0]说明原因:第一个是从0到15间隔“2”取值,第二个是从15到0间隔“2”取值任务3:【二维列表】编写下列代码,观察结果。12345list_2d=[[0foriinrange(5)]foriinrange(5)]

list_2d[0].append(3)

list_2d[0].append(5)

list_2d[2].append(7)

print(list_2d)结果:[[0,0,0,0,0,3,5],[0,0,0,0,0],[0,0,0,0,0,7],[0,0,0,0,0],[0,0,0,0,0]]任务4:【列表的赋值机制】写出下列语句执行后的结果。123456a=[1,2,3]

b=a

c=[]

c=a

d=a[:]

print(a,b,c,d)结果为:[1,2,3][1,2,3][1,2,3][1,2,3]继续执行如下语句:12b[0]='b'

print(a,b,c,d)结果为:['b',2,3]['b',2,3]['b',2,3][1,2,3]继续执行如下语句:1print(id(a),id(b),id(c),id(d))结果为:1517100229256151710022925615171002292561517100229320继续执行如下语句:12c[0]='c'

print(a,b,c,d)结果为:['c',2,3]['c',2,3]['c',2,3][1,2,3]继续执行如下语句:12d[0]='d'

print(a,b,c,d)结果为:['c',2,3]['c',2,3]['c',2,3]['d',2,3]继续执行如下语句:1print(id(a),id(b),id(c),id(d))结果为:2440527569544244052756954424405275695442440527569608请对上述的实验过程进行总结:总结:可以看到a,b,c三个是同一个id值,当改变当中任意一列表元素的值后,三者会同步改变。任务5:【列表与循环的混合使用】1、输出结果:[1lovepython,2lovepython,3lovepython,10lovepython]程序编写于下方alist=['{:d}lovepython'.format(i+1)foriinrange(10)]

print(alist)2、输出结果:[(0,0),(0,2),(2,0),(2,2)]程序编写于下方aList=[]

foriinrange(0,3,2):

forjinrange(0,3,2):

aList.append((i,j))

print(aList)四、拓展任务任务1:【列表推导式应用】使用列表推导式生成100以内的所有偶数。程序编写于下方aList=[iforiinrange(2,101,2)]

print(aList)任务2:【列表推导式应用2】使用列表推导式实现矩阵转置。程序编写于下方aList=[[1,2,3],[1,2,3],[1,2,3]]

bList=[]

xList=[]

foriinrange(0,3):

forjinrange(0,3):

xList.append(aList[j][i])

bList.append(xList)

xList=[]

print('转换之前:{}转换之后:{}'.format(aList,bList))任务3:【加密算法】请按照加密规则实现加密算法,加密规则如下:每位数字都加上7,然后再用它除以10的余数代替该数字,再将第一位和第三位交换,第二位和第四位交换。程序编写于下方defget_password(pasw):

num=0

password=''

Word=list(pasw)

foriinWord:

mod=(eval(i)+7)%10

Word[num]=str(mod)

num+=1

a=Word[0];Word[0]=Word[2];Word[2]=a

b=Word[1];Word[1]=Word[3];Word[3]=b

forjinWord:

password=password+j

returnpassword

word=input('请输入一个四位数的密码:')

print('加密后的密码是:{}'.format(get_password(word)))4.5.2实训2【元组】一、实训目的1.掌握元组基本操作2.掌握列表与元组的相互转化二、单元练习(一)选择题1.Python元组不包含了以下哪个内置函数() A.len() B.max() C.min() D.tuple() E.以上都是2.以下哪个选项输出值为3?(A) A.len((1,2,3)) B.3in(1,2,3) C.forxin(1,2,3): printx3.tuple函数可以达到什么效果?(D) A.计算元组元素个数 B.返回元组中元素最大值

C.将元组转换成列表 D.将列表转换成元组(二)填空题1.已知tmp=['Deris','Weng',2018,2019],请填写下面的结果。

tmp[1]=Weng

tmp[-1]=2019

tmp[:2]=['Deris','Weng']

tmp[::2]=['Deris',2018]tmp[::-1]=[2019,2018,'Weng','Deris']2.请描述tup(50)和tup(50,)的区别?3.请填写Python表达式对应的结果。Python表达式结果len((1,2,3,4,5))5(1,2,3)+(4,5,6,7)(1,2,3,4,5,6,7)(123)*4492(123,)*4(123,123,123,123)3in(1,2,33,4,5)Falseforxin(1,2,3,4):print(x)1234三、实训任务任务1:【列表与元组的相互转化】编写下列代码,观察结果。123T=('cc','aa','dd','bb')tmp=list(T)print(tmp)结果:['cc','aa','dd','bb']12T=tuple(tmp)print(T)继续编写,结果:('cc','aa','dd','bb')任务2:【元组的使用】打印输出'one','two','four','five','six'的temp元组,在two,four之间加入three,截取前两项。程序编写于下方atup=('one','two','four','five','six')

print(list(atup))

list1=list(atup)

list1.insert(2,'three')

btup=tuple(list1)

print(btup)

5.5实训5.5.1实训1【字符串】一、实训目的1、学会字符串的连接、格式化、转换、分割2、掌握子集的选择:切片运算3、掌握字符串与列表转换4、了解字符与ASCII码的转换二、单元练习定义:str="www.P",写出执行下面语句后的结果。转义字符执行结果描述语句的作用print(str.upper())WWW.PYTHON.COM字符串大写print(str.lower())字符串小写print(str.title())Www.Python.Com字符串标题化,所有单词以大写开始print(str.capitalize())W第一个字母大写print(str.isalnum())False是否含有一个数字print(str.isalpha())False如果字符串至少有一个字符并且所有字母都是字母则返回true,否则返回falseprint(str.isdigit())False字符串是否只包含数字print(str.islower())False如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回true,否则返回falseprint(str.isupper())False如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回true,否则返回falseprint(str.istitle())False如果字符串是标题化则返回true,否则返回falseprint(str.isspace())False如果字符串只包含空白,则返回ftrue,否则返回false

三、实训任务任务1:【字符串基础训练】1.字符串a="theDerisChristoPheriskind"编写代码去掉字符串的空格。程序编写于下方a="theDerisChristoPheriskind"print(a.replace('',''))2.字符串a=“hello”,b=“append”编写代码将两个字符串连接起来。程序编写于下方a='hello'

b='append'

print(a+b)3.字符串a=“goodstudent”编写代码查找”s”在字符串的位置。程序编写于下方a='goodstudent'

c=0

foriina:

ifi=='s':

print(c)

c+=14.字符串a=“goodstudent”编写代码计算他的长度。程序编写于下方a='goodstudent'

print(len(a))5.字符串a=“goodStudent”编写代码使该字符串大写输出。程序编写于下方a='goodStudent'

print(a.upper())6.字符串a=“goodStudent”编写代码使字符串逆序输出。程序编写于下方a='goodStudent'

print(a[::-1])7.字符串a=“goodStudent”,b=“o”,编写代码查找字符串b在a中的位置。程序编写于下方a='goodStudent'

b='o'

c=0

foriina:

ifi==b:

print(c)

c+=18.字符串a=“goodStudent”编写代码使字符串大小写互换。程序编写于下方a='goodStudent'

print(a.swapcase())9.字符串a=“goodStudent”编写代码将字符串中的o替换为C。程序编写于下方a='goodStudent'

print(a.replace('o','C'))10.字符串a=“good”,为该字符串添加元素“Student”。程序编写于下方a='good'

print(a+'Student')11.在屏幕上打印出\n。程序编写于下方print('\\n')12.在python中输出保留两位小数输出π。程序编写于下方pi=3.1415926

print('%.2f'%(pi))13.现有字符串“5”,格式化字符串使其输出“05”,“5aa”。程序编写于下方print('{:0>2s}'.format('5'))

print('{:a<3s}'.format('5'))任务2:【字符串中子串出现的次数】计算字符串中子串出现的次数。要求:用户输入一个字符串,然后再输入一个子串,程序判断该子串在字符串中出现的次数,最后打印出来。 程序编写于下方a='111110111011101110111'

word=input('请输入字符串:')

wod=input('请输入子串:')

print('该字符串中字串共出现{}次'.format(len(word.split(wod))-1))任务3:【字符串排序】对字符串进行排序。要求:用户输入多个字符串,字符串直接用特殊符号-逗号(,)隔开,程序对输入的多个字符进行排序,最后根据排序结果打印出来。 程序编写于下方num=''

word=input('请输入字符串:')

word=word.split(',')

word.sort()

print(word)任务4:【敏感词替换】对字符串中敏感词进行替换。要求:根据需要定义一个敏感词库,例如:words=(‘暴力’,‘非法’,‘攻击’),然后用户输入一个字符串,如果该字符串中有words中的敏感词汇,将对该字符串进行敏感词汇的替换(用***代替敏感词汇),最后把替换后的字符串打印出来。程序编写于下方方法:defdesensity(sentences):words=('暴力','非法','攻击')foriinwords:sentences=sentences.replace(i,'***')returnsentencess='暴力@@@32323232323232非法非法232sdsd攻击sd非法45'print(desensity(s))三、拓展任务任务1:【字符串加密】要求:编写一个函数实现字符串加密,先将字符串中每个字符的ASCII码都加10,转换成另外一个字符,然后再转出回字符形式,获得加密后的字符串。提示:ord()函数主要用来返回对应字符的ASCII码,chr()主要用来表示ASCII码对应的字符。程序编写于下方defTo_password(pas):

password=''

foriinpas:

password+=chr(ord(i)+10)

returnpassword

words=input('请输入要加密的字符串:')

print(To_password(words))任务2:【字符串解密】要求:编写一个函数实现字符串解密。实现对任务1中的加密过的字符串的解密功能。

程序编写于下方defGet_password(pas):

password=''

foriinpas:

password+=chr(ord(i)-10)

returnpassword

words=input('请输入要解密的字符串:')

print(Get_password(words))任务3:【字符串日期转换为易读的日期格式】要求:编写程序实现将字符串日期转换为易读的日期格式。例如:将"Aug28201812:00AM"转换为:“2018-08-2800:00:00”。提示:可以用dateutil库中的parser函数。程序编写于下方任务4:【赛手的名单】两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和z比,c说他不和x,y比,请编程序找出三队赛手的名单。程序编写于下方5.5.2实训2【文件】一、实训目的1、能够利用文件存储字符串2、掌握文本文件的读写二、单元练习请按照要求完成下面空白处,实现相应的功能。1.显示目录内容12importglobfilelist=glob.('*.jpg')+glob.('*.gif')2.判断权限1234ifos.access(myfile,_):print(myfile,'具有写权限')ifos.access(myfile,,,):print(myfile,'具有读、写以及执行权限')3.删除一组以.jpg以及*.gif为扩展名的文件12forfileinglob.('*.jpg')+glob.('*.gif'):os.(file)二、实训任务任务1:【字符串基础训练】1.在当前目录下创建一个“test.log”文件。程序编写于下方file=open('test.txt','w')2在test文件中写入“HelloWord”。程序编写于下方file=open('test.txt','w')

file.write('HelloWord')

file.close()3.在test文件“HelloWord“后面输入”Python”。程序编写于下方file=open('test.txt','a')

file.write('Python')

file.close()4.查找当前文件操作标记的位置(提示:seek())。程序编写于下方f=open('test.txt','r')

x=f.tell()

print('当前文件操作标记位置是:{}'.format(x))

f.close()5.把文件操作符的位置移动最前面。程序编写于下方f=open('test.txt','r')

f.seek(0)

x=f.tell()

print('当前文件操作标记位置是:{}'.format(x))

f.close()6.以二进制方式输出test文件。程序编写于下方defget_bin(str):

bindata=''

foriinstr:

ifi.isalpha():

d=bin(ord(i))

elifi.isdigit():

d=bin(eval(i))

bindata+=d

returnbindata

f=open('test.txt','r')

f.seek(0)

data=f.read()

print(get_bin(data).split('0b'))

f.close()7.关闭test文件。程序编写于下方f.close()8.删除test文件。程序编写于下方importos

print(os.remove('test.txt'))9.编写代码输出当前Python脚本工作的目录路径。程序编写于下方importos

print(os.getcwd())任务2:【文件内容合并】有两个磁盘文件A和B,各存放一行字母,要求编写代码实现将这两个文件中的信息合并,并按字母先后顺序排列,最后输出到一个新文件C中。程序编写于下方f1=open('test1.txt','r')

f2=open('test2.txt','r')

f3=open('test3.txt','w')

alist=[]

f1.seek(0)

f2.seek(0)

data1=f1.read()

data2=f2.read()

data3=data1+data2

foriindata3:

alist.append(i)

alist.sort()

data3=''.join(alist)

f3.write(data3)

print(data3)

f1.close()

f2.close()

f3.close()三、拓展任务任务1:【文件存储】从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存,并实现循环输入,直到输入一个#为止。程序编写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论