《Python程序设计基础习题册》参考答案 劳动_第1页
《Python程序设计基础习题册》参考答案 劳动_第2页
《Python程序设计基础习题册》参考答案 劳动_第3页
《Python程序设计基础习题册》参考答案 劳动_第4页
《Python程序设计基础习题册》参考答案 劳动_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1122(封面)技工院校服务机器人应用与维护专业教材(中/高级技能层级)Python程序设计习题册答案中国劳动社会保障出版社(扉页)技工院校服务机器人应用与维护专业教材(中/高级技能层级)Python程序设计习题册答案人力资源和社会保障部教材办公室组织编写中国劳动社会保障出版社项目一Python基础知识及环境搭建任务1认识Python一、填空题二、判断题1.√2.×3.√4.×5.×三、名词解释1.机器语言是使用二进制代码表示的计算机能直接识别和执行的一种机器指令的集2.四、简答题Python2.3.pythonpythonC/C五、综合应用题1.pythonpythonpythonpython任务2安装与配置Python开发环境一、填空题pipIDEPipinstallNumpy二、判断题1.×2.√3.×4.√5.√三、名词解释1.代码编辑器是程序员用于编写计算机程序的文本编辑器,可以被看作是程序员和计PAGEPAGE11PAGEPAGE10的一2.PythonIDEPyCharmVisualStudioCodeJupyterNotebookIDE四、简答题IDE2.可以使用以下命令来使用pip安装Python包:pipinstallpackage_name,其中package_name是要安装的包的名称。3.IDE五、综合应用题Windowspython”(),python>>>Python环境变PythonpythonPython任务3安装与使用代码编辑器(VSCode)一、填空题.exe编辑调试一键注释拼写检查缩进检查二、判断题1.√2.×3.×4.√5.×三、名词解释VSCode四、简答题VSCode2.VSCode(。3.常用的PythonIDE包括PyCharm、VisualStudioCode、和JupyterNotebook等。五、综合应用题WindowsLinuxVSCode(VisualStudioCode)LinuxLinux3LinuxWindows不区分;4、LinuxWindowsIDEVSCode、Sublime、。任务4运行第一个Python程序一、填空题.py二、判断题1.×2.×3.×4.√5.×三、名词解释PythonPythonPythonPythonPythonPython四、简答题1.在Python中,您可以通过指定变量名并使用等号(=)来声明一个变量。例如,my_variable=42将创建一个名为my_variable的变量,其值为42。Python在交互式运行方式下,程序会对每条输入语句进行即时的运行。该运行方式的优.py.py五、综合应用题1.Pythonpython.pyPython2.可以使用print()函数来输出文本到屏幕。例如,print("Hello,World!")将在屏幕上显示"Hello,World!"。项目二基本数据类型1Python一、填空题数据赋值下画线不同二、判断题1.×2.×3.×4.√三、名词解释变量是用于存储数据的容器,可以存储不同类型的数据,如整数、字符串、列表等。在Python中,变量的类型是动态的,这意味着变量可以根据赋给它的值自动确定其类型。四、简答题1.((3.PythonPython五、综合应用题1.a=5b=10sum_ab=a+bprint(sum_ab)2.x=7y=13#交换变量的值temp=xx=yy=tempprint("x=",x)print("y=",y)2Python一、填空题Input控制台 终端输入 二、判断题1.×2.×3.√4.√5.√三、名词解释Python中的交互功能主要指的是程序能够与用户进行互动的能力。这通常通过输入(Input)和输出(Output)操作来实现。。四、简答题input()name=input("请输入您的名字:")print("您的名字是:"+name)print()函数用于将文本或数据输出到控制台。例如,以下是输出一条简单的问候语print("Hello,World!")PythonPythoninput()(Pythonprint()五、综合应用题1.m=int(input("请输入第一个整数:"))n=int(input("请输入第二个整数:"))result=m+nprint("两数求和的值为:",result)2.text=input("请输入一个字符串:")length=len(text)print("字符串的长度为:",length)3Python一、填空题'aabb'splitfind4. 'a,b,c'二、判断题1.√2.×3.√4.×三、名词解释1.Python2.Pythonjoin()World!"。四、简答题split()Python(%)format()方如%s%d等format()五、综合应用题#str1=input("请输入第一个字符串:")#获取用户输入的第二个字符串str2=input("请输入第二个字符串:")#拼接两个字符串result=str1+str2#输出拼接后的字符串print("拼接后的字符串为:",result)#defprocess_string(input_str):#截取长度为5的子串substring=input_str[:5]print(f"子串:{substring}")#分割子串split_substrings=substring.split(',')print(f"子串分割后:{split_substrings}")#统计字母和数字的数量letters_count=sum(1forcharinsplit_substringsifchar.isalpha())digits_count=sum(1forcharinsplit_substringsifchar.isdigit())print(f"字母数量:{letters_count}")print(f"数字数量:{digits_count}")#测试函数input_str="abcdefghijklmnop"process_string(input_str)项目三表达式与运算符任务运算符综合应用一、填空题1. //2. **3. ==4. 10赋值二、判断题1.×2.√3.√4.×5.×三、名词解释1.Python中,andor和notand2.Python算符包括左移和>>(四、简答题and用于在多个条件都为真时整个表达式为真。例如,x>5andy<10表示只有x5y10or用于在多个条件中至少有一个为真时整个表达式为真。例如,x<0orx>10表示只要x小于0或者大于10,整个条件为真。notnot(x5)x5时条>>右移位运算符将一个数的二进制表示向右移动指定的位数,左侧空出的位用原(。五、综合应用题1.a=5b=10a+=b#aa+ba15,b#b=bab20,a#aaba5,bba #bbab10,a2.#获取用户输入的两个整数num1=int(input("请输入第一个整数:"))num2=int(input("请输入第二个整数:"))#使用复合赋值运算符“+=”将两个数相加,并将结果赋值给变量sumsum=num1+num2#输出结果print("两个数的和为:",sum)项目四组合数据类型任务1序列的使用一、填空题列表、元组、字典、集合、字符串、字节数据字典访问序列中的元素检查某元素是否为序列的成员len、max、min二、判断题1.×2.√3.√三、名词解释python切片操作是访问序列元素的一种方法,它可以访问一定范围内的元素,通过切片四、简答题1.通过索引、切片操作可以访问序列中的元素。2.Python[start:stop:step]startstop),step3.通过内置函数sun()能够计算序列中的元素和;通过内置函数sorted()能够对序列进行排序。五、综合应用题1.Str1="python"Str2="编程语言"Str3=Str1*3+Str2print(Str3)2.Str1="python"Str2=Str1[1:5:1]print(Str2)print('p'inStr2)任务2列表的使用一、填空题有序元组appendlist二、判断题1.×2.√3.×4.×三、名词解释delpython四、简答题extend()delpop()(list)remove()(list)clear()五、综合应用题1.list1=["HELLO"]print(list1)list1.append("WORLD")print(list1)list1.append(list1[0]+list1[1])print(list1)2.list1=[2**(x+1)forxinrange(10)]print(list1)任务3元组的使用一、填空题不可变索引 切片逗号二、判断题1.×2.√3.√4.×三、名词解释不可变性指的是元组一旦创建就不能被修改,包括不能添加、删除或修改元素的值。四、简答题1.元组适用于表示不可变的数据集合,如坐标点(x,y)、RGB颜色(r,g,b)等。列表是一组有序项目的数据结构。在创建一个列表后,用户可以访问、修改、添加或删除列表中的项目,即列表是可变的数据类型。2.python提供了两种创建元组的方法,1.使用小括号“()”创建元组;2.使用tuple()函数创建元组。3.使用索引进行切片,例如subset=my_tuple[1:4]获取索引1到3的子元组。五、综合应用题1.tup1=(3,1,2,6,5,4) tup2=[] fornumintup1: ifnum%2==0: tup2.append(num) print(tup2)2.#创建一个名为“学生”的元组,其中包含学生的姓名、年龄、性别和成绩等信息students=("张三",18,"男",90),("李四",20,"女",85),("王五",19,"男",92)#向“学生”元组中添加新的学生信息students=students+(("赵六",21,"女",88),("钱七",17,"男",95))#遍历“学生”元组,并输出每个学生的姓名、年龄、性别和成绩forstudentinstudents:name,age,gender,score=studentprint(f"姓名:{name},年龄:{age},性别:{gender},成绩:{score}")#根据指定的姓名,访问并输出对应学生的成绩name="李四"forstudentinstudents:ifstudent[0]==name:print(f"{name}的成绩是:{student[3]}")break任务4字典的使用一、填空题键索引getpop不可变二、判断题1.×2.√3.×三、名词解释1.字典是一种无序的数据集合,以键值对的形式存储数据,通过键来访问值。2.在字典中,键是唯一的、不可变的,用于标识值的标签;值是与键相关联的数据。四、简答题1.2ny'iny_ct3.在python中,可以使用字典类型提供的fromkeys()方法创建带有默认值的字典。五、综合应用题1.#创建字典students={'小明':85,'小红':90,'小刚':78}#输出每个学生的信息forname,numinstudents.items():print(f"{name}:{num}")#添加一个学生信息students['小华']=92#修改一个学生的信息students['小明']=90#students.items():print(f"{name}:{num}")2.library={'书1':{'作者':'张三','借阅状态':'在库'},'书2':{'作者':'李四','借阅状态':'在库'},'书3':{'作者':'王五','借阅状态':'已借出'}}forbook,numinlibrary.items():print(f"书名:{book},作者:{num['作者']},借阅状态:{num['借阅状态']}")library['书4']={'作者':'赵六','借阅状态':'在库'}library['书2']['借阅状态']='已借出'dellibrary['书3']if'书3'inlibrary:print(f"被删除的书的书名是:书3,作者是:{library['书3']['作者']}")else:

print("没有找到被删除的图书")forbook,numinlibrary.items():print(f"书名:{book},作者:{num['作者']},借阅状态:{num['借阅状态']}")任务5集合的使用一、填空题唯一的add列表remove二、判断题1.×2.×3.√4.√5.×三、名词解释1.2.交集是指两个集合中共同存在的元素组成的集合,可以使用intersection()方法得到。四、简答题1.2.使用大括号“{}”创建集合、使用set函数创建集合。五、综合应用题1.#步骤1:创建集合AA={1,2,3,4,5}print(f"集合A:{A}")#2A6A.add(6)print(f"添加元素6后的集合A:{A}")#3A4A.remove(4)print(f"删除元素4后的集合A:{A}")#步骤4:找出集合A与集合[2,3,5,6]的交集intersection=A&set([2,3,5,6])print(f"集合A与集合[2,3,5,6]的交集:{intersection}")#步骤5:计算集合A与集合[2,3,5,6]的并集union=A|set([2,3,5,6])print(f"集合A与集合[2,3,5,6]的并集:{union}")2.#骤1:创集合A集合BA=set() #绩格生集合Bset() #forstudentin['生1','生2',学生3','生4',生5',学生6']: #假些是生名字score=int(input(f"入学{student}分:")) #入生分数ifscore>=60:add(student) #Aelse:add(student) #Bprint(f"集合A(及格学生):{A}")print(f"集合B(不及格学生):{B}")#骤2:建合C集合DC=set() #秀学合Dset() #forstudentinA:score=int(input(f"新输学{student}数:")) #新入的分数ifscore>=80:add(student) #Celif70<=score80:add(student) #Dprint(f"集合C(优秀学生):{C}")print(f"集合D(良好学生):{D}")#步骤3:计算集合C和集合D的对称差集,找出两个小组都不包括的学生symmetric_difference=C^D #print(f"集合C和集合D的对称差集(两个小组都不包括的学生):{symmetric_difference}")。项目五Python流程控制任务1使用if…else语句实现模拟用户登录一、填空题input()if-elsebreak语句4. ==字典continue某条件二、判断题1.√2.×3.√4×三、名词解释if-elseifelse2pass是python中的关键字,用来让解释器跳过此处,什么都不做。四、简答题1.if-elsepythonassertif判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之python解释器会报AssertionError五、综合应用题#apple_price=6banana_price=4milk_price=8orange_price=5cola_price=3bread_price=10#小明和小华所购商品的数量num_apple=2num_banana=1num_milk=2num_orange=3num_cola=2num_bread=1#计算总价total_price=num_apple*apple_price+num_banana*banana_price+num_milk*milk_price+num_orange*orange_price+num_cola*cola_price+num_bread*bread_price#根据总价输出不同的提示iftotal_price>100:print("您的总价超过了100元,请注意控制花费。")eliftotal_price>=50:print("您的总价在50-100元之间,购物比较经济。")eliftotal_price>0:print("您的总价在0-50元之间,购物比较节约。")else:

print("您的购物车是空的,请添加一些商品。")2.defrecommend_tour(tourist_needs):iftourist_needs=="参观著名景点和享受当地美食":return"线路A","参观著名景点和享受当地美食"eliftourist_needs=="体验当地文化和与当地人交流":return"线路B","体验当地文化和与当地人交流"eliftourist_needs=="自由行和探险":return"线路C","自由行和探险"eliftourist_needs":return"AB","人交流"eliftourist_needs=="对价格敏感":return"线路C","价格最便宜"eliftourist_needs=="不确定自己的需求":else:

return"线路B或线路C","不确定需求"return"无法推荐","无法识别游客需求"#测试代码print(recommend_tour("观著景和受地食")) #输:('路A',参观名点和享当美食')print(recommend_tour("验当文和当人流")) #输:('路B',体验地化和与地交流')print(recommend_tour("由行探险")) #输:('线路C','自行探险')print(recommend_tour("参观著名景点、享受当地美食、体验当地文化和与当地人交流"))#出:('路A或路B','参观名点享当美食体当文和当地交流')print(recommend_tour("价格感")) #:('路C','格便宜')print(recommend_tour("确定己需求")) #出:('路B或路C','确定求')print(recommend_tour("他需求")) #输:('无推荐','法别客求')。任务2使用while循环语句实现数值的累加一、填空题1. +=break某条件二、判断题1.√ 2.×3.√4.√三、名词解释while2.四、简答题1.在使用while循环时,循环条件用于觉得循环是否结束跳出,当循环条件为真时while循环持续运行,当循环条件为假时程序跳出循环结构。2.break语句3.pythonwhileifwhile五、综合应用题1.n=int(input("输一正数n:"))sum=0 #始累为0i=1 #1whilei<=n:sumi #i1 #1print("1到{}之间所有整数的和为:{}".format(n,sum))2.n=int(input("输一正数n:"))sum=0 #始累为0i=1 #1whilei<=n:sumi #i1 #1ifn%20: #nquotient=n//2 #计算商remainder=n2 #print("1到{}之间所有数字的总和为:{}".format(n,sum))print("{}除以2的商为:{},余数为:{}".format(n,quotient,remainder))else:

print("1到{}之间所有数字的总和为:{}".format(n,sum))任务3使用for循环语句实现列表的生成一、填空题二、判断题1.√2.√3.×4.√三、名词解释1.创建的列表的名称。2.列表内元素的表达式,通常是对原序列中的元素进行某些操作的表达式。四、简答题listname=[f(var)variniterableifcondition]varifcondition3.使用next()的代码示例如下。a=(xforxinrange(5))print(next(a),next(a),next(a),next(a),next(a))五、综合应用题#获取用户输入的字符串input_string=input("请输入一个字符串:")#创建一个字典来存储每个字符及其出现次数char_count={}#使用for循环遍历字符串中的每个字符forcharininput_string:#如果字符已经在字典中,则增加其出现次数ifcharinchar_count:char_count[char]+=1#如果字符不在字典中,则将其添加到字典中并设置出现次数为1else:char_count[char]=1#按照ASCII码值从小到大排序输出结果forcharinsorted(char_count.keys()):ascii_valueord(char) #ASCII码值countchar_count[char] #print("ASCII码值:{},字符:{},出现次数:{}".format(ascii_value,char,count))项目六函数和lambda表达式任务1认识Python函数一、填空题del引用(地址)传递值传递空值NoneType二、判断题1.× 2.×3.×三、名词解释1.函数是一段可重复使用的代码块,接受输入参数并返回结果。2.函数参数值传递是指将实际参数值的副本(复制品)传入函数。四、简答题(([]=([])。五、综合应用题1.defsquare_elements(input_list):#判断输入列表是否为空ifnotinput_list:return[]#初始化结果列表result=[]#使用循环处理输入列表中的每个元素fornumininput_list:#将元素平方并添加到结果列表中result.append(num**2)returnresultlist1=[]print(square_elements(list1))2.defsquare_root_values(input_list):#判断输入列表是否为空ifnotinput_list:return[]#初始化结果列表result=[]#使用循环处理输入列表中的每个元素fornumininput_list:#将元素平方根化并添加到结果列表中result.append(num**0.5)returnresultlist1=[1,4,9]print(square_root_values(list1))任务2应用Python内置函数一、填空题1.62.73.84.a5.5.68二、判断题1.√2.×3.√4.×5.√三、名词解释所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。四、简答题1.))。2.`sorted`函数用于对可迭代对象进行排序,而`sort`方法用于在原地对列表进行排序。3.`enumerate`函数用于同时遍历索引和元素。五、综合应用题1.defzip_lists(list1,list2):#使用zip()函数将两个列表组合成一个zip对象zipped=zip(list1,list2)#将zip对象转换为列表形式并返回结果returnlist(zipped)#测试函数list1=[1,2,3,4]list2=['a','b','c']result=zip_lists(list1,list2)print(result) #1,a2,'b3c')]2.defreverse_string(input_string):#判断输入字符串是否为空ifnotinput_string:return""#使用reversed()函数反转字符串中的字符reversed_string="".join(reversed(input_string))returnreversed_stringstr1='abc'print(reverse_string(str1))3Python一、填空题二、判断题1.×2.√3.√4.√5.√三、名词解释位置参数也称为必备参数,是指在调用函数时必须按照正确的顺序将实际参数传四、简答题1.`*args`用于传递可变数量的非关键字参数。麻烦,使函数的调用和参数传递更加灵活、方便。通过关键字参数,可以更加灵活地调用函数并传递参数,而不必担心参数的位置问题2.关键字参数在函数调用中的优点是可以避免位置参数需要牢记参数位置的麻烦,使函数的调用和参数传递更加灵活、方便。通过关键字参数,可以更加灵活地调用函数并传递参数,而不必担心参数的位置问题。3.可变参数是指在函数定义中可以接受可变数量的参数。在3.可变参数是指在函数定义中可以接受可变数量的参数。在Python中,有两种类型的可变参数:可变位置参数和可变关键字参数。可变位置参数使用星号(*)作为前缀,例如:defadd_all(*args):returnsum(args)五、综合应用题1.defcalculate_area(width,height,perimeter=None,area_previously_calculated=None):#计算矩形的面积area=width*height#验证周长是否正确ifperimeterisnotNone:ifperimeter!=2*(width+height):raiseValueError("给定的周长不正确!")#验证预先计算的面积是否正确ifarea_previously_calculatedisnotNone:ifarea_previously_calculated!=area:raiseValueError("给定的预先计算的面积不正确!")returnarea#给定长度、宽度print(calculate_area(10,5))#给定长度、宽度、周长print(calculate_area(10,5,30))#给定长度、宽度、周长、面积print(calculate_area(10,5,30,50))#给定长度、宽度、错误的周长print(calculate_area(10,5,20))2.importmathdefcalculate_area_of_triangle(base,height,angle=None):#计算三角形的面积area=0.5*base*height#验证角度是否为直角ifangleisnotNone:ifangle!=90:raiseValueError("给定的角度不是直角!")returnarea#传入base和heightprint(calculate_area_of_triangle(10,5))#传入base、height和angle=90print(calculate_area_of_triangle(10,5,90))#传入base、height和angle=89print(calculate_area_of_triangle(10,5,89))任务4变量作用域和global变量的使用一、填空题global临时局部global二、判断题1.×2.×3.√4.×三、名词解释2.全局变量是在所有函数外部定义的变量,其作用域是整个程序。四、简答题1.2.在函数内部修改全局变量的值需要使用global关键字声明该变量。五、综合应用题1.#步骤1:定义全局变量并赋值grade=3#步骤2:编写输出学生信息的函数defprint_student_info():#步骤2.1:在函数内部定义局部变量name="小明"age=18#步骤2.2:使用全局变量输出班级信息globalgradeprint(f"{name}\t{age}\t{grade}\t2")#步骤3:调用函数并输出学生信息print_student_info()2.#步骤1:定义全局变量并赋值num1=5num2=3#步骤2:编写加法函数defadd():#步骤2.1:在函数内部定义局部变量result=num1+num2print(f"{num1}+{num2}={result}")#步骤3:编写减法函数defsubtract():#步骤3.1:在函数内部定义局部变量result=num1-num2print(f"{num1}-{num2}={result}")#步骤4:调用函数并输出计算结果add()subtract()5Pythonlambda一、填空题迭代器过滤升序[name]=lambda[list]匿名二、判断题1.×2.×3.×三、名词解释1.高阶函数是能够接受函数作为参数或者返回函数的函数。2.filter四、简答题lambdalaae:esiaesesin。五、综合应用题#首先,我们定义一个高阶函数apply_func,该函数接收一个函数作为参数,并应用该函数到给定的列表上。defapply_func(func,lst):return[func(i)foriinlst]例如,如果给定一个加法函数和一个列表[123],apply_func应返回[234]。add_one=lambdax:x1print(apply_func(add_one,[1,2,3]))#输出:[2,3,4]lambda表达式定义一个函数,该函数接受三个参数并返回它们的和。sum_three=lambdax,y,z:x+y+zprint(sum_three(1,2,3))#输出:6sortedlambda表达式对一个包含整数的列表进行排序,首先按照绝对值从小到大,然后按照数值从小到大。lst=[1,-2,3,-4,5]sorted_lst=sorted(lst,key=lambdax:(abs(x),x))print(sorted_lst)#输出:[1,-2,3,-4,5]apply_func函数,应用你定义的加法函数到另一个列表上,并打印结果。print(apply_func(add_one,[4,5,6]))#输出:[5,6,7]2.#首先,我们定义一个高阶函数multiply_by_factor。这个函数接收一个函数和一个因子作为参数,并返回一个新的函数。defmultiply_by_factor(func,factor):defnew_func(n):returnfunc(n)*factorreturnnew_funclambda表达式定义一个函数,该函数接收两个参数并返回它们的乘积。multiply=lambdax,y:x*ymapfilter高阶函数,将上述定义的乘法函数应用到列表上的所有偶数元素上,并将结果转换为列表。numberslist(range(1,11))#110的列表product_list=list(map(lambdax:multiply(x,2),list(filter(lambdax:x%20numbers))))#map函数将乘法函数应用到所有偶数上multiply_by_factor高阶函数,将上述生成的列表中的每个元素乘2。double=multiply_by_factor(lambdax:x,2)#创建一个新的函数,该函数将输入的数值乘以2final_listlist(map(doubleproduct_list))#mapdouble函数应用product_list上的所有元素#打印最终的列表print(final_list)6Python一、填空题1. 修改2. @staticmethod顺序二、判断题1.√2.×三、名词解释1.2.递归是指一个函数调用自己或者通过一系列的函数调用间接地调用自己的过程。在Python中,递归通常用于解决可以被分解成相似子问题的问题。四、简答题Python@紧跟在函数定义之前。修饰器实际上是一个函数,它接受另一个函数作为参数,并返回一个新的函数对象。修饰器可以用来包装或修改原有函数的行为,通过调用传。staticmethod要类的实例就可以直接调用。classmethod修饰器用于将一个函数定义为类方法,它需要传入类本身作为第一个参数(通常命名为cls),并且只能通过类来调用。property修饰器用于将一个方法定义为属性访问器,它允许通过属性名来访问和修改对象的值,而不是使用方法名。五、综合应用题1.importtime #time模块deftimeit(func):defwrapper(*args): #wrapperstarttime.perf_counter() #resultfunc(*args) #endtime.perf_counter() #print('运时秒):',end-start) #算并出数行间returnresult #returnwrapper #@timeit #defmy_sum(n):sum=0foriinrange(n):sum+=ireturnsum #ifname =='main': #判脚是接还是为块入result=my_sum(100) #用数入数100000print(result) #求和果2.deflogit(func): defwrapper(*args): #定义wrapper函数作为修饰器 print(f"开始行{func.name}数") #出日志信:开始执行加法函数 resultfunc(*args) # print(result)输出求和结果 print(f"完成行{func.name}数") #出日志信:完成执行加法函数 returnresult #返回函数执结果 returnwrapper #返回修改后的函对象 @logit #使用修饰对加法函数进行修改 defadd(x,y): returnxy #简单的加法函数实现if name =='main': #判断本是直运行还是作为模块入 result=add(100,1) #add100,1项目七Python面向对象任务1认识类对象和实例对象一、填空题classinit selfinit self二、判断题1.×2.√3.√三、名词解释类对象是用class关键字定义的,用于创建实例对象的蓝图,包含属性和方法。四、简答题封装是将数据和方法封装在一个类中,防止外部直接访问对象的属性,提高代码五、综合应用题1.classPerson:definit(self,name,age):=nameself.age=age

defgreet(self):print(f"Hello,mynameis{},andIam{self.age}years2.classRectangle:definit(self,length,width):self.length=lengthself.width=widthdefarea(self):returnself.length*self.width#示例用法rectangle1=Rectangle(5.0,3.0)print(rectangle1.area())任务2认识属性一、填空题类变量init 二、判断题1.×2.×3.×4.√5.√三、名词解释1.Python(.)2.私有属性是以双下画线开头的属性,不可以直接在类外部访问。使用私有属性可以隐藏类的实现细节,增强封装性,防止外部直接修改属性的值。四、简答题1.2.封装是面向对象编程的三大特性之一,指将数据和对数据的操作封装在一个类中。私有属性通过在属性名前添加双下划线来实现封装,限制了对属性的直接访问。3.@property修饰器用于将一个方法转换为只读属性。它通常用于定义getter方法。五、综合应用题1.classCar:definit(self,brand,model,mileage):self.brand=brandself._model=modelself.mileage=mileagedefget_info(self):returnf"{self.brand}{self._model}-{self.mileage}miles"car1=Car("Toyota","Camry",50000)car2=Car("Honda","Accord",60000)print(car1.get_info())print(car2.get_info())2.classPerson:definit(self,name,age):=nameself._age=age

defbirthday(self):self._age+=1print(f"HappyBirthday,{}!Youarenow{self._age}years#创建人物person1=Person("Alice",25)#生日庆祝person1.birthday()person1.birthday()#输出最终年龄print(f"{}'sfinalage:{person1._age}")任务3认识方法一、填空题defself@staticmethod@classmethod析构二、判断题1.√2.√3.×4.√5.√三、名词解释1.2.实例方法是定义在类中的函数,至少有一个参数,通常命名为self,用于操作实例的属性或执行其他与实例相关的操作。四、简答题1.@classmethodcls@staticmethodself是实例方法中的一个约定参数名,代表当前实例本身。当实例方法被调用时,Pythonselfself,init方法是一个特殊的方法,用于初始化类的实例。当创建类的新实例时,init 五、综合应用题1.classBook:definit(self,title,author):self.title=titleself.author=authordefdisplay_info(self):print(f"Title:{self.title},Author:{self.author}")#示例应用book_instance=Book("PythonProgramming","JohnDoe")book_instance.display_info()2.classCalculator:@staticmethoddefadd_numbers(a,b):returna+b@staticmethoddefmultiply_numbers(a,b):returna*b#示例应用result_add=Calculator.add_numbers(3,5)result_multiply=Calculator.multiply_numbers(4,6)print(f"AdditionResult:{result_add},MultiplicationResult:{result_multiply}")任务4认识继承一、填空题多重重写object覆盖子类 父类二、判断题1.√2.√3.×4.×三、名词解释(/)四、简答题方法重载是指在同一个类中定义多个同名方法,但参数类型或数量不同。方法重Python3.五、综合应用题1.classPerson:definit(self,name):=namedefintroduce(self):passclassStudent(Person):defintroduce(self):returnf"我是学生,我的名字是{}"classTeacher(Person):defintroduce(self):returnf"我是老师,我的名字是{}"#示例使用student_instance=Student("小明")teacher_instance=Teacher("张老师")print(student_roduce())print(teacher_roduce())2.classAnimal:definit(self,name):=namedefmake_sound(self):passclassDog(Animal):defmake_sound(self):return"汪汪汪"classCat(Animal):defmake_sound(self):return"喵喵喵"#示例使用dog_instance=Dog("旺财")cat_instance=Cat("咪咪")print(f"{dog_}发出的声音:{dog_instance.make_sound()}")print(f"{cat_}发出的声音:{cat_instance.make_sound()}")任务5认识可迭代对象——迭代器和生成器一、填空题结束可迭代for暂停break二、判断题1.×2.√3.√三、名词解释1.Python语句进2.iter和nextStopIteration四、简答题迭代器的优势在于可以按需生成元素,而不是一次性生成所有元素。这可以节省2.iter通过。而迭代器是实现了iter和方法的对象,它能够追踪迭代的状态并返回下一个3.iter()(next()StopIteration五、综合应用题1.deffibonacci_generator(n):a,b=0,1count=0whilecount<n:yieldaa,b=b,a+bcount+=1#输出前10个斐波那契数fornuminfibonacci_generator(10):print(num)2.defis_prime(num):ifnum<2:returnFalseforiinrange(2,int(num**0.5)+1):ifnum%i==0:returnFalsereturnTruedefprime_generator(start,end):fornuminrange(start,end+1):ifis_prime(num):yieldnum#测试生成器函数forprime_numinprime_generator(10,30):print(prime_num)项目八Python模块和包任务1模块的导入和使用一、填空题importdatetimehelp()4. *二、判断题1.×2.×3.√4.√5.√三、名词解释1.PythonPython2.命名空间是一个用于存储变量名或标识符与对象之间关联关系的容器。在Python四、简答题(1)API(2)Pythonmathmath.sinmath.cos()(3)在模块中编写测试代码,并消除全局代码。(4)使用私有函数实现不被外部客户端调用的模块函数。(5)通过文档提供模块帮助信息。importmodule_name:frommodule_nameimportfunction_name,variable_name:从模块中选择性地导入特定函数或变量。frommodule_nameimport*:导入模块中的所有内容。Python五、综合应用题1.#fib_module.pydeffibonacci(n):ifn<=0:return"Invalidinput"elifn==1:return0elifn==2:return1else:a,b=0,1for_inrange(n-2):a,b=b,a+breturnb#main_script.pyfromfib_moduleimportfibonaccin=int(input("EnterthepositionofFibonaccinumber:"))result=fibonacci(n)print(f"TheFibonaccinumberatposition{n}is:{result}")2.#square_sum_module.pydefcalculate_square_sum(a,b):returna**2+b**2#main_script.pyfromsquare_sum_moduleimportcalculate_square_sumnum1=int(input("Enterthefirstnumber:"))num2=int(input("Enterthesecondnumber:"))result=calculate_square_sum(num1,num2)print(f"Thesquaresumof{num1}and{num2}is:{result}")任务2包的导入和使用一、填空题import文件夹 块件二、判断题1.×2.√3.√4.√5.×三、名词解释Pythoninit.py四、简答题Pythoninit.py文init.pyPythoninit.py五、综合应用题1.shapes/circle.pyimportmathdefcalculate_area(radius):returnmath.pi*radius**2main_program.pyfromshapesimportcircleradius=5area=circle.calculate_area(radius)print("CircleAreawithradius",radius,":",area)2.utils/math_operations.pydefadd(x,y):returnx+ydefsubtract(x,y):returnx-ymain_program.pyfromutilsimportmath_operationsnum1,num2=10,5sum_result=math_operations.add(num1,num2)difference_result=math_operations.subtract(num1,num2)print("Sum:",sum_result)print("Difference:",difference_result)项目九Python文件操作任务1认识文件一、填空题绝对径 相路径os.path.join()os.remove()os.rename()二、判断题1.×2.√3.√4.√5.×三、名词解释1.绝对路径是从文件系统的根目录开始指定文件或目录的路径,绝对路径能够完整地表示出文件的真实位置吗,并且可以根据这个路径层级找到文件。2.相对路径即相对于当前文件夹,目标文件夹路径。四、简答题在WindowsUnix/Linux/Python3.打开文件:使用open()函数,该函数会返回一个文件对象。对已打开的文件做读/写操作:读取文件内容可以使用read()、readline()以及readlines()函数;向文件中写入内容可以使用write()函数关闭文件:完成对文件的读/写操作后,需要关闭文件,可以使用close()函数。注:文件必须在打开之后才能对其操作,并且在操作结束之后,还应将其关闭,这3步的顺序不能打乱。五、综合应用题1.file_path=input("请输入文本文件的路径:")withopen(file_path,'r')asfile:content=file.read().lower()letter_count={}forcharincontent:ifchar.isalpha():letter_count[char]=letter_count.get(char,0)+1print("每个字母的出现次数:",letter_count)2.file_path=input("请输入文本文件的路径:")withopen(file_path,'r')asfile:lines=file.readlines()line_count=len(lines)print(f"文件{file_path}中共有{line_count}行。")任务2使用文件操作函数完成文本的读写一、填空题openreadwriteclosewfile.read二、判断题1.√2.×3.√4.×三、名词解释2.'r'四、简答题1.readlines函数用于读取文件中的所有行,writelines函数用于将字符串列表写入文件中。2.五、综合应用题1.Python文件中执行#1.创建文件并写入用户信息file=open("user_data.txt",'w')name=input("请输入姓名:")age=input("请输入年龄:")file.write(f"姓名:{name}\n年龄:{age}\n")file.close()#2.重新打开文件,读取并打印用户信息file=open("user_data.txt",'r')content=file.read()print("用户信息:")print(content)file.close()2.importrandom#1.创建文件并写入随机整数file=open("numbers.txt",'w')numbers=[random.randint(1,100)for_inrange(10)]file.write('\n'.join(map(str,numbers)))file.close()#2.重新打开文件,读取并计算平均值file=open("numbers.txt",'r')content=file.read().split('\n')numbers=[int(num)fornumincontentifnum]average=sum(numbers)/len(numbers)print("平均值:",average)file.close()3Python一、填空题dumpreadline()行号abspath()a二、判断题1.√2.×3.×4.√5.×三、名词解释open()四、简答题遍历path,进入每个目录都调用visitvisit函数必须有3个参数(arg,dirname,names),dirname表示当前目录的目录名,names表示当前目录下的所有文件名,args则为walk的第三个参数。os.pathdirname()和basename()函数的区别是os.path.dirname(path)返回pathos.path.basename(path)path五、综合应用题1.importfileinput#创建文本文件并写入内容withopen('sample.txt','w')asfile:file.write("Line1:Hello\nLine2:Python\nLine3:File\nLine4:Input\nLine5:Module")fileinput读取文件内容并输出行号和内容forline_number,line_contentinenumerate(fileinput.input('sample.txt'),start=1):print(f"Line{line_number}:{line_content.strip()}")2.importlinecache10行内容line_number=10file_path='large_file.txt'line_content=linecache.getline(file_path,line_number)print(f"Contentofline{line_number}:{line_content.strip()}")任务4基于文件操作的异常处理一、填空题try exceptfinallyasFileNotFoundError逗号二、判断题1.√2.×3.×三、名词解释异常传递是指在一个函数中捕获异常,并将异常传递到调用它的函数,从而使得四、简答题1.和excepttry块exceptPython常。异常是Python对象,表示一个错误。当Python脚本发生异常时可以选择捕获并处理,若异常超出可处理的范围,没有被捕获程序将会终止,防止造成更大的损失。exceptExceptionase:Exception因此可以捕获任何可能发生的异常,包括文件操作中可能出现的各种异常,如FileNotFoundError、PermissionError等。五、综合应用题1.try:#从用户输入中获取文件名filename=input("请输入文件名:")#尝试打开文件withopen(filename,'r')asfile:#从文件中读取内容并输出content=file.read()print("文件内容:",content)exceptFileNotFoundError:#捕获文件不存在的异常并输出提示信息print(f"文件'{filename}'不存在。")exceptExceptionase:#捕获其他异常并输出异常信息print(f"发生异常:{e}")finally:#无论是否成功打开文件,都要确保文件操作完成后正确关闭文件print("文件操作完成。")2.defdivide_by_zero():#函数包含除零错误result=10/0defcall_divide_by_zero():#函数调用包含可能引发的异常divide_by_zero()try:#主程序捕获异常call_divide_by_zero()exceptZeroDivisionErroraszde:#捕获除零错误并输出错误信息print(f"捕获到除零错误:{zde}")exceptExceptionase:#捕获其他异常并输出异常信息print(f"发生异常:{e}")finally:print("程序执行完毕。")项目十 综合性任务实践综合应用(编程实现的方式有多种,答案示例仅供参考)1.classWarehouse:definit(self):#初始化库存字典self.inventory={}defstock_in(self,item,quantity):#入库self.inventory[item]=self.inventory.get(item,0)+quantityreturnf"{item}入库{quantity}件。"defstock_out(self,item,quantity):#出库ifitemnotinself.inventoryorself.inventory[item]<quantity:returnf"{item}库存不足。"self.inventory[item]-=quantityreturnf"{item}出库{quantity}件。"defquery_all(self):#查询所有物品return"\n".join([f"{item}:{quantity}件"foritem,quantityinself.inventory.items()])defquery_item(self,item):#查询单个物品#ifreturnf"{item}:{self.inventory.get(item,0)}件"defwarehouse_robot():warehouse=Warehouse()whileTrue:print("欢迎您使用仓库管理服务机器人系统!\n请选择您需要使用的功能:\n1入库\n2出库\n3查询所有物品\n4查询单种物品\n5退出系统")choice=input("请选择功能序号(1-5):")ifchoice=='1':item=input("请输入物品名称:")quantity=int(input("请输入物品数量:"))print(warehouse.stock_in(item,quantity))elifchoice=='2':item=input("请输入物品名称:")quantity=int(input("请输入物品数量:"))print(warehouse.stock_out(item,quantity))elifchoice=='3':print(warehouse.query_all())elifchoice=='4':item=input("请输入物品名称:")print(warehouse.query_item(item))elifchoice=='5':print("您已成功退出系统,感谢您选择使用仓库管理服务机器人系统!")breakelse:print("无效的选项,请重新选择。")ifname=="main":warehouse_robot()2.#定义药品类classDrug:definit(self,name,quantity,shelf):=name#药品名称self.quantity=quantity#药品数量self.shelf=shelf#药品所在药架编号self.units=[]#药品单位编号列表#定义医院类classHospital:definit(self):self.drugs={}#存储药品的字典,键为药品名称,值为药品对象self.drug_id=0#药品单位编号,用于生成唯一的药品单位编号#入库操作defadd_drug(self,name,quantity,shelf):ifnameinself.drugs:drug=self.drugs[name]drug.quantity+=quantityforiinrange(quantity):self.drug_id+=1drug.units.append(f"{shelf}-{self.drug_id}")else:drug=Drug(name,quantity,shelf)foriinrange(quantity):self.drug_id+=1drug.units.append(f"{shelf}-{self.drug_id}")self.drugs[name]=drugreturnf"药品{name}已成功入库."#配送操作defdistribute_drug(self,name,ward):ifnameinself.drugsandself.drugs[name].quantity>0:self.drugs[name].quantity-=1self.drugs[name].units.pop()returnf"药品{name}已成功配送到{ward}."else:returnf"药品{name}库存不足.

温馨提示

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

评论

0/150

提交评论