Python程序设计项目化教程方水平课后参考答案_第1页
Python程序设计项目化教程方水平课后参考答案_第2页
Python程序设计项目化教程方水平课后参考答案_第3页
Python程序设计项目化教程方水平课后参考答案_第4页
Python程序设计项目化教程方水平课后参考答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

项目一习题参考答案一、选择题参考答案:1、B2、B3、D4、C5、C6、C7、B8、D二、操作题1、简述搭建Python环境的步骤。参考答案:1)下载Python:访问Python官方网站()并导航到"Downloads"(下载)页面。选择适合你操作系统的最新的Python版本(例如Python3.9)并下载安装程序。2)安装Python:运行下载的安装程序并按照指示进行安装。确保勾选“AddPythontoPATH”(将Python添加到环境变量)选项,这样才能在命令行中直接使用Python。3)验证安装:打开终端或命令提示符窗口,并输入python--version以验证Python是否成功安装并显示正确的版本号。4)安装集成开发环境(IDE)(可选):Python有许多可用的集成开发环境,你可以根据个人喜好选择。一些流行的IDE包括PyCharm、VisualStudioCode、PyDev等。选择并下载适合你的操作系统的IDE,并按照说明进行安装。5)创建和运行Python脚本:使用你喜欢的文本编辑器创建一个.py文件,编写Python代码,并将文件保存为.py后缀。然后在终端或IDE中运行python脚本,使用以下命令:pythonyour_script.py,其中"your_script.py"是你保存的Python脚本文件名。2、编程规范是一组编码风格和最佳实践的准则,旨在提高代码的可读性、可维护性和一致性。请简述Python编程规范。参考答案:(1)缩进规范:缩进在Python中非常重要,它用于表示代码块。编写一个包含代码块的示例程序,并演示使用四个空格进行缩进。(2)变量命名规范:编写一个程序,要求用户输入姓名、年龄和职业,并使用正确的命名规范为这些变量赋值。例如,使用小写字母和下划线,避免使用特殊字符和关键字。(3)函数和方法命名规范:定义一个函数或方法,并使用合适的命名规范来描述其功能。确保使用动词命名函数,使用小写字母和下划线进行分割。(4)注释规范:编写一个函数或程序,并在关键代码行上方添加适当的注释进行解释。注释应该清晰、简洁,并遵循注释规范。(5)行长限制:编写一个包含很长一行的代码示例,并演示如何根据PEP8规范的建议进行合理地换行和缩进,以提高可读性。(6)导入规范:编写一个包含多个模块的程序,并实现适当的导入规范。使用import语句按照PEP8中的建议进行导入,并避免使用frommoduleimport*这样的形式。(7)字符串拼接规范:编写一个程序,要求用户输入名字、年龄和职业,并使用合适的字符串拼接规范来输出一个完整的句子。项目二习题参考答案一、选择题参考答案:1、B2、B3、A4、B5、C6、B7、A8、D9、A10、D11、D12、C二、操作题1、参考答案"abcd".upper()"abcd".find('cd')2、参考答案"a,b,c,d".split(',')3、参考答案string="onetodayisworthtwotomorrows."string.replace('one','One')4、参考答案string=".html"string[0:string.find('.html')]5、参考答案"onetodayisworthtwotomorrows.".startswith('one')"onetodayisworthtwotomorrows.".endswith('tomorrows.')6、参考答案"onetodayisworthtwotomorrows.\n".strip()7、参考答案(1)请循环遍历出所有的keydict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}print("循环遍历的key为:")foraindict.keys():print(a)(2)请循环遍历出所有的valuedict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}print("循环遍历的value为:")forbindict.values():print(b)(3)请循环遍历出所有的key和valuedict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}forkey,valueindict.items():print(f"key:{key},value:{value}")(4)请在字典中增加一个键值对,"place4":"wuhan",输出添加后的字典dict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}dict["place4"]="wuhan"print("字典内容")print(dict)(5)请删除字典中键值对"place1":"beijing",并输出删除后的结果dict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}deldict["place1"]print("字典:",dict)​(6)请删除字典中键"place5"对应的键值对,如果字典中不存在键"place5",则不报错,返回Nonedict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}dict.pop("place5",None)print("删除place5后的字典内容:")print(dict)(7)请获取字典中"place2"对应的值dict={"place1":"beijing","place2":"shanghai","place3":"guangzhou"}a=dict.get("place2")print("键place2的值为:",a)(8)请获取字典中"place6"对应的值,如果不存在,则不报错,并且让其返回None。b=dict.get("place6")print("键place6的值为:",b)8、参考答案已知一个列表lst=[10,20,30,40,50](1)求列表的长度print(len(lst))(2)判断60是否在列表中print(60inlst)(3)lst+[60,70,80]的结果是什么?print(lst+[60,70,80])(4)lst*2的结果是什么print(lst*2)(5)列表里元素的最大值是多少print(max(lst))(6)列表里所有元素的和是多少print(sum(lst))(7)在索引1的位置新增一个的元素100lst.insert(1,100)print(lst)(8)在列表的末尾新增一个元素20lst.append(20)print(lst)9、参考答案(1)编写一个程序,将元组中的元素反转输出。tuple1=(10,20,30,40,50)

tuple1=tuple1[::-1]

print(tuple1)(2)编写一个程序,交换两个元组中的元素。tuple1=(1,2)

tuple2=(8,9)

tuple1,tuple2=tuple2,tuple1

print(tuple1)

print(tuple2)(3)编写一个程序,从一个元组提取部分元素创建新元组。tuple1=(10,20,30,40,50)

tuple2=tuple1[1:3]

print(tuple2)项目三习题参考答案一、选择题参考答案:1、B2、C3、A4、C5、C6、A7、B二、操作题1.编写一个程序,提示用户输入他们的姓名,然后向其打印一条个性化的问候语。参考答案:name=input("请输入您的姓名:")print(f"您好,{name}!欢迎使用该Python程序。")2.编写一个程序,提示用户输入两个数字,并计算它们的和,并将结果输出到控制台。参考答案:num1=input("请输入第一个数字:")num2=input("请输入第二个数字:")num1=float(num1)num2=float(num2)sum=num1+num2print(f"{num1}+{num2}={sum}")3.编写一个程序,提示用户输入一个字符串,然后统计其中大写字母、小写字母和数字的数量,并将结果输出到控制台。参考答案:user_input=input("请输入一个字符串:")upper_count=0lower_count=0digit_count=0forcharinuser_input:ifchar.isupper():upper_count+=1elifchar.islower():lower_count+=1elifchar.isdigit():digit_count+=1print(f"大写字母数量:{upper_count}")print(f"小写字母数量:{lower_count}")print(f"数字数量:{digit_count}")4.编写一个程序,提示用户输入一个整数,然后判断该数是否为奇数或偶数,并将结果输出到控制台。参考答案:num=input("请输入一个整数:")num=int(num)ifnum%2==0:print(f"{num}是偶数。")else:print(f"{num}是奇数。")5.编写一个程序,提示用户输入他们喜欢的颜色,并将其保存到一个文本文件中。参考答案:favorite_color=input("请输入您喜欢的颜色:")withopen('favorite_color.txt','w')asfile:file.write(favorite_color)print(f"您喜欢的颜色已保存到文件中。")6、编写程序,编写程序,输入多条语句保存到“test.txt”中保存。参考答案:file=open("test.txt","w")whileTrue:statement=input("请输入一条语句:")ifstatement=="#":breakfile.write(statement+"\n")file.close()7、读取上述test.txt文件内容参考答案:file=open("test.txt","r")content=file.read()print(content)file.close()8、逐行读取上述test.txt文件内容参考答案:file=open("test.txt","r")lines=file.readlines()forlineinlines:print(line.strip())file.close()项目四习题参考答案一、选择题参考答案:1、B2、A3、C4、A5、C6、C7、A8、A9、D10、C二、操作题1.编写一个程序,提示用户输入两个数值,并计算它们的和、差、积、商和余数,并将结果输出到控制台。参考答案:num1=input("请输入第一个数值:")num2=input("请输入第二个数值:")num1=float(num1)num2=float(num2)sum=num1+num2difference=num1-num2product=num1*num2quotient=num1/num2remainder=num1%num2print(f"{num1}+{num2}={sum}")print(f"{num1}-{num2}={difference}")print(f"{num1}*{num2}={product}")print(f"{num1}/{num2}={quotient}")print(f"{num1}%{num2}={remainder}")2.编写一个程序,提示用户输入一个整数,并判断该数是奇数还是偶数,并将结果输出到控制台。参考答案:num=input("请输入一个整数:")num=int(num)ifnum%2==0:print(f"{num}是偶数。")else:print(f"{num}是奇数。")3.编写一个程序,提示用户输入一个年份,并判断该年份是否是闰年,并将结果输出到控制台。闰年是指能被4整除且不能被100整除的年份,或者能被400整除的年份。参考答案:year=input("请输入一个年份:")year=int(year)if(year%4==0andyear%100!=0)or(year%400==0):print(f"{year}是闰年。")else:print(f"{year}不是闰年。")4.编写一个程序,提示用户输入一个字符串,并计算该字符串的长度,并将结果输出到控制台。参考答案:user_string=input("请输入一个字符串:")string_length=len(user_string)print(f"您输入的字符串长度为:{string_length}")5.编写一个程序,提示用户输入一个三角形的三条边长,然后判断该三角形是等边三角形、等腰三角形还是普通三角形,并将结果输出到控制台。参考答案:a=input("请输入第一条边长:")b=input("请输入第二条边长:")c=input("请输入第三条边长:")a=float(a)b=float(b)c=float(c)ifa+b>canda+c>bandb+c>a:ifa==b==c:print("这是一个等边三角形。")elifa==bora==corb==c:print("这是一个等腰三角形。")else:print("这是一个普通三角形。")else:print("输入的边长无法构成三角形。")项目五习题参考答案一、选择题参考答案:1、B2、C3、D4、A5、C二、操作题1、编写一个程序,要求用户输入三个整数,然后计算并输出它们的平均值,并使用适当的格式化保留两位小数。参考答案:num1=input("请输入第一个整数:")num2=input("请输入第二个整数:")num3=input("请输入第三个整数:")num1=int(num1)num2=int(num2)num3=int(num3)average=(num1+num2+num3)/3print(f"三个整数的平均值为:{average:.2f}")2、编写一个程序,提示用户输入商品的名称和价格,然后使用适当的格式化输出一个简单的购物小票,包括商品名称、价格和购买日期。参考答案:fromdatetimeimportdatetimeitem_name=input("请输入商品名称:")item_price=input("请输入商品价格:")item_price=float(item_price)purchase_date=datetime.now().strftime("%Y-%m-%d%H:%M:%S")print("-"*30)print("购物小票")print("-"*30)print(f"商品名称:{item_name}")print(f"商品价格:{item_price:.2f}")print(f"购买日期:{purchase_date}")print("-"*30)3、编写一个程序,给定一个列表包含多个学生的姓名和分数,使用适当的格式化方式将每个学生的姓名和分数输出到控制台。参考答案:stu=[("张三",90),("李四",85),("王五",92),("赵六",78)]#遍历列表并格式化输出每个学生的姓名和分数forname,scoreinstu:print(f"姓名:{name},分数:{score}")项目六习题参考答案一、选择题参考答案:1、A2、B3、B4、C5、B二、操作题1、请编写一个个人所税计算器,用户输入应发工资薪金所得、五险一金金额和个税免征额,输出应缴税款和实发工资,结果保留小数点后两位。当输入数字小于0或等于0时,输出“输入的数据有误,请重新输入”。其中:实发工资=应发工资-五险一金-应缴税款?参考答案:defincome_tax():salary=eval(input("请输入每月应发工资:"))insurance_fund=eval(input("请输入五险一金:"))exemption=eval(input("请输入个税免征额:"))a=salary-insurance_fund-exemptionifsalary<=0:print('输入的数据有误,请重新输入')elifa<=0:print(f'应缴税款0.00元,实发工资{salary-insurance_fund:.2f}元。')else:if0<a<=3000:t=a*0.03elif3000<a<=12000:t=a*0.1-210elif12000<a<=25000:t=a*0.2-1410elif25000<a<=35000:t=a*0.25-2660elif35000<a<=55000:t=a*0.3-4410elif55000<a<=80000:t=a*0.35-7160elif80000<=a:t=a*0.45-15160r=salary-insurance_fund-tprint(f'应缴税款{t:.2f}元,实发工资{r:.2f}元。')if__name__=='__main__':income_tax()2、编程程序:由键盘输入某年某月某日,判断这一天是这一年的第几天?参考答案:year=int(input('请输入年份:'))month=int(input('请输入月份:'))day=int(input('请输入日期:'))months=(0,31,59,90,120,151,181,212,243,273,304,334)if0<=month<=12:sum=months[month-1]sum+=dayleap=0if(year%400==0)or((year%4==0)and(year%100!=0)):leap=1if(leap==1)and(month>2):sum+=1print('%d年%d月%d日是第%d天!'%(year,month,day,sum))else:print('您输入的日期超出范围!!请重新输入')3、编程程序,利用键盘输入三个数,把这三个数由小到大输出。参考答案:x=int(input("请输入第一个数:"))y=int(input("请输入第二个数:"))z=int(input("请输入第三个数:"))ifx>y:x,y=y,xifx>z:x,z=z,xify>z:y,z=z,yprint('这三个数的小到大的排序为:%d%d%d'%(x,y,z))项目七习题参考答案一、选择题参考答案:1、C2、A3、B4、C5、B二、操作题1.编写程序,计算由数字1.2.3.4.5能组成多少个互不相同且无重复数字的三位数?写出这些三位数?参考答案:i=0print("组成的数字为:\n")forxinrange(1,6):foryinrange(1,6):forzinrange(1,6):if(x!=y)and(y!=z)and(z!=x):i+=1ifi%4:print("%d%d%d"%(x,y,z),end="|")else:print("%d%d%d"%(x,y,z))print("能组成的数字的个数为:%d个"%(i))2.用*号输出字母E的图案。参考答案:print('利用*打印出字母E!')print('*'*10)foriinrange(5):print('*')print('*'*10)foriinrange(5):print('*')print('*'*10)3.利用循环和turtle模块绘制输出国际象棋棋盘。参考答案:importturtleastlength=eval(input())t.pensize(2)t.pencolor("black")#初始坐标,从左上角开始画start=[-4*length,4*length]foriinrange(1,9):forjinrange(1,9):#确定填充颜色,观察图像很容易发现坐标之和为偶数的是涂白色,奇数涂黑色if(i+j)%2==0:t.fillcolor("white")else:t.fillcolor("black")#开始画,一个格子一个格子的画t.begin_fill()t.penup()t.goto(start[0],start[1])t.pendown()t.seth(0)t.fd(length)t.seth(-90)t.fd(length)t.seth(-180)t.fd(length)t.seth(90)t.fd(length)t.end_fill()start[0]=start[0]+lengthstart[1]=start[1]-lengthstart[0]=-4*lengtht.done()4.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?参考答案:f1=1f2=1foriinrange(1,21):print('%12d%12d'%(f1,f2))if(i%2)==0:print('')f1=f1+f2f2=f1+f25.编程程序打印出100-999之间的所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。参考答案:forninrange(100,1000):i=n//100j=n//10%10k=n%10ifi*100+j*10+k==i**3+j**3+k**3:print("%d"%n)项目八习题参考答案一、选择题参考答案:1、C2、A3、C4、B5、C6、B7、B8、B9、D10、A11、C12、A13、A14、A二、操作题1.利用Python写一个函数,输入一个字符串,求其长度并输出其长度。参考答案:defleng():s=input('请输入字符串:\n')print('你输入的字符串的长度为%d个字符'%len(s))if__name__=='__main__':leng()2.利用Python,编写输入函数input()和output()输出函数,利用input()函数输入5个学生3门课程的成绩,利用output()输出记录。参考答案:N=3student=[]foriinrange(5):student.append(['','',[]])definput_stu(stu):foriinrange(N):stu[i][0]=input('请输入学生学号:\n')stu[i][1]=input('请输入学生姓名:\n')forjinrange(3):stu[i][2].append(int(input('请输入该学生的成绩:\n')))defoutput_stu(stu):foriinrange(N):print('%-6s%-10s'%(stu[i][0],stu[i][1]))forjinrange(3):print('%-8d'%stu[i][2][j])if__name__=='__main__':input_stu(student)print(student)output_stu(student)3.写函数,计算传入数字参数的和。(动态传递参数)参考答案:x=int(input("输入要计算的值x:"))#定义动态输入的x值y=int(input("输入要计算的值y:"))#定义动态输入的y值defcalc(x,y):result=x+yreturn("结果是:",result)a=calc(x,y)print(a)4.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作参考答案:importosfile_name="print_tofile.txt"file_new_name='%s.new'%file_nameold_str='最近学习不太好'new_str='最近学习真不好'f_old=open(file_name,'r',encoding='utf-8')f_new=open(file_new_name,'w',encoding='utf-8')forlineinf_old:ifold_strinline:line=line.replace(old_str,new_str)f_new.write(line)print(line)f_old.close()f_new.close()os.replace(file_new_name,file_name)5.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。参考答案:defcheck_str(a):#a为传过来的参数calc=False#空格统计默认False没有forlineina:ifline.isspace():calc=Truereturncalca='1231324567489456'res=check_str(a)print(res) deffunc(strr,listt,tuplee):ifstrr.isspace():print("字符串有空内容")else:print("字符串里面没有空内容")iflen(listt)==0:print("列表有空内容")else:print("列表里面没有空内容")iflen(tuplee)==0:print("元祖有空内容")else:print("元组里面没有空内容")res=func('123456',[],())6.写函数,计算传入字符串中的【数字】、【字母】、【空格】和【其他】的个数参考答案:deffunc(strr):digit_number=0space_number=0alpha_number=0else_number=0foriinstrr:ifi.isdigit():digit_number+=1elifi.isspace():space_number+=1elifi.isalpha():alpha_number+=1else:else_number+=1return("数字,空格,字母,其他内容分别有:",(digit_number,space_number,alpha_number,else_number))res=func('sda!@#$%^&1234567dfghjdada')print(res)项目九习题参考答案一、选择题参考答案:1、C2、B3、A4、A二、操作题1、定义一个汽车类(Car),属性有颜色,品牌,车牌号,并实例化两个对象。参考答案:classCar:def__init__(self,color,brand,license_plate):self.color=colorself.brand=brandself.license_plate=license_platecar1=Car("红色","宝马","京A12345")car2=Car("蓝色","奔驰","沪B67890")print(f"第一辆车的信息:颜色={car1.color},品牌={car1.brand},车牌号={car1.license_plate}")print(f"第二辆车的信息:颜色={car2.color},品牌={car2.brand},车牌号={car2.license_plate}")2、定义一个球员类(Player),属性有身高、体重、姓名,实例化两个球员,分别是姚明和科比参考答案:classPlayer:def__init__(self,name,height,weight):=nameself.height=heightself.weight=weightplayer1=Player("姚明",2.26,140.6)player2=Player("科比",1.98,83.8)print(f"球员{}的信息:身高={player1.height}米,体重={player1.weight}公斤")print(f"球员{}的信息:身高={player2.h

温馨提示

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

评论

0/150

提交评论