【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案_第1页
【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案_第2页
【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案_第3页
【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案_第4页
【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案

有些题目顺序不一致,下载后按键盘ctrl+F进行搜索第一周:计算机和Python程序第1周单元作业1.显示三个不同的消息题目内容:编写程序显示三条消息:“WelcometoPython”、“WelcometoComputerScience”和“Programmingisfun”。输入格式:无输出格式:无输入样例:无输出样例:WelcometoPythonWelcometoComputerScienceProgrammingisfun

答案:【print("WelcometoPython")

print("WelcometoComputerScience")

print("Programmingisfun")】单元测验一1.单选题:print("1",1)的输出是()

选项:

A、11

B、11

C、1,1

D、输出错误

答案:【11】2.单选题:计算机中信息处理和信息储存用()

选项:

A、二进制代码

B、十进制代码

C、十六进制代码

D、ASCII代码

答案:【二进制代码】3.单选题:python源程序执行的方式:()

选项:

A、编译执行

B、包含了提前编译的解释执行

C、直接执行

D、边编译边执行

答案:【包含了提前编译的解释执行】4.单选题:关于import引用,以下选项中描述错误的是:()

选项:

A、使用importturtle引入turtle库

B、importturtle之后直接执行showturtle()就可以显示画笔形状

C、不引入turtle库是无法使用库中的函数的

D、import保留字用于导入模块或者模块中的对象

答案:【importturtle之后直接执行showturtle()就可以显示画笔形状】5.单选题:以下关于程序设计语言的描述,错误的选项是:()

选项:

A、Python语言是开源的

B、汇编语言是可以直接操作计算机硬件的编程语言

C、程序设计语言经历了机器语言、汇编语言和脚本语言三个阶段

D、编译和解释的区别是一次性翻译程序还是每次执行时翻译程序

答案:【程序设计语言经历了机器语言、汇编语言和脚本语言三个阶段】第二周:Python程序基础单元测验二1.单选题:以下哪个不是python中的关键字(保留字)()

选项:

A、if

B、else

C、import

D、print

答案:【print】2.单选题:Python语言语句块的标记是()

选项:

A、分号

B、逗号

C、缩进

D、/

答案:【缩进】3.单选题:下面哪个不是Python合法的标识符()

选项:

A、int32

B、40XL

C、self

D、__name__

答案:【40XL】4.单选题:下面代码的输出结果是()x=10y=3print(x%y,x**y)

选项:

A、31000

B、130

C、330

D、11000

答案:【11000】5.单选题:下列哪个语句在Python中是非法的?

选项:

A、x=y=z=1

B、x=(y=z+1)

C、x,y=y,x

D、x+=y

答案:【x=(y=z+1)】6.单选题:关于eval函数,以下选项中描述错误的是()

选项:

A、eval函数的作用是将输入的字符串转为Python语句,并执行该语句

B、如果用户希望输入一个数字,并用程序对这个数字进行计算,可以采用?eval(input(<输入提示字符串>))?组合

C、执行?eval("Hello")?和执行?eval("?'Hello'?")?得到相同的结果

D、eval?函数的定义为:eval(source,?globals=None,?locals=None,?/)

答案:【执行?eval("Hello")?和执行?eval("?'Hello'?")?得到相同的结果】7.单选题:表达式?eval('500/10')?的结果是:()

选项:

A、'500/10'

B、500/10

C、50

D、50.0

答案:【50.0】8.单选题:以下选项中符合Python语言变量命名规则的是()

选项:

A、*i

B、3_1

C、AI!

D、Templist

答案:【Templist】9.单选题:关于赋值语句,以下选项中描述错误的是()

选项:

A、在Python语言中,有一种赋值语句,可以同时给多个变量赋值

B、设x="alice";y="kate",执行x,y=y,x可以实现变量x和y值的互换

C、设a=10;b=20,执行a,b=a,a+bprint(a,b)和a=bb=a+bprint(a,b)之后,得到同样的输出结果:1030

D、在Python语言中,“=”表示赋值,即将“=”右侧的计算结果赋值给左侧变量,包含“=”的语句称为赋值语句

答案:【设a=10;b=20,执行a,b=a,a+bprint(a,b)和a=bb=a+bprint(a,b)之后,得到同样的输出结果:1030】10.单选题:关于Python语言的注释,以下选项中描述错误的是()

选项:

A、Python语言的单行注释以#开头

B、Python语言的单行注释以单引号’开头

C、Python语言的多行注释可以用’’'(三个单引号)开头和结尾

D、Python语言有两种注释方式:单行注释和多行注释

答案:【Python语言的单行注释以单引号’开头】第2周单元作业1.投资额题目内容:假如你想将一笔钱以固定年利率存入账户。如果你希望三年之后账户中有5000元,你现在需要存入多少钱?使用下面的公式可以算出初始存款:编写一个程序,分3行分别输入最终金额值、百分比表示的年利率以及年数,然后输出最初存款额。输入格式:最终金额值、百分比表示的年利率以及年数,输入下一项需换行输出格式:最初存款额(注意:计算后保持原样输出,不要保留小数位数)输入样例:10004.255输出样例:808.8639197424636

答案:【final_amount=float(input())

annual_interest_rate=float(input())/100

years=int(input())

monthly_interest_rate=annual_interest_rate/12

months=years*12

initial_deposit=final_amount/((1+monthly_interest_rate)**months)

print(initial_deposit)】2.分割数字题目内容:编写一个程序,提示用户输入四位整数并以反向顺序显示。输入格式:一个四位的整数输出格式:四个一位整数,在同一行输出,空格分隔,结尾无空格输入样例:1234输出样例:4321

答案:【num=int(input())

digit1=num%10

digit2=(num//10)%10

digit3=(num//100)%10

digit4=num//1000

print(digit1,digit2,digit3,digit4)】第三周:数字与字符串第3周单元作业1.计算能量题目内容:编写一个程序,计算将水从初始温度加热到最终温度所需的能量。提示用户输入以千克计算的水量以及水的初始温度和最终温度。计算能量的公式是:Q=M*(finalTemperature-initialTemperature)*4184。M是按千克计的水量,温度为摄氏温度,热量Q以焦耳计。输入格式:以千克计算的水量以及水的初始温度和最终温度(摄氏温度),输入下一项需换行输出格式:以焦耳计算的能量(小数点后保留一位)输入样例:55.53.510.5输出样例:1625484.0

答案:【M=float(input())

initialTemperature=float(input())

finalTemperature=float(input())

Q=M*(finalTemperature-initialTemperature)*4184

print("{:.1f}".format(Q))】2.找出ASCII码的字符题目内容:编写一个程序,接收一个ASCII码值(一个0~127之间的整数),然后显示它对应的字符。输入格式:一个0~127之间的整数输出格式:一个字符输入样例:97输出样例:a

答案:【ascii_value=int(input())

print(chr(ascii_value))】单元测验三1.单选题:关于Python语言数值操作符,以下选项中描述错误的是()

选项:

A、x//y表示x与y之整数商,即不大于x与y之商的最大整数

B、x**y表示x的y次幂,其中,y必须是整数

C、x%y表示x与y之商的余数,也称为模运算

D、x/y表示x与y之商

答案:【x**y表示x的y次幂,其中,y必须是整数】2.单选题:关于Python语言的变量,以下选项中说法正确的是()

选项:

A、随时声明、随时使用、随时释放

B、随时命名、随时赋值、随时使用

C、随时声明、随时赋值、随时变换类型

D、随时命名、随时赋值、随时变换类型

答案:【随时命名、随时赋值、随时使用】3.单选题:下列哪个语句输出浮点数类型变量x保留显示2位小数的结果是错误的:()

选项:

A、print("{%.2f}".format(x))

B、print("%.2f"%x)

C、print("{:.2f}".format(x))?

D、print(format(x,".2f"))

答案:【print("{%.2f}".format(x))】4.单选题:下面代码的输出结果是()x=10y=3print(divmod(x,y))

选项:

A、(1,3)

B、3,1

C、1,3

D、(3,1)

答案:【(3,1)】5.单选题:Python?语言中,以下表达式输出结果为11的选项是:()

选项:

A、print(eval("1+1"))?

B、print(eval("1"?+?"1"))?

C、print("1+1")

D、print("1","1")

答案:【print(eval("1"?+?"1"))?】6.单选题:下列哪个不是Python支持的数据类型()

选项:

A、char

B、int

C、float

D、str

答案:【char】7.单选题:下面代码的输出结果是()x=12.34print(type(x))

选项:

A.<plex.>

B.<.>

C.<class.float.>

D.<class.bool.>

答案:【<class.float.>】8.单选题:以下选项中,修改turtle画笔颜色的函数是()

选项:

A、seth()

B、colormode()

C、bk()

D、pencolor()

答案:【pencolor()】9.单选题:以下对数值运算操作符描述错误的选项是:()

选项:

A、Python提供了9个基本的数值运算操作符

B、Python数值运算操作符也叫做内置操作符

C、Python数值运算操作符需要引用第三方库math

D、Python二元数学操作符都有与之对应的增强赋值操作符

答案:【Python数值运算操作符需要引用第三方库math】[vk-content]10.单选题:下面代码的执行后x值是()x=2x*=3+5**2

选项:

A、15

B、56

C、8192

D、13

答案:【56】第四周:分支结构第四周单元作业1.回文数题目内容:编写程序提示用户输入一个三位整数,然后决定它是否是一个回文数。如果一个数从左向右和从右向左读取是一样的,那么这个数是回文数。输入格式:一个三位整数输出格式:一个字符串(输入三位整数是否为回文数),如下xxxisapalindrome或xxxisnotapalindrome输入样例:321输出样例:321isnotapalindrome

答案:【num=int(input())

#提取百位数字

hundreds=num//100

#提取个位数字

units=num%10

ifhundreds==units:

print(f"{num}isapalindrome")

else:

print(f"{num}isnotapalindrome")】2.解线性方程题目内容:你可以使用克莱姆法则解下面的线性方程2x2系统:编写程序,用户输入a、b、c、d、e和f,然后显示x和y的结果。如果ad-bc为零,呈现“Theequationhasnosolution”。输入格式:a、b、c、d、e和f的值(逗号分隔)输出格式:x和y的值(空格分隔,小数点后保留1位)输入样例:1.0,2.0,2.0,4.0,4.0,5.0输出样例:Theequationhasnosolution

答案:【importmath

a,b,c,d,e,f=map(float,input().split(','))

denominator=a*d-b*c

ifdenominator==0:

print("Theequationhasnosolution")

else:

x=(e*d-b*f)/denominator

y=(a*f-e*c)/denominator

print("{:.1f}{:.1f}".format(x,y))】单元测验四1.单选题:以下语句执行后a、b、c的值是:()a="watermelon"b="strawberry"c="cherry"ifa>b:c=aa=bb=c

选项:

A、watermelonstrawberrycherry

B、watermeloncherrystrawberry

C、strawberrycherrywatermelon

D、strawberrywatermelonwatermelon

答案:【strawberrywatermelonwatermelon】2.单选题:以下关于Python的控制结构,正确的是:()

选项:

A、每个if条件后要使用冒号:

B、在Python中,有switch-case语句

C、Python中的break表示退出分支

D、elif可以单独使用

答案:【每个if条件后要使用冒号:】3.单选题:关于Python字符编码,以下选项中描述错误的是()

选项:

A、chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换

B、print(chr(65))输出A

C、print(ord('a'))输出97

D、Python字符编码使用ASCII编码

答案:【Python字符编码使用ASCII编码】4.单选题:关于Python的分支结构,以下选项中描述错误的是()

选项:

A、分支结构使用if保留字

B、分支结构可以向已经执行过的语句部分跳转

C、Python中if-elif-else语句描述多分支结构

D、Python中if-else语句用来形成二分支结构

答案:【分支结构可以向已经执行过的语句部分跳转】5.单选题:以下程序的输出结果是:()a=30b=1ifa>=10:a=20elifa>=20:a=30elifa>=30:b=aelse:b=0print('a={},b={}'.format(a,b))

选项:

A、a=20,b=1

B、a=30,b=30

C、a=20,b=20

D、a=30,b=1

答案:【a=20,b=1】6.单选题:以下程序的输出结果是:()t="Python"ift>="python":t="python"else:t="None"print(t)

选项:

A、Python

B、python

C、None

D、t

答案:【None】7.单选题:以下关于程序控制结构描述错误的是:()

选项:

A、分支结构中有单分支结构和双分支结构

B、Python里,能用分支结构写出循环的算法

C、分支是三种基本结构的一种

D、多分支也可以由分支的嵌套实现

答案:【Python里,能用分支结构写出循环的算法】8.单选题:设x=10;y=20,下列语句能正确运行结束的是:()

选项:

A、max=x>y?x:y

B、if(x>y)print(x)

C、ifx>ymax=x

D、ifxelse:min=y

答案:【ifxelse:min=y】9.单选题:以下关于Python的控制结构,错误的是:()

选项:

A、elif可以单独使用

B、在Python中,没有switch-case语句

C、每个else后要使用冒号(:)

D、每个if条件后要使用冒号(:)

答案:【elif可以单独使用】10.单选题:下列表达式的运算结果是:()a=100b=Falsea*b>-1

选项:

A、False

B、1

C、0

D、True

答案:【True】第五周:循环结构单元测验五1.单选题:执行如下代码importturtleforiinrange(1,5):turtle.forward(50)turtle.left(90)在PythonTurtleGraphics中,绘制的是()

选项:

A、五边形

B、三角形

C、五角星

D、正方形

答案:【正方形】2.单选题:以下程序的输出结果是:()x=10whilex:x-=1ifnotx%2:print(x,end='')

选项:

A、86420

B、975311

C、97531

D、864200

答案:【86420】3.单选题:关于Python循环结构,以下选项中描述错误的是()

选项:

A、遍历循环中的遍历结构可以是字符串、range()函数等

B、break用来跳出for或者while循环,脱离该循环后程序从循环代码后继续执行

C、每个continue语句有能力跳出当前层次的循环

D、Python通过for、while等保留字提供遍历循环和无限循环结构

答案:【每个continue语句有能力跳出当前层次的循环】4.单选题:下面代码的输出结果是()forsin"HelloWorld":ifs=="W":continueprint(s,end="")

选项:

A、Hello

B、World

C、HelloWorld

D、Helloorld

答案:【Helloorld】5.单选题:以下关于random库的描述,正确的是:()

选项:

A、设定相同种子,每次调用随机函数生成的随机数不相同

B、通过fromrandomimport*引入random随机库的部分函数

C、uniform(0,1)与uniform(0.0,1.0)的输出结果不同,前者输出随机整数,后者输出随机小数

D、randint(a,b)是生成一个[a,b]之间的整数

答案:【randint(a,b)是生成一个[a,b]之间的整数】6.单选题:以下程序的输出结果是:()fornuminrange(1,4):sum*=numprint(sum)

选项:

A、6

B、7

C、7.0

D、TypeError出错

答案:【TypeError出错】7.单选题:下面代码的输出结果是()foriinrange(10):ifi%2==0:continueelse:print(i,end=",")

选项:

A、2,4,6,8,

B、0,2,4,6,8,

C、0,2,4,6,8,10,

D、1,3,5,7,9,

答案:【1,3,5,7,9,】8.单选题:以下关于循环结构的描述,错误的是:()

选项:

A、遍历循环使用for<循环变量>in<循环结构>语句,其中循环结构不能是字符串

B、使用range()函数可以指定for循环的次数

C、foriinrange(5)表示循环5次,i的值是从0到4

D、用字符串做循环结构的时候,循环的次数是字符串的长度

答案:【遍历循环使用for<循环变量>in<循环结构>语句,其中循环结构不能是字符串】9.单选题:下面代码的输出结果是()forsin"abc":foriinrange(3):print(s,end="")ifs=="c":break

选项:

A、aaabccc

B、aaabbbc

C、abbbccc

D、aaabbbccc

答案:【aaabbbc】10.单选题:下面代码的输出结果是()sum=1.0fornuminrange(1,4):sum+=numprint(sum)

选项:

A、6

B、7.0

C、1.0

D、7

答案:【7.0】第五周单元作业1.数列求和题目内容:编写程序求解Sn=a+aa+aaa+aaaa+...,其中a是1~9之间的一个数字,n为一正整数,a和n均从键盘输入。例如:输入a为2,n为5,Sn=2+22+222+2222+22222(此时共有5个数相加)。输入格式:a和n的值(逗号分隔)输出格式:数列求和的结果输入样例:2,5输出样例:24690

答案:【a_str,n_str=input().split(',')

a=int(a_str)

n=int(n_str)

total=0

term=0

foriinrange(1,n+1):

term=term*10+a

total+=term

print(total)】2.找出一个整数的所有因子题目内容:编写程序读取一个整数,然后按顺序显示它所有的最小因子,也称之为素因子。例如:如果输入整数120,那么输出应该如下所示:2,2,2,3,5。输入格式:一个整数输出格式:所有的最小因子(逗号分隔)输入样例:120输出样例:2,2,2,3,5

答案:【defprime_factors(n):

i=2

factors=[]

whilei*i<=n:

ifn%i:

i+=1

else:

n//=i

factors.append(i)

ifn>1:

factors.append(n)

returnfactors

num=int(input())

result=prime_factors(num)

print(','.join(str(factor)forfactorinresult))】第六周:函数单元测验六1.单选题:以下程序的输出结果是:()>>>deff(x,y=0,z=0):pass>>>f(1,,3)

选项:

A、pass

B、None

C、not

D、出错

答案:【出错】2.单选题:以下关于函数选项中描述错误的是()

选项:

A、函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。

B、使用函数的主要目的是减低编程难度和代码重用。

C、Python使用del保留字定义一个函数。

D、函数是一段具有特定功能的、可重用的语句组。

答案:【Python使用del保留字定义一个函数。】3.单选题:以下程序的输出结果是:()defcalu(x=3,y=2,z=10):return(x**y*z)h=2w=3print(calu(h,w))

选项:

A、90

B、70

C、60

D、80

答案:【80】4.单选题:以下关于函数参数和返回值的描述,正确的是:()

选项:

A、采用名称传参的时候,实参的顺序需要和形参的顺序一致

B、默认参数传递指的是没有传入对应参数值的时候,就不使用该参数

C、函数能同时返回多个参数值,需要形成一个列表来返回

D、Python支持按照位置传参也支持名称传参,但不支持地址传参

答案:【Python支持按照位置传参也支持名称传参,但不支持地址传参】5.单选题:以下程序的输出结果是:()ab=4defmyab(ab,xy):ab=pow(ab,xy)print(ab,end="")myab(ab,2)print(ab)

选项:

A、44

B、1616

C、416

D、164

答案:【164】6.单选题:以下关于python内置函数的描述,错误的是:()

选项:

A、id()返回一个数据的一个编号,跟其在内存中的地址无关

B、type()返回一个数据对应的类型

C、int()能把整数数字字符串转换成整数

D、max()可以返回众多参数中的最大值

答案:【id()返回一个数据的一个编号,跟其在内存中的地址无关】7.单选题:以下程序的输出结果是:()deffunc(num):num*=2x=20func(x)print(x)

选项:

A、40

B、出错

C、无输出

D、20

答案:【20】8.单选题:Python中,函数定义可以不包括以下:()

选项:

A、函数名

B、可选参数列表

C、关键字def

D、一对圆括号

答案:【可选参数列表】9.单选题:Python中函数不包括()

选项:

A、标准库函数

B、第三方库函数

C、参数函数

D、内建函数

答案:【参数函数】10.单选题:以下关于Python函数对变量的作用,错误的是:()

选项:

A、简单数据类型在函数内部用global保留字声明后,函数退出后该变量保留

B、全局变量指在函数之外定义的变量,在程序执行全过程有效

C、简单数据类型变量仅在函数内部创建和使用,函数退出后变量被释放

D、函数里不允许有和函数外同名的变量

答案:【函数里不允许有和函数外同名的变量】第六周单元作业1.反素数题目内容:反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。编写程序,输入一个正整数,显示大于该数的前10个反素数。输入格式:一个正整数输出格式:显示前10个反素数,在同一行输出,空格分隔,结尾无空格。输入样例:12输出样例:1317313771737997107113

答案:【defis_prime(n):

"""

判断一个数是否为素数

"""

ifn<=1:

returnFalse

ifn<=3:

returnTrue

ifn%2==0orn%3==0:

returnFalse

i=5

whilei*i<=n:

ifn%i==0orn%(i+2)==0:

returnFalse

i+=6

returnTrue

defis_palindrome(n):

"""

判断一个数是否为回文数

"""

num_str=str(n)

returnnum_str==num_str[::-1]

defreverse_num(n):

"""

反转一个数

"""

num_str=str(n)

reversed_str=num_str[::-1]

returnint(reversed_str)

defmain():

"""

主函数,用于处理输入和输出

"""

num=int(input())#获取用户输入的正整数

count=0#用于计数找到的反素数的个数

result=[]#存储找到的反素数

whilecount<10:

num+=1

reversed_num=reverse_num(num)

ifis_prime(num)andis_prime(reversed_num)andnotis_palindrome(num):

result.append(num)

count+=1

print("".join(str(x)forxinresult))

if__name__=="__main__":

main()

】2.求一个整数各个数字之和题目内容:编写一个函数,计算一个整数各个数字的和。使用下面的函数头:defsumDigits(n):例如:sumDigits(234)返回9(2+3+4)。提示:使用求余运算符%提取数字,而使用除号//去掉提取出来的数字。使用一个循环来反复提取和去掉每个数字,直到所有数字被提取完为止。编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。输入格式:一个正整数输出格式:这个正整数所有数字之和输入样例:123输出样例:6

答案:【defsumDigits(n):

"""

此函数用于计算一个整数n各个数字的和

:paramn:输入的整数

:return:整数各个数字的和

"""

total=0

whilen>0:

total+=n%10#取n的最后一位数字并累加到total中

n=n//10#去掉n的最后一位数字

returntotal

defmain():

"""

主函数,处理输入和输出

"""

num=int(input())#获取用户输入的正整数

print(sumDigits(num))#调用sumDigits函数并输出结果

if__name__=="__main__":

main()

】第七周:列表和元组第七周单元作业1.合并两个有序列表题目内容:编写下面的函数合并两个有序列表构成一个新的有序列表:defmerge(list1,list2):编写测试程序提示用户输入两个有序列表,然后显式合并后的有序列表。要求:不允许使用系统提供的sort方法。输入格式:两个有序列表(列表元素之间空格分隔,结尾无空格,回车换行输入下一个有序列表)提示:从键盘以字符串形式读取一行数值,以空格分割字符串成列表,转换列表元素为数值。输出格式:合并后的有序列表(列表格式)输入样例:1516611112456输出样例:[1,2,4,5,5,6,16,61,111]

答案:【defmerge(list1,list2):

"""

合并两个有序列表为一个新的有序列表

:paramlist1:第一个有序列表

:paramlist2:第二个有序列表

:return:合并后的有序列表

"""

result=[]

i=0#列表1的指针

j=0#列表2的指针

whilei<len(list1)andj<len(list2):

iflist1[i]<list2[j]:

result.append(list1[i])

i+=1

else:

result.append(list2[j])

j+=1

#将剩余元素添加到结果列表中

whilei<len(list1):

result.append(list1[i])

i+=1

whilej<len(list2):

result.append(list2[j])

j+=1

returnresult

defmain():

"""

主函数,处理输入和输出

"""

defparse_input():

"""

解析输入,将输入的字符串转换为有序列表

"""

sequence=input().split()#将输入的字符串按空格分割

sequence=[int(num)fornuminsequence]#将元素转换为整数

returnsequence

list1=parse_input()#获取第一个有序列表

list2=parse_input()#获取第二个有序列表

merged_list=merge(list1,list2)#合并两个有序列表

print(merged_list)

if__name__=="__main__":

main()】2.删除字符串中连续的重复字符题目内容:通过键盘输入一串小写字母(a~z)组成的字符串,编写一个测试程序,将字符串中连续出现的重复字符删去(即在一个字符串中,如果遇到连续重复的字符只出现一次),然后输出处理后的字符串。例如:str1="aabbccddaabbccdd",输出结果为:"abcdabcd"。输入格式:一个字符串输出格式:删除连续的重复字符后得到的新字符串输入样例:aabcccccaaa输出样例:abca

答案:【defmain():

str_input=input()#获取用户输入的字符串

result=""

iflen(str_input)==0:#处理输入字符串为空的情况

print(result)

return

result+=str_input[0]#先添加第一个字符

foriinrange(1,len(str_input)):

ifstr_input[i]!=str_input[i-1]:#比较当前字符和前一个字符

result+=str_input[i]#不重复则添加

print(result)

if__name__=="__main__":

main()

】单元测验七1.单选题:以下关于列表操作的描述,错误的是:()

选项:

A、通过append方法可以向列表添加元素

B、通过extend方法可以将另一个列表中的元素逐一添加到列表中

C、通过insert(index,object)方法在指定位置index前插入元素object

D、通过add方法可以向列表添加元素

答案:【通过add方法可以向列表添加元素】2.单选题:运行以下程序,输出结果的是:str1="DongbeiUniversity"str2=str1[:7]+"Normal"+str1[-10:]print(str2)

选项:

A、NormalU

B、DongbeiNormal

C、NormalUniversity

D、DongbeiNormalUniversity

答案:【DongbeiNormalUniversity】3.单选题:以下程序的输出结果是:()lcat=["狮子","猎豹","虎猫","花豹","孟加拉虎","美洲豹","雪豹"]forsinlcat:if"豹"ins:print(s,end="")continue

选项:

A、猎豹花豹美洲豹雪豹

B、猎豹

C、雪豹

D、猎豹花豹美洲豹雪豹

答案:【猎豹花豹美洲豹雪豹】4.单选题:以下程序的输出结果是:()ls=["浣熊","豪猪","艾草松鸡","棉尾兔","叉角羚"]x="豪猪"print(ls.index(x,0))

选项:

A、0

B、-4

C、-3

D、1

答案:【1】5.单选题:以下关于列表和字符串的描述,错误的是:()

选项:

A、列表使用正向递增序号和反向递减序号的索引体系

B、列表是一个可以修改数据项的序列类型

C、字符和列表均支持成员关系操作符(in)和长度计算函数(len())

D、字符串是单一字符的无序组合

答案:【字符串是单一字符的无序组合】6.单选题:下面代码的输出结果是()vlist=list(range(5))print(vlist)

选项:

A、01234

B、0,1,2,3,4,

C、0;1;2;3;4;

D、[0,1,2,3,4]

答案:【[0,1,2,3,4]】7.单选题:给出如下代码:TempStr="HelloWorld"以下选项中可以输出“World”子串的是()

选项:

A、print(TempStr[–5:–1])

B、print(TempStr[–5:0])

C、print(TempStr[–4:–1])

D、print(TempStr[–5:])

答案:【print(TempStr[–5:])】8.单选题:给出如下代码importrandomasranlistV=[]ran.seed(100)foriinrange(10):i=ran.randint(100,999)listV.append(i)以下选项中能输出随机列表元素最大值的是()

选项:

A、print(listV.max())

B、print(listV.pop(i))

C、print(max(listV))

D、print(listV.reverse(i))

答案:【print(max(listV))】9.单选题:下面代码的输出结果是()listV=list(range(5))print(2inlistV)

选项:

A、False

B、0

C、-1

D、True

答案:【True】10.单选题:对于列表ls的操作,以下选项中描述错误的是()

选项:

A、ls.clear():删除ls的最后一个元素

B、ls.copy():生成一个新列表,复制ls的所有元素

C、ls.reverse():列表ls的所有元素反转

D、ls.append(x):在ls最后增加一个元素

答案:【ls.clear():删除ls的最后一个元素】第八周:文件和异常单元测验八1.单选题:运行以下程序:try:num=eval(input("请输入一个列表:"))num.reverse()print(num)except:print("输入的不是列表")从键盘上输入1,2,3,则输出的结果是:()

选项:

A、[1,2,3]

B、[3,2,1]

C、运算错误

D、输入的不是列表

答案:【输入的不是列表】2.单选题:关于Python对文件的处理,以下选项中描述错误的是()

选项:

A、Python通过解释器内置的open()函数打开一个文件

B、当文件以文本方式打开时,读写按照字节流方式

C、文件使用结束后要用close()方法关闭,释放文件的使用授权

D、Python能够以文本和二进制两种方式处理文件

答案:【当文件以文本方式打开时,读写按照字节流方式】3.单选题:关于程序的异常处理,以下选项中描述错误的是()

选项:

A、程序异常发生经过妥善处理可以继续执行

B、异常语句可以与else和finally保留字配合使用

C、编程语言中的异常和错误是完全相同的概念

D、Python通过try、except等保留字提供异常处理功能

答案:【编程语言中的异常和错误是完全相同的概念】4.单选题:执行以下程序,输入la,输出结果是:()la='python'try:s=eval(input('请输入整数:'))ls=s*2print(ls)except:print('请输入整数')

选项:

A、la

B、请输入整数

C、pythonpython

D、python

答案:【pythonpython】5.单选题:以下程序的输出结果是:()fo=open("text.txt",'w+')x,y='thisisatest','hello'fo.write('{}+{}\n'.format(x,y))print(fo.read())fo.close()

选项:

A、thisisatesthello

B、thisisatest

C、thisisatest,hello.

D、thisisatest+hello

答案:【thisisatest+hello】6.单选题:用户输入整数的时候不合规导致程序出错,为了不让程序异常中断,需要用到的语句是:()

选项:

A、if语句

B、eval语句

C、循环语句

D、try-except语句

答案:【try-except语句】7.单选题:以下关于Python文件的描述,错误的是:()

选项:

A、open函数的参数处理模式'b’表示以二进制数据处理文件

B、open函数的参数处理模式'w'表示可以对文件进行写操作

C、readline函数表示读取文件的下一行,返回一个字符串

D、open函数的参数处理模式'r'表示追加方式打开文件,删除已有内容

答案:【open函数的参数处理模式'r'表示追加方式打开文件,删除已有内容】8.单选题:Python文件只读打开模式是()

选项:

A、w

B、x

C、b

D、r

答案:【r】9.单选题:以下关于文件的描述错误的选项是:()

选项:

A、readlines()函数读入文件内容后返回一个列表,元素划分依据是文本文件中的换行符

B、read()一次性读入文本文件的全部内容后,返回一个字符串

C、readline()函数读入文本文件的一行,返回一个字符串

D、二进制文件和文本文件都是可以用文本编辑器编辑的文件

答案:【二进制文件和文本文件都是可以用文本编辑器编辑的文件】10.单选题:以下程序的输出结果是:()s=''try:foriinrange(1,10,2):s.append(i)except:print('error')print(s)

选项:

A、13579

B、[1,3,5,7,9]

C、2,4,6,8,10

D、error

答案:【error】第八周单元作业1.处理输入错误题目内容:要求用户从键盘输入一系列数据,预期是包含整型数值的。第一次输入的是数值总数量,如果数据项比预期的多或者少,抛出一个包含合适信息的RuntimeError异常;如果数据不是整型数值,抛出valueError异常。输入格式:一系列数据,第一个数据表示数值总数量,回车换行输入下一个数据,直接回车换行表示输入结束。输出格式:输入正确时输出数据求和结果,例如:"Thesumis6."数据项比预期的多或者少,输出"Error:dataquatityinvalid."数据不是整型数值,输出"Error:inputcontentsinvalid."输入样例:31234输出样例:Error:dataquatityinvalid.

答案:【defmain():

try:

num_count=int(input())#获取用户输入的数据项数量

input_data=[]

whileTrue:

data=input()

ifdata=="":

break

input_data.append(int(data))#将输入的数据转换为整数添加到列表中

iflen(input_data)!=num_count:#检查输入的数据项数量是否与预期相符

raiseRuntimeError("Error:dataquatityinvalid.")

total=sum(input_data)#计算输入数据的总和

print(f"Thesumis{total}.")

exceptValueError:

print("Error:inputcontentsinvalid.")

exceptRuntimeErrorase:

print(e)

if__name__=="__main__":

main()

】第九周:集合与字典单元测验九1.单选题:下面代码的输出结果是()d={"大海":"蓝色","天空":"灰色","大地":"黑色"}print(d["大地"],d.get("大地","黄色"))

选项:

A、黑的灰色

B、黑色黑色

C、黑色蓝色

D、黑色黄色

答案:【黑色黑色】2.单选题:以下表达式,正确定义了一个集合数据对象的是:()

选项:

A、x={200,’flg’,20.3}

B、x=(200,’flg’,20.3)

C、x=[200,’flg’,20.3]

D、x={‘flg’:20.3}

答案:【x={200,’flg’,20.3}】3.单选题:字典d={'Name':'Kate','No':'1001','Age':'20'},表达式len(d)的值为()

选项:

A、12

B、9

C、6

D、3

答案:【3】4.单选题:给出如下代码MonthandFlower={"1月":"梅花","2月":"杏花","3月":"桃花","4月":"牡丹花",\"5月":"石榴花","6月":"莲花","7月":"玉簪花","8月":"桂花",\"9月":"菊花","10月":"芙蓉花","11月":"山茶花","12月":"水仙花"}n=input("请输入1-12的月份:")print(n+"月份之代表花:"+MonthandFlower.get(str(n)+"月"))以下选项中描述正确的是()

选项:

A、代码实现了获取一个整数(1-12)来表示月份,输出该月份对应的代表花名

B、MonthandFlower是列表类型变量

C、MonthandFlower是一个元组

D、MonthandFlower是集合类型变量

答案:【代码实现了获取一个整数(1-12)来表示月份,输出该月份对应的代表花名】5.单选题:以下关于字典类型的描述,正确的是:()

选项:

A、字典类型可迭代,即字典的值还可以是字典类型的对象

B、表达式forxind:中,假设d是字典,则x是字典中的键值对

C、字典类型的键可以是列表和其他数据类型

D、字典类型的值可以是任意数据类型的对象

答案:【字典类型的值可以是任意数据类型的对象】6.单选题:以下描述错误的是:()

选项:

A、集合类型是一种具体的数据类型

B、序列类型和映射类型都是一类数据类型的总称

C、python的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合

D、字典类型的键可以用的数据类型包括字符串,元组,以及列表

答案:【字典类型的键可以用的数据类型包括字符串,元组,以及列表】7.单选题:以下程序的输出结果是:()dict={'Name':'baby','Age':7}print(dict.items())

选项:

A、[('Age',7),('Name','baby')]

B、('Age',7),('Name','baby')

C、'Age':7,'Name':'baby'

D、dict_items([('Age',7),('Name','baby')])

答案:【dict_items([('Age',7),('Name','baby')])】8.单选题:以下关于字典类型的描述,错误的是:()

选项:

A、字典类型是一种无序的对象集合,通过键来存取

B、字典类型可以在原来的变量上增加或缩短

C、字典类型可以包含列表和其他数据类型,支持嵌套的字典

D、字典类型中的数据可以进行分片和合并操作

答案:【字典类型中的数据可以进行分片和合并操作】9.单选题:以下关于字典操作的描述,错误的是:()

选项:

A、del用于删除字典或者元素

B、clear用于清空字典中的数据

C、len方法可以计算字典中键值对的个数

D、keys方法可以获取字典的值视图

答案:【keys方法可以获取字典的值视图】10.单选题:以下关于字典的描述,错误的是:()

选项:

A、字典中元素以键信息为索引访问

B、字典长度是可变的

C、字典是键值对的集合

D、字典中的键可以对应多个值信息

答案:【字典中的键可以对应多个值信息】第九周单元作业1.稀疏矩阵存储题目内容:稀疏矩阵是一系列数字,其中大部分项是0。存储稀疏矩阵的一个高效方式是字典,其中键是非0值的位置,值是序列中该位置对应的值。例如,序列0000040029可以表示为字典{5:4,8:2,9:9}。编写函数sparseArraySum,参数是两个这样的字典a和b,得到一个表示向量和的稀疏矩阵。也就是说,结果中位置i的值是a和b中位置i上值的和。假设稀疏矩阵数字序列长度为10。输入格式:两个表示稀疏矩阵的数字序列,数字之间空格分隔,结尾无空格,回车换行输入下一个数字序列输出格式:一个表示稀疏矩阵求和结果的数字序列,数字之间空格分隔,结尾无空格输入样例:10300400266000120003输出样例:7030160029

答案:【defsparseArraySum(a,b):

"""

此函数用于计算两个稀疏矩阵表示的字典a和b的和

:parama:第一个稀疏矩阵的字典表示

:paramb:第二个稀疏矩阵的字典表示

:return:求和后的稀疏矩阵的字典表示

"""

result={}

all_keys=set(a.keys())|set(b.keys())#合并两个字典的键

forkeyinall_keys:

val_a=a.get(key,0)#获取字典a中键对应的值,如果键不存在则默认为0

val_b=b.get(key,0)#获取字典b中键对应的值,如果键不存在则默认为0

total=val_a+val_b#求和

iftotal!=0:#仅存储不为0的结果

result[key]=total

returnresult

defmain():

"""

主函数,处理输入和输出

"""

defparse_input():

"""

解析输入的函数,将输入的数字序列转换为稀疏矩阵的字典表示

"""

sequence=input().split()#将输入的数字序列分割成列表

matrix_dict={}

fori,numinenumerate(sequence):

num=int(num)

ifnum!=0:#仅存储非零元素

matrix_dict[i]=num

returnmatrix_dict

a=parse_input()#获取第一个稀疏矩阵的字典表示

b=parse_input()#获取第二个稀疏矩阵的字典表示

result_dict=sparseArraySum(a,b)#计算稀疏矩阵的和

result_sequence=[0]*10#初始化结果序列,长度为10

forkey,valueinresult_dict.items():

result_sequence[key]=value#将字典中的非零元素填入结果序列

print("".join(str(num)fornuminresult_sequence))#将结果序列元素转换为字符串并使用空格连接输出

if__name__=="__main__":

main()】2.密码校验题目内容:校验密码是否合法:编写程序提示用户输入一个密码,要求长度在5-10位,密码里必须包含大写字母、小写字母和数字。根据用户输入会返回相应提示信息:如果密码长度不合法,返回“Thelengthofpasswordmustinrangeof5-10”;如果密码内容不合法,返回"Passwordmustincludeuppercase,lowercaseanddigit",否则返回“Passwordinputsuccess”。提示:可利用S.isdisjoint(T)方法,如果集合S与T没有相同元素,返回True。输入格式:一个字符串输出格式:一个字符串输入样例:asdQEWr123输出样例:Passwordinputsuccess

答案:【defcheck_password():

"""

此函数用于检查用户输入的密码是否合法

"""

password=input()#获取用户输入的密码

ifnot(5<=len(password)<=10):#检查密码长度是否在5到10之间

return"Thelengthofpasswordmustinrangeof5-10"

upper_set=set('ABCDEFGHIJKLMNOPQRSTUVWXYZ')#存储大写字母的集合

lower_set=set('abcdefghijklmnopqrstuvwxyz')#存储小写字母的集合

digit_set=set('0123456789')#存储数字的集合

password_set=

温馨提示

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

评论

0/150

提交评论