版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目一任务1.1一、选择题1.在下列选项中,哪一项不是Python语言的特性?(D)。A.简洁 B.开源 C.可移植 D.运行效率高2.下列哪一项不是Python语言的应用场景?(D)A.Web开发 B.数据分析 C.游戏开发 D.操作系统管理3.下列关于Python语言的说法中错误的是(C)。A.Python语言是从ABC语言发展起来的 B.Python语言是一门高级计算机语言C.Python语言只能编写面向对象的程序 D.Python程序的效率比C程序的效率低二、简答题1.请简述Python语言的特性。答:Python的特点主要有:简洁、解释型语言、可移植性、动态类型、面向对象、开源、丰富的标准库、可扩展性、多范式支持、良好的中文支持。2.请简述Python语言的应用场景。答:Python的应用场景主要有:Web开发、数据科学和数据分析、人工智能和机器学习、自动化运维和测试、游戏开发、网络编程、教育和科研。任务1.2一、选择题1.以下哪一种Python开发环境更适用于大型工程项目的开发?(C)A.PythonIDLE B.Eclipse C.PyCharm D.记事本2.下列关于开发环境的说法中错误的是(B)。A.JupyterNotebook适合进行交互式数据分析 B.PyCharm只提供付费版本C.Anaconda包含科学计算常用库 D.可以同时安装多个开发环境二、实践题请在自己的计算机上安装Python解释器和PyCharm。答:略任务1.3一、选择题1.常见的Python程序文件扩展名为(C)。A..pythonB..pC..pyD..txt2.关于Python代码的缩进规则,下列说法中错误的是(C)。A.缩进可以使用空格或Tab键,但同一代码块内必须一致B.缩进是Python程序中表示代码块的唯一方式C.缩进只是为了代码美观,不影响程序执行D.函数体、循环体、条件判断体等都需要通过缩进来界定3.关于Python注释,以下说法中正确的是(C)。A.单行注释只能使用“#”,多行注释只能使用“'''”B.注释会影响程序的执行速度C.“#这是一个注释”是正确的单行注释写法D.多行注释不能放在代码行的末尾4.在Python程序中导入模块的正确方式是(A)。A.“importmathasm”可以导入math模块并重命名为mB.“frommathimport*”这种写法在Python程序中是不允许的C.在导入模块时必须指定要使用的具体函数D.一个程序中只能导入一个模块二、编程题在PyCharm中编写并打印“欢迎来到Python的世界!”。答:略。项目二任务2.1一、选择题1.下列选项中,不属于Python关键字的是(C)。A.if B.for C.age D.and2.下列选项中,属于数字类型的是(D)。A.0 B.3.14 C.10+2j D.以上都是3.下列选项中,(C)不是有效的变量名。A._day B.banana C.2_n D.num_list二、填空题1.布尔类型的取值包括(True)和(False)。2.使用(type())函数可以查看数据的类型。三、简答题1.请简述Python中的数据类型有哪些。答:略2.请简述Python中标识符的命名规则。答:略任务2.2一、选择题1.幂运算的运算符是(B)。A.* B.** C.% D.//2.关于aorb的描述,错误的是(C)。A.若a=Trueb=True,则aorb==TrueB.若a=Trueb=False,则aorb==TrueC.若a=Trueb=True,则aorb==FalseD.若a=Falseb=False,则aorb==False3.优先级最高的运算符是(C)。A.* B.** C.() D.//二、简答题1.请简述Python中的运算符。答:略2.请简单介绍Python中运算符的优先级。答:略三、编程题1.计算变量a为10,b为3时,a+b、a//b、a%b的结果。参考答案:a=10b=3print(a+b)#13print(a//b)#3(整除)print(a%b)#1(取余)2.判断变量age为20时,是否满足age>=18andage<=60的条件。参考答案:age=20print(age>=18andage<=60)#True任务2.3一、选择题1.在print()函数的输出字符串中可以将(C)作为参数,代表后面指定要输入的是浮点数。A.%d B.%s C.%f D.%c2.使用(B)函数接收输入的数据。A.accept() B.input() C.login() D.print()二、编程题1.编写程序,要求从键盘输入圆的半径,计算圆的面积并保留2位小数进行输出。参考答案:importmathr=float(input("请输入圆的半径:"))area=math.pi*r**2print("圆的面积为:%.2f"%area)2.编写程序,实现从键盘输入摄氏温度,计算并输出对应的华氏温度。(转换公式为:华氏温度=摄氏温度×9/5+32)参考答案:c=float(input("请输入摄氏温度:"))f=c*9/5+32print("对应的华氏温度为:",f)三、简答题1.请简述Python中格式化字符串的几种方式。答:略2.请简单介绍输入输出函数的格式答:略任务2.4一、选择题1.已知x=11,y=22,z=33,以下代码执行后x,y,z的值分别是(C)。ifx<y:z=xx=yy=zA.11,22,33 B.11,22,22 C.22,11,11 D.22,11,332.关于Python分支结构,以下说法正确的是(B)。A.if语句必须有else子句B.elif是elseif的缩写,用于处理多个条件分支C.条件表达式只能使用比较运算符,不能使用逻辑运算符D.if语句的条件后面需要加冒号,但else后面不需要3.以下代码的输出结果是(A)。x=10ifx>5:print("A")elifx>8:print("B")else:print("C")A.A B.B C.C D.同时输出A和B4.关于嵌套条件结构,以下说法错误的是(D)。A.在if语句内部可以再嵌套其他的if语句B.嵌套层次过多会影响代码的可读性C.嵌套条件结构中,每层缩进必须保持一致D.嵌套条件只能用if-else,不能使用elif二、编程题1.编写程序,实现判断用户输入的数是奇数还是偶数。参考答案:num=int(input("请输入一个整数:"))ifnum%2==0:print("偶数")else:print("奇数")2.编程实现,从键盘输入一个年份,判断这个年份是否为闰年。参考答案:year=int(input("请输入年份:"))if(year%4==0andyear%100!=0)or(year%400==0):print("闰年")else:print("平年")任务2.5一、选择题1.(A)循环比较适合用于已知循环次数的场景。A.for B.while C.continue D.break2.以下代码输出结果为(C)。foriinrange(5):print(i,end=',')A.0,1,2,3,4,5 B.1,2,3,4,5 C.0,1,2,3,4, D.53.关于Python循环结构,以下说法正确的是(B)。A.while循环适用于已知循环次数的情况,for循环适用于未知循环次数的情况B.for循环通常与range()函数配合使用来控制循环次数C.break语句用于跳过当前循环的剩余语句,继续下一轮循环D.continue语句用于立即终止整个循环的执行4.以下代码的输出结果是(B)。sum=0foriinrange(1,5):ifi%2==0:continuesum+=iprint(sum)A.10 B.4 C.9 D.65.关于循环控制语句,以下说法错误的是(E)。A.在嵌套循环中,break只能跳出当前所在层的循环B.continue语句可以用于while循环和for循环C.循环条件为whileTrue:时,必须使用break才能退出循环D.else子句可以与循环配合使用,当循环正常结束时会执行else块,但被break终止时不会执行E.以上都正确。二、编程题1.编写程序,实现输出所有的水仙花数。(水仙花数是指一个3位数,其各位数字的立方和等于该数本身)参考答案:foriinrange(100,1000):a=i//100#百位b=i//10%10#十位c=i%10#个位ifa**3+b**3+c**3==i:print(i)#输出:153、370、371、4072.“韩信点兵”是一道中国古代数学名题。现有一队士兵,已知:三三数剩二,五五数剩三,七七数剩二。编程求出这队士兵至少有多少人。参考答案:i=1whileTrue:ifi%3==2andi%5==3andi%7==2:print("士兵至少有:",i)breaki+=1#输出:23项目三任务3.1一、选择题1.下列关于Python列表的说法中正确的是(D)。A.列表是不可变的有序集合B.列表只能存储同一种类型的数据C.列表可以通过索引访问元素,索引从1开始D.列表支持动态增删元素2.len(range(1,10))的值是(B)。A.8 B.9 C.10 D.113.表达式[1,2,3]*3的执行结果为(A)。A.[1,2,3,1,2,3,1,2,3] B.{[1,2,3],[1,2,3],[1,2,3]}C.[1,2,3],[1,2.3],[1,2.3] D.([1,1,1,2,2,2,3,3,3])4.假设列表对象aList为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是(B)。A.[5,6,7,9,11] B.[6,7,9,11] C.[5,6,7,9] D.[7,9,11,13]5.切片list(range(6))[::2]的执行结果为(D)。A.[0,1] B.[0,2,4,6] C.[0,1,2] D.[0,2,4]6.已知x=[3,7,5],那么执行语句“x=x.sort(reverse=True)”之后,x的值为(C)。A[3,5,7] B.[7,5,3] C.None D.[3,7,5]二、判断题1.Python列表属于无序序列。 (×)2.Python列表中的所有元素必须为相同类型的数据。 (×)3.列表的索引从1开始。 (×)4.使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。 (√)三、编程题1.已知一个数字列表list01=[11,52,32,40,45,27],输出该列表中所有能被3整除但是不能被2整除的数。list01=[11,52,32,40,45,27]fornuminlist01:ifnum%3==0andnum%2!=0:print(num)2.已知列表list01=[2,8,6,5]和list02=[4,7],将两个列表合并为一个列表,并将合并后的列表中的元素按降序排序。list01=[2,8,6,5]list02=[4,7]merged_list=list01+list02merged_list.sort(reverse=True)#降序排列print(merged_list)任务3.2一、选择题1.在Python字典中,根据键获取值应该使用哪一个方法?(A)A.get() B.set() C.keys() D.values()2.以下哪一个选项不是Python字典的特点?(D)A.无序性 B.键的唯一性 C.可变性 D.有序性3.在Python语言中,字典是一种什么类型的数据结构?(C)A.列表 B.集合 C.映射 D.元组4.字典的键可以是哪些类型?(C)A.只能是字符串 B.只能是整型 C.只能是不可变类型 D.只能是列表5.如何遍历字典中的所有键值对?(B)A.forkeyindict: B.forkey,valueindict.items():C.forvalueindict.values(): D.以上都可以,但方式不同二、判断题1.可以通过索引访问字典中的元素。 (×)2.在Python语言中,字典中的键必须是唯一的,但值可以重复。 (√)3.字典可以通过len()函数来获取其包含的键值对的数量。 (√)三、编程题1.将列表['a','b','c','d']转换为字典,键为列表中的元素,值为元素在列表中的索引。lst=['a','b','c','d']result_dict={}forindex,valueinenumerate(lst):result_dict[value]=indexprint(result_dict)2.删除字典{'a':10,'b':8,'c':12,'d':15}中值小于10的键值对。original_dict={'a':10,'b':8,'c':12,'d':15}#创建新字典,只包含值大于等于10的键值对filtered_dict={k:vfork,vinoriginal_dict.items()ifv>=10}print(filtered_dict)任务3.3一、选择题1.在Python语言中,元组是一种什么类型的数据结构?(B)A.可变序列 B.不可变序列C.字典的另一种形式 D.集合的另一种形式2.元组一旦创建,其内部元素可以(B)A.随意修改 B.通过索引访问但不能修改C.通过切片操作修改 D.不能被访问3.下列哪一个操作是合法的,用于向元组中添加元素?(B)A.tuple.append(element) B.tuple=tuple+(element,)C.tuple.insert(index,element) D.以上都不是4.下列关于元组和列表的说法,哪一个是正确的?(C)A.元组和列表都是可变的 B.元组和列表都是不可变的C.元组是不可变的,列表是可变的 D.元组是可变的,列表是不可变的5.下列哪一个表达式创建了一个包含单个元素的元组? (C)A.(1) B.1 C.(1,) D.['1']二、判断题1.元组t=(1,)和t=1在Python语言中是等价的。 (×)2.元组中的元素可以是任意类型,包括另一个元组。 (√)3.可以使用append()方法向元组中添加元素。 (×)4.元组是不可变的,但可以修改元组中可变元素的内部状态。 (√)三、编程题已知元组tu1=(2025,'01',[58,59,60]),请向该元组内的最后一个列表元素中添加数字61。tu1=(2025,'01',[58,59,60])#向元组的最后一个列表元素中添加数字61tu1[2].append(61)print(tu1)#输出:(2025,'01',[58,59,60,61])任务3.4一、选择题1.集合在Python语言中是一种什么类型的数据结构?(B)A.有序集合 B.无序集合,不包含重复元素C.字典的另一种形式 D.列表的另一种形式2.集合中的元素必须是(A)。A.不可变类型 B.可变类型C.既可以是可变类型,也可以是不可变类型 D.必须是数字3.如何向集合中添加元素?(B)A.使用append()方法 B.使用add()方法 C.直接赋值 D.使用extend()方法4.集合的哪些操作是自动去重的?(D)A.交集(&) B.并集(|) C.差集(-) D.以上都是5.以下哪一个表达式的结果是一个集合?(D)A.{1,2,3}+{3,4,5} B.{1,2,3}/{3,4,5}C.{1,2,3}*2 D.{1,2,3}-{3,4,5}二、判断题1.集合中的元素可以是任意类型(包括列表和字典)等的对象。 (×)2.集合支持通过索引访问,可以通过索引来获取集合中的元素。 (×)3.集合支持切片操作,可以通过切片来获取集合中的一部分元素。 (×)4.在Python语言中,集合是可变的,即可以在创建后添加或删除元素。 (√)三、编程题1.去除列表lst=[1,2,2,3,4,4,5]中重复的元素。lst=[1,2,2,3,4,4,5]print("原始列表:",lst)unique_elements=set(lst)#将集合转换回列表result_list=list(unique_elements)print("去除重复后的列表:",result_list)2.找出两个集合set1={1,2,3,4,5}和set2={4,5,6,7,8}的差集并排序。set1={1,2,3,4,5}set2={4,5,6,7,8}print("集合1:",set1)print("集合2:",set2)difference_set=set1.difference(set2)#转换为列表并排序sorted_list=sorted(list(difference_set))print("差集并排序后的结果:",sorted_list)任务3.5一、选择题1.下列关于字符串操作符的描述中不正确的是(B)。A.“+”操作符用于实现字符串的拼接 B.'abc'[1]的运行结果为'a'C.'A1'*3的运行结果为'A1A1A1' D.'AB'in'A1BC'的运行结果为False2.“+”操作符可以将多个字符串拼接为一个字符串,下面不正确的是(C)。A.'Hello'+"world" B."Hello"+'2021' C."Hello"+2021 D."Hello"+str(2021)二、判断题1.表达式'abc'in'abdcefg'的值为True。 (×)2.加法运算符可以用于连接字符串并生成新字符串。 (√)三、编程题1.从键盘输入一个身份证号码,输出身份证号码中的生日信息。(身份证号码是按一定规则有序排列的,前6位为地址码,中间8位为生日码,接着3位是顺序和性别码,最后一位是校验码。)id_card=input("请输入身份证号码:")iflen(id_card)==18:#提取出生年月日year=id_card[6:10]month=id_card[10:12]day=id_card[12:14]print(f"出生日期:{year}年{month}月{day}日")else:print("身份证号码长度不正确!")2.获取用户输入的月份数字,使用字符串处理方法从提供的字符串month="JanFebMarAprMayJunJulAugSepOctNovDec"中获取输入月份的英文缩写。实现效果如图3-10所示。图3-10实现效果month="JanFebMarAprMayJunJulAugSepOctNovDec"#获取月份输入month_num=int(input("请输入月份数字(1-12):"))#计算在字符串中的位置(每个月份缩写占3个字符)start_index=(month_num-1)*3end_index=start_index+3#提取对应月份的英文缩写month_abbr=month[start_index:end_index]print(f"{month_num}月的英文缩写是:{month_abbr}")项目四任务4.1一、选择题1.下列关于Python函数的说法中错误的是(A)。A.函数必须包含return语句 B.函数可以有多个参数C.函数可以提高代码的复用性 D.函数可以没有返回值2.以下代码的输出结果是(A)。defcalculate(x,y=2):returnx*y+1result=calculate(3)print(result)A.7 B.9 C.报错,缺少参数 D.6二、编程题编写一个is_even(number)函数,该函数用于判断一个数是否是偶数,如果是偶数,返回True,否则返回False。参考答案:defis_even(number):"""判断一个数是否为偶数:paramnumber:要判断的整数:return:如果是偶数返回True,否则返回False"""returnnumber%2==0#测试函数print(is_even(4))#输出:Trueprint(is_even(7))#输出:Falseprint(is_even(0))#输出:Trueprint(is_even(-3))#输出:False任务4.2一、选择题1.关于Python函数的参数,以下说法中正确的是(C)。A.默认参数必须放在位置参数之前B.args用于接收关键字参数C.函数可以返回多个值,实际上返回的是一个元组D.**kwargs必须放在args之前2.以下关于函数返回值的说法中错误的是(C)。A.函数可以返回多个值,实际上返回的是一个元组B.当函数中没有return语句时,该函数的返回值为NoneC.return语句只能返回一个值D.可以使用解包方式接收函数返回的多个值3.以下代码的输出结果是(A)。defscore_stats(*scores,subject="数学"):avg=sum(scores)/len(scores)ifscoreselse0returnf"{subject}的平均分:{avg:.1f}"result=score_stats(85,92,78,90)print(result)A.数学的平均分:86.2B.平均分:86.2C.报错,缺少关键字参数D.数学的平均分:86.0二、编程题编写一个analyze_student(scores,name="学生",**kwargs)函数,该函数用于实现接收成绩列表和学生信息,返回包含详细分析结果的字典。参考答案:defanalyze_student(scores,name="学生",**kwargs):"""分析学生成绩:paramscores:成绩列表:paramname:学生姓名:paramkwargs:其他信息:return:分析结果字典"""ifnotscores:return{"错误":"成绩列表为空"}result={"姓名":name,"成绩数量":len(scores),"总分":sum(scores),"平均分":sum(scores)/len(scores),"最高分":max(scores),"最低分":min(scores)}#添加额外信息result.update(kwargs)returnresult#测试scores=[85,92,78,90]result=analyze_student(scores,"李四",科目="数学",班级="高三一班")print(result)任务4.3一、选择题1.关于递归函数,以下说法中正确的是(C)。A.递归函数必须有一个返回值B.递归函数可以无限递归而不会出错C.每个递归函数都必须有至少一个基本情况D.递归函数比迭代方法总是更高效2.以下关于匿名函数使用场景的说法中错误的是(B)。A.匿名函数常用于sorted()、filter()、map()等高阶函数中B.匿名函数适合替代复杂的、需要递归的函数C.匿名函数通常用于简单的、一行代码就能实现的函数D.匿名函数可以作为其他函数的返回值3.计算阶乘的递归函数如下:deffactorial(n):ifn==0:return1else:returnn*factorial(n-1)当调用factorial(5)时,函数总共被调用了几次?(B)A.5次 B.6次 C.10次 D.15次二、编程题编写一个递归函数reverse_string(s),该函数用于实现接收一个字符串,返回该字符串的逆序字符串。参考答案:defreverse_string(s):"""递归反转字符串:params:输入字符串:return:反转后的字符串"""#基本情况:空字符串或单字符字符串iflen(s)<=1:returns#递归情况:最后一个字符+前面部分的逆序returns[-1]+reverse_string(s[:-1])#测试print(f"'hello'反转后:'{reverse_string('hello')}'")#输出:'olleh'print(f"'recursion'反转后:'{reverse_string('recursion')}'")#输出:'noisrucer'任务4.4一、选择题1.关于Python模块导入,以下说法中正确的是(B)。A.使用“frommoduleimport*”格式的语句是最推荐的导入方法B.模块的别名可以简化代码,但会降低可读性C.一个模块只能被导入一次D.模块中的变量在导入后不能被修改2.在calc_module.py模块中有以下代码:defadd(a,b):returna+bdefmultiply(a,b):returna*bif__name__=="__main__":print("测试计算模块")在另一个文件中执行importcalc_module语句时,会输出什么?(B)A."测试计算模块"B.没有任何输出C.报错,因为__name__属性未定义D.输出模块中的所有函数名二、编程题创建一个名称为utils.py的工具模块,该模块包含以下函数。(1)is_prime(n):判断一个数是否为质数。(2)get_factors(n):返回一个数的所有因数。然后在主程序文件中导入并使用这些函数。参考答案:#utils.py"""工具函数模块提供数学相关的工具函数"""defis_prime(n):"""判断一个数是否为质数:paramn:整数:return:布尔值"""ifn<2:returnFalseforiinrange(2,int(n**0.5)+1):ifn%i==0:returnFalsereturnTruedefget_factors(n):"""获取一个数的所有因数:paramn:整数:return:因数列表"""factors=[]foriinrange(1,n+1):ifn%i==0:factors.append(i)returnfactors#模块自测试if__name__=="__main__":print(f"7是质数:{is_prime(7)}")print(f"12的因数:{get_factors(12)}")任务4.5一、选择题1.关于Python语言内置模块,以下说法中错误的是(C)。A.math模块提供数学常数和函数,如π和平方根B.time.sleep()函数可以让程序暂停指定秒数C.使用内置模块前需要先使用pip安装D.datetime模块可以处理日期和时间的运算2.以下关于math模块和random模块的说法中错误的是(C)。A.math.sqrt(16)会返回4.0,结果是浮点型B.random.randint(1,10)会生成1~10之间的随机整数,包括1和10C.math.ceil(3.2)和math.floor(3.8)都会返回整型结果D.random.random()会生成[0,1)范围内的随机浮点数二、编程题编写一个程序,使用math模块计算圆的面积和球的体积,使用time模块测量计算耗时,并使用datetime模块显示计算完成的时间。参考答案:importmathimporttimeimportdatetimedefcalculate_geometry():"""计算圆的面积和球的体积,并显示计算信息"""start_time=time.time()#输入半径radius=float(input("请输入半径:"))#计算圆的面积circle_area=math.pi*radius**2#计算球的体积sphere_volume=(4/3)*math.pi*radius**3#计算耗时end_time=time.time()calculation_time=end_time-start_time#获取当前时间current_time=datetime.datetime.now()formatted_time=current_time.strftime("%Y年%m月%d日%H时%M分%S秒")#输出结果print("\n"+"="*40)print("几何计算结果")print("="*40)print(f"半径:{radius}")print(f"圆的面积:{circle_area:.2f}")print(f"球的体积:{sphere_volume:.2f}")print(f"计算耗时:{calculation_time:.6f}秒")print(f"计算完成时间:{formatted_time}")print("="*40)#运行程序if__name__=="__main__":calculate_geometry()项目五任务5.1一、选择题1.如果要打开一个已有文件并在该文件的末尾添加数据,则应该使用(C)模式打开文件?A.r B.w C.a D.w+2.关于Python文件操作,以下说法中正确的是(D)。A.在使用open()函数打开文件后,必须使用close()方法关闭文件,with语句无法自动关闭文件B.当使用'r'模式打开不存在的文件时会自动创建该文件C.当使用write()方法向文件中写入内容时会自动添加换行符,无须手动添加D.使用w模式打开已存在的文件会清空该文件中原有的内容,存在数据丢失风险3.在执行以下代码后,content.txt文件中的内容是(A)。withopen('content.txt','w',encoding='utf-8')asf:f.write('Hello')f.writelines(['World','Python'])A.HelloWorldPython B.Hello\nWorld\nPythonC.HelloWorld\nPython D.Hello\nWorldPython4.关于文件指针操作,以下描述中错误的是(D)。A.tell()方法可以获取文件指针的当前位置B.seek()方法可以移动文件指针的位置C.当使用r模式打开文件时,文件指针的初始位置在文件的开头D.当使用文本模式打开文件时,seek()方法的whence参数的值可以使用1(当前位置)或2(文件的末尾)二、判断题1.使用“withopen()asf:”语句打开文件,在代码块执行完毕后会自动关闭文件,无须手动调用close()方法。 (√)2.当使用a模式打开文件时,如果该文件不存在,则会报错,不会自动创建新文件。 (×)任务5.2一、选择题1.关于CSV文件处理,以下说法中正确的是(C)。A.CSV文件只能存储数字型数据,不能存储文本B.csv.reader()函数返回的数据是字典类型C.使用csv.DictWriter对象可以按字典中的键值对写入CSV文件D.CSV文件中的分隔符只能是逗号,不能更改2.关于JSON数据处理,以下说法中错误的是(C)。A.json.loads()函数用于将JSON格式的字符串转换为Python对象B.json.dumps()函数用于将Python对象转换为JSON字符串C.JSON格式支持Python语言中的所有数据类型,包括datetime对象D.JSON格式中的null对应Python语言中的None3.以下代码的功能是(B)。importjsondata={'name':'张三','age':20,'scores':[85,92,78]}json_str=json.dumps(data,ensure_ascii=False)A.将字典写入CSV文件B.将字典转换为JSON格式的字符串,支持中文字符C.从JSON字符串中解析出字典对象D.将字典保存到数据库二、判断题1.CSV文件可以使用Excel直接打开和编辑。 (√)2.JSON格式的数据必须使用双引号表示字符串,单引号无效。 (√)三、编程题编写一个函数,该函数用于该读取包含学生信息的CSV文件,返回学生的人数。importcsvdefcount_students(filename):"""读取包含学生信息的CSV文件,返回学生人数"""withopen(filename,'r',encoding='utf-8')asf:reader=csv.reader(f)next(reader,None)#跳过表头count=0forrowinreader:ifrow:#忽略空行count+=1returncount任务5.2一、选择题1.关于Python异常处理,以下说法中正确的是(C)。A.在try-except语句中,except子句必须指定具体的异常类型B.else子句在发生异常时执行,finally子句无论是否发生异常都会执行C.一个try子句可以对应多个except子句来处理不同类型的异常D.所有异常都必须手动处理,否则程序无法运行2.在文件操作中,以下异常与文件相关的匹配错误的是(C)。A.FileNotFoundError-文件不存在 B.PermissionError-权限不足C.KeyError-文件格式错误 D.IOError-输入输出错误3.关于异常处理的最佳实践,以下说法中错误的是(D)。A.应该尽量捕获具体的异常,而不是使用裸露的except:B.异常处理不能替代正常的条件检查C.在异常处理中应该记录足够的错误信息,以便调试D.为了程序稳定,应该捕获所有的异常并忽略它们二、判断题1.finally子句中的代码无论是否发生异常都会执行。 (√)2.使用exceptExceptionase可以捕获所有程序异常。 (×)三、编程题编写一个函数,该函数用于安全地读取文件中的内容,如果文件不存在,则返回空字符串。defsafe_read_file(filename):"""安全地读取文件内容,如果文件不存在则返回空字符串"""try:withopen(filename,'r',encoding='utf-8')asf:returnf.read()exceptFileNotFoundError:return''#使用示例if__name__=="__main__":content=safe_read_file("test.txt")print(content)项目六任务6.1一、选择题1.在Python语言中,类的定义使用哪一个关键字?(A)A.Class B.def C.struct D.object2.以下哪一项是类的实例化的正确语法?(A)A.Student() B.newStudent()C.Student.create() D.Student.new()3.在Student类中,self参数的作用是(B)。A.表示父类 B.表示当前类的实例C.表示静态方法 D.表示私有属性4.以下关于Python类的描述中正确的是(C)。A.__init__()方法负责创建对象实例,是Python语言中真正的构造方法 B.类属性定义在__init__()方法中,所有对象共享该属性C.当通过“类名.类属性”格式的语句修改类属性的值时,所有对象的该属性都会同步变化D.实例属性定义在类的内部、所有方法之外,每个对象的该属性相互独立二、判断题1.一个类可以创建多个对象实例。 (√)2.类的方法必须包含self参数。 (×)3.__init__()方法可以有返回值(如return1),不会影响对象的创建和初始化。 (×)三、简答题1.简述类和对象之间的关系。答:类是对象的抽象模板或蓝图,定义了该类对象共有的属性(数据)和行为(方法)。对象是类的具体实例,根据类这个模板创建出来的具体实体。关系可类比:类如同“汽车设计图纸”,对象如同根据图纸造出的“一辆具体的汽车”。一个类可以创建多个对象,每个对象拥有类定义的属性和方法,但属性值可以各不相同。2.为什么要在类的方法中使用self参数?答:self代表调用该方法的当前实例对象本身。通过self可以访问和操作当前对象的实例属性(如)和其他方法(如roduce())。self将方法绑定到具体的对象上,使Python知道操作的是哪个对象的数据,从而区分不同对象之间的同名属性。四、编程题1.创建一个Student类,该类包含name属性和age属性。2.为Student类添加一个introduce()方法,该方法用于介绍自己的基本信息。classStudent:"""学生类,包含姓名和年龄属性,以及自我介绍方法"""def__init__(self,name,age):"""初始化方法,设置实例属性"""=nameself.age=agedefintroduce(self):"""自我介绍方法"""print(f"大家好,我叫{},今年{self.age}岁。")#使用示例if__name__=="__main__":stu1=Student("张三",20)stu2=Student("李四",21)roduce()roduce()任务6.2一、选择题1.在Python语言中,私有属性的命名约定是(B)。A.单下画线开头 B.双下画线开头 C.大写字母开头 D.小写字母开头2.封装的主要目的是(B)。A.提高代码执行速度 B.保护数据完整性C.减少代码行数 D.美化代码格式3.以下关于Python类封装的描述中正确的是(C)。A.私有属性以单下画线开头,外部无法直接访问B.封装的核心目的是隐藏所有属性,禁止外部任何形式的访问C.当通过set_score()方法修改成绩时,可以添加验证逻辑以确保数据合法性D.如果外部尝试赋值stu.__score=90,则会直接修改Student类的私有属性__score的值二、判断题1.私有属性在类的外部完全无法访问。 (×)2.Python语言中以双下画线开头的私有属性,外部完全无法访问,即使通过任何方法都无法获取其值。 (×)3.所有属性都应该设为私有。 (×)三、简答题1.为什么要使用封装?它带来了什么好处?答:保护数据完整性、隐藏实现细节、提高可维护性、控制访问权限。2.简述Python类封装的核心意义?答:Python封装的核心意义在于将数据(属性)和操作数据的方法捆绑在一起,形成一个独立的逻辑单元,并通过访问控制机制保护数据不被随意篡改。它遵循“最小权限原则”,对外只暴露必要的接口(公开方法),隐藏内部实现细节。Python通过命名约定(_保护、__私有)实现封装。四、编程题1.为Student类添加私有属性__score。classStudent:def__init__(self,name,age,score=0):=nameself.age=ageself.__score=score#私有属性2.创建一个设置成绩的方法,包含数据验证。classStudent:def__init__(self,name,age,score=0):=nameself.age=ageself.__score=0#私有属性self.set_score(score)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省2026年春考《现代农艺类》专业知识模拟试题及答案解析
- 大学生就业指导重修
- 安全教育日主题班会模版-1
- 2026年黄山旅游发展股份有限公司黄旅大厦酒店职业经理人招聘考试参考题库及答案解析
- 地理专业就业方向
- 2026年甘肃陇南成县纸坊镇卫生院招聘编外专业技术人员考试备考题库及答案解析
- 安徽淮南市寿县2026年初中学业水平模拟考试数学试卷(试卷+解析)
- 2026云南临沧沧源佤族自治县边防委员会招聘5人笔试模拟试题及答案解析
- 重大事项决策审议制度
- 西南交通大学2026年春季 管理岗位与其他专技岗位公开招聘考试模拟试题及答案解析
- 项目观摩会成果汇报
- 2025年慕再杯精算竞赛真题
- 美的面包机使用说明书
- 2025-2026年物业管理的智能化发展
- 汽车泵地基承载力验算
- 中华财险2025年校园招聘行测笔试
- DB11 642-2009 预拌混凝土生产管理规程
- 2025解题觉醒邓诚数学(名师大招册)
- 《中国特色大国外交》课件
- 监狱新干警培训课件
- 《糖尿病饮食》课件
评论
0/150
提交评论