《Python程序设计基础与实战》习题答案_第1页
《Python程序设计基础与实战》习题答案_第2页
《Python程序设计基础与实战》习题答案_第3页
《Python程序设计基础与实战》习题答案_第4页
《Python程序设计基础与实战》习题答案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

文档来源网络整理侵权删除PAGE1.填空题(1)对象(2)UTF-8(3).py(4)交互式、文件式2.单选题(1)A(2)D(3)D3.简答题(1)Python的特点包括:易学易用、免费开源、解释性、可移植性、面向对象、可扩展性和丰富的库。(2)首先建立项目,然后在项目下新建Python文件,输入正确的代码,点击运行即可。4.编程题(1)print("你好,PyCharm!")

1.填空题(1)#(2)数字(3)importrandom、formrandomimport*(4)pip2.选择题(1)C(2)B(3)C3.简答题(1)标识符由字母、数字和下划线组成,且不允许以数字开头。在使用标识符时应注意:命名时应遵循见名知意的原则;系统已用的关键字不得用作标识符;标识符区分大小写;汉字在Python中是被允许作为标识符的,但是用汉字作为标识符是不建议的。(2)Python中的模块分为3类:内置模块、第三方模块和自定义模块。内置模块是Python的官方模块,可以直接导入程序;第三方模块是非官方制作发布的模块,需要用户安装后才能使用;自定义模块是用户自行编写的模块,对功能性代码块进行复用。3.编程题(1)x=3y=5print(eval("x**y"))#注意:eval()函数中必须是字符串表达式(2)importturtleturtle.setup(500,300)#设置画布宽为500,高为300turtle.pensize(3)#设置画笔宽为3turtle.pendown()#准备开始绘制turtle.begin_fill()#准备开始填充图形turtle.fillcolor("purple")#填充图形为紫色turtle.goto(40,0)#边绘制边移动画笔至坐标(40,0)turtle.left(120)#逆时针旋转120度turtle.forward(80)#沿着画笔方向前进80turtle.left(120)#逆时针旋转120度turtle.forward(80)#沿着画笔方向前进80turtle.left(120)#逆时针旋转120度turtle.forward(40)#沿着画笔方向前进40,回到原点turtle.end_fill()#结束填充颜色turtle.exitonclick()#不关闭画布,手动关闭(3)importturtleturtle.begin_fill()#开始填充图形turtle.color("pink","pink")#将画笔颜色和填充颜色均设置为粉色turtle.left(135)#将画笔逆时针旋转135度turtle.pendown()#准备开始绘制turtle.forward(127.30)#画笔向前移动127.30个像素turtle.circle(-63.65,180)#在画笔右侧绘制半径为63.65的半圆,半径设置为负数turtle.left(90)#将画笔逆时针旋转90度turtle.circle(-63.65,180)#绘制半径为63.65的半圆turtle.forward(127.30)#画笔向前移动127.30个像素,回到原点turtle.end_fill()#结束填充turtle.exitonclick()#结束绘制不关闭画布

1.填空题(1)True(2)+(3)strip()(4)\(5)str()或者repr()2.单选题(1)D(2)A(3)B(4)A(5)B3.简答题(1)解决方法有以下两种:第一种是改变字符串定义方式,用单引号定义字符串;第二种是用转义字符,将字符串中的双引号改为“\"”。优先采用第一种方式。(2)int(x[,base=10]):将浮点型、布尔型以及符合数值类型规范的字符串转换为整型,其中base代表进制;float(x):将整型和符合数值类型规范的字符串转换为浮点型;complex(real,imag):将实数通过实部和虚部组合为复数类型,或将符合数值类型的字符串转换为复数类型;bool(x):将任意类型转换为布尔类型;str(x)、repr(x):将任意类型转换为字符串类型4.编程题(1)importmathaction=math.pow((1+0.01),365)#学习积累365天inaction=math.pow((1-0.01),365)#放任怠惰365天print(f"学习积累后:{action:.2f},消极怠惰后:{inaction:.2f}")importmathaction=math.pow((1+0.01),3)#三天打鱼inaction=math.pow((1-0.01),2)#两天晒网result=math.pow((action*inaction),(365/5))print(f"一年后知识储备变为:{result:.2f}")(2)word="Python"print(word[::-1])(3)name=input("输入一个英文名字:")print(f"大写:{name.upper()},小写:{name.lower()},首字母大写:{name.title()}")

1.填空题(1)0(2)elif(3)else(4)finally2.选择题(1)C(2)B(3)D(4)A3.简答题(1)else可以和以下语句配合使用:①if语句。if...else语句用于根据条件的值决定执行哪块代码,当条件为True时,执行if后的语句块;当条件为False时,执行else后的语句块。②while语句。在while循环正常结束时,执行else后的语句块。③for语句。在for循环正常结束时,执行else后的语句块。④try...excepy语句。try...except...else语句用于处理未捕捉到异常的情形,else后的语句块可以看作对try语句块正常执行后的一种追加处理。如果try出现异常,则执行except语句块,否则执行else语句块。(2)continue语句仅结束本次循环,进入下次循环,不是结束整个循环,而break语句则用于结束整个循环过程。4.编程题(1)a=float(input("请输入第一条边的边长:"))b=float(input("请输入第二条边的边长:"))c=float(input("请输入第三条边的边长:"))is_triangle="可以"ifa+b>canda+c>bandb+c>aelse"不能"print(f"{is_triangle}组成三角形")(2)foriinrange(1,10):forjinrange(i,10):print(f"{i}×{j}={i*j}",end="\t")print()print("\t"*2*i,end="")(3)fromturtleimport*color("yellow","yellow")begin_fill()foriinrange(5):forward(100)right(144)end_fill()exitonclick()(4)fromrandomimport*random_number=randint(0,10)count=0whileTrue:number=int(input("请输入您猜测的数:"))count+=1ifnumber>random_number:print("猜测错误,太大了")elifnumber<random_number:print("猜测错误,太小了")else:print(f"恭喜您猜中!猜测了{count}次")break(5)fromrandomimport*random_number=randint(0,10)count=0whileTrue:try:number=int(input("请输入您猜测的数:"))count+=1ifnumber>random_number:print("猜测错误,太大了")elifnumber<random_number:print("猜测错误,太小了")else:print(f"恭喜您猜中!猜测了{count}次")breakexceptValueError:print("输入内容必须是整数!")

1.填空题(1)0(2)len()(3)list()(4)sort()(5)切片[:]copy()2.单选题(1)D(2)C(3)A(4)D3.简答题(1)序列是指一块可存放多个值的连续内存空间,这些值按照一定的顺序排列,可以通过每个值所在位置的编号访问它们。序列的常用操作如下:①序列具有索引,可以切片。②相同类型的序列可以相加。③序列乘一个整数值可以重复多次该序列。④可以判断某个元素是不是序列的成员。⑤可以用len()函数计算序列的长度,用max()函数计算序列的最大值,用min()函数计算序列的最小值。⑥可以通过index()方法查找序列中某元素第一次出现的索引,通过count()方法计算某元素出现的次数。(2)列表是可变序列,可以使用append()方法增加元素、通过remove()方法删除元素以及使用索引或切片修改元素等,而元组是不可变序列,不能增加、修改和删除元素。元组可以在字典中作为键使用,而列表则不行。4.编程题(1)num_list=[23,11,12,23,9,2,1,4]new_list=[]foriteminnum_list:ifitemnotinnew_list:new_list.append(item)iflen(num_list)==len(new_list):print("列表num_list无重复元素")else:print("列表num_list有重复元素")(2)my_foods=["果冻","巧克力","火锅"]friends_foods=my_foods.copy()friends_foods.append("火龙果")friends_foods.remove("巧克力")friends_foods[0]="牛奶"print(friends_foods)(3)run_list=["0分钟","20分钟","40分钟","60分钟"]swim_list=["0米","200米","400米","600米"]calories_list=[i*200+j*100foriinrange(len(run_list))forjinrange(len(swim_list))]print("卡路里列表:",calories_list)print(f"运动计划中最多消耗{max(calories_list)}卡路里,最少消耗{min(calories_list)}卡路里")

1.填空题(1)键值对(2)items()(3)|、|=(4)add()(5)&2.单选题(1)A(2)C(3)A(4)D(5)B3.简答题(1)访问字典元素的值可以通过元素的键和get()函数两种方式。通过字典键访问对应的值时,如果键不存在,则会发生KeyError异常。用get()函数访问时,其第一个参数是要访问的键,键存在则返回对应的值,键不存在则返回get()函数的第二个参数。(2)遍历字典可以遍历所有的键值对、遍历所有的键和遍历所有的值。遍历所有的键值对,需要用items()方法获取字典的键值对元组,然后再通过for循环遍历;遍历所有的键,需要用keys()方法获取字典中所有的键,再通过for循环遍历;遍历所有的值,需要用values()方法遍历字典所有的值,再通过for循环遍历。4.编程题(1)student_dict={}whileTrue:stu_id=input("请输入学号(输入空则退出循环):")ifstu_id=="":breakstu_name=input("请输入姓名:")student_dict[stu_id]=stu_nameforiteminsorted(student_dict.keys()):print(f"学号:{item},姓名:{student_dict[item]}")(2)favorite_dict={}whileTrue:classify=input("请输入您喜欢的事物(输入空则退出循环):")ifclassify=="":breakitems=input("您喜欢的"+classify+"包括哪些(请以英文逗号隔开)?")favorite_dict[classify]=items.split(",")print(favorite_dict)forclassify,itemsinfavorite_dict.items():print(f"{classify}包括:",end="")foriteminitems:ifitems.index(item)==len(items)-1:print(item)else:print(item,end=",")(3)list01=[1,2,3,4,4,5,6,7]set01=set(list01)iflen(list01)==len(set01):print("列表中无重复元素")else:print("列表中有重复元素")(4)fromjiebaimport*fromjieba.analyseimport*text="""他笑了笑,并像34年前一样,希望她能在夜色中看到自己的笑:“我给你带来了一件礼物。”他说着,打开背上山来的一个旅行包,拿出—个很奇怪的东西,足球大小,初看上去像是一团胡乱团起的渔网,对着天空时,透过它的孔隙可以看到断断续续的星光.他打开手电,她看到那东西是由无数米粒大小的小球组成的,每个小球都伸出数目不等的几根细得几乎看不见的细杆与其他小球相连,构成了一个极其复杂的网架系统。他关上手电,在黑暗中按了一下网架底座上的一个开关,网架中突然充满了快速移动的光点,令人眼花缭乱,她仿佛在看着一个装进了几万只萤火虫的空心玻璃球。再定睛细看,她发现光点最初都是由某一个小球发出,然后向周围的小球传递,每时每刻都有一定比例的小球在发出原始光点,或传递别的小球发出的光点,她形象地看到了自己的那个比喻:雨中的池塘。“这是恒星闪烁传递模型吗?!啊,真美,难道……你已经预见到这一切?!”“我确实猜测恒星闪烁传递是宇宙间的一种普遍现象,当然是仅凭直觉。但这个东两不是恒星闪烁传递模型。我们院里有一个脑科学研究项目,用三维全息分子显微定位技术,研究大脑神经元之间的信号传递,这就是一小部分右脑皮层的神经元信号传递模型,当然只是很小很少部分。”她着迷地盯着这个星光窜动的球体:“这就是意识吗?”“是的,正如巨量的0和1的组合产生了计算机的运算能力一样。意识也只是由巨量的简单连接产生的,这些神经元间的简单连接聚集到—个巨大的数量,就产生了意识,换句话说,意识,就是超巨量的节点间的信号传递。”他们默默地注视着这个星光灿烂的大脑模型,在他们周围的宇宙深渊中,飘浮着银河系的千亿颗恒星,和银河系外的千亿个恒星系,在这无数的恒星之间,无数的A类闪烁正在传递。"""word_dict={}words=lcut(text)forwordinwords:iflen(word)==1:continueelse:word_dict[word]=word_dict.get(word,0)+1sort_list=sorted(word_dict.items(),key=lambdax:x[1],reverse=True)forword,countinsort_list:print("{:<10}{:<10}".format(word,count))keywords=extract_tags(text,topK=5)print("关键词包括:",keywords)

1.填空题(1)def(2)return(3)global(4)nonlocal(5)None2.单选题(1)A(2)B(3)A(4)D(5)C3.简答题(1)参数的包裹传递用于传递不确定长度的参数,会在函数的形参前加上*或者**,将传入的位置参数包裹成元组,将传入的关键字参数包裹成字典,在函数中进行使用。而参数的解包裹传递是指,实参是元组、列表或者字典类型,在调用函数时,在实参前加上*或者**,拆分后分别与形参进行一一对应。(2)局部变量是指在函数内部使用的变量,只在函数内部起作用。当函数执行结束后,局部变量将不复存在。全局变量是指在函数之外进行定义的变量,能在整个程序中使用。如果希望在函数中对函数外的全局变量进行操作,则需要global关键字在函数内对变量进行重新声明。需要注意的是,如果可变的数据是全局变量,则在函数内可以直接对其进行操作,不需要使用global进行声明。4.编程题(1)defscene_province(scenic_spot,province,abbr_province):print(f"我最喜欢的景点是{scenic_spot}")print(f"它位于{province}")print(f"{province}的简称是{abbr_province}")scene_dict={"scenic_spot":"避暑山庄","province":"河北省","abbr_province":"冀"}scene_province(**scene_dict)(2)defproduct(*number):sum=1foriteminnumber:sum*=itemreturnsumresult=product(3,1,2,4,5)print(result)(3)deffib(n):ifn==0orn==1:returnnreturnfib(n-1)+fib(n-2)try:number=int(input("请输入一个正整数"))result=fib(number)print(result)exceptValueError:print("您的输入有误,需要输入一个正整数")

1.填空题(1)class(2)self(3)@classmethod(4)__init__(5)@staticmethod2.单选题(1)C(2)D(3)A(4)A3.简答题(1)直接在类中定义的属性是类属性,类属性可以通过类或类的实例访问到,但是类属性只能通过类对象来修改,无法通过实例对象修改。通过实例对象添加的属性属于实例属性,实例属性只能通过实例对象来访问和修改,类对象无法访问修改。(2)实例方法、类方法和静态方法的区别主要在定义和调用上。实例方法定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法;调用:只能由实例对象调用。类方法定义:使用装饰器@classmethod,第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);调用:实例对象和类对象都可以调用。静态方法定义:使用装饰器@staticmethod,参数随意,没有“self”和“cls”参数,在方法体中不能访问类内的任何属性和方法。调用:实例对象和类对象都可以调用。4.编程题(1)importmathclassCircle:def__init__(self,redius,color):self.redius=redius#半径self.color=color#颜色defcal_perimeter(self):"""用于计算圆的周长"""perimeter=2*math.pi*self.rediusreturnf"圆的周长为{perimeter:.2f}"defcal_square(self):"""用于计算圆的面积"""square=math.pi*math.pow(self.redius,2)returnf"圆的面积为{square:.2f}"if__name__=="__main__":c1=Circle(4,"red")#创建Circle类的实例对象print(c1.cal_perimeter())#调用cal_perimeter()方法print(c1.cal_square())#调用cal_square()方法(2)classHouse:number=0#用于统计房子的个数def__init__(self,name,length,width):=nameself.length=lengthself.width=widthHouse.number+=1#每创建1个实例对象房子的个数自动增加1defcal_square(self):"""用于计算房子的面积并返回"""square=self.length*self.widthreturnf"{}的面积是{square}"if__name__=="__main__":h1=House("洞庭",20,10)print(h1.cal_square())h2=House("探花",10,10)print(h2.cal_square())print("房子的个数是",House.number)(3)fromdatetimeimportdatetimeclassMedicine:def__init__(self,name,price,pd,exp):=name#药名self.__price=price#药品价格self.__pd=datetime.strptime(pd,"%Y-%m-%d")#药品生产日期,datetime对象self.__exp=datetime.strptime(exp,"%Y-%m-%d")#药品失效日期,datetime对象defguarantee_period(self):gp=self.__exp-self.__pdreturngp.daysdefis_expire(self):today=datetime.today()until_now=(today-self.__pd).daysgp=self.guarantee_period()ifuntil_now>gp:print("商品已经过期")else:print("商品没有过期")if__name__=="__main__":m1=Medicine("白加黑",20,"2021-1-1","2022-1-1")print("保质期共有:",m1.guarantee_period())m1.is_expire()1.填空题(1)继承(2)@property(3)多态(4)多重继承(5)Exception2.单选题(1)D(2)B(3)C(4)B(5)B3.简答题(1)封装是面向对象程序设计的核心思想,将对象的属性和行为封装起来,避免了外界直接访问对象而造成的过度依赖,也阻碍了外界修改对象的内部数据而可能引发的难以预见的结果。继承主要描述的是类与类之间的关系,是面向对象程序设计中提高重用性的重要措施。继承可以在无需编写原有类的情况下,对原有类的功能进行扩展,既包括原有类的所有属性和行为,又可以定义自身的属性和行为,称为继承了原有类。多态是指属性或者行为在基类及其派生类中具有不同的含义或者形式,多态特性使得开发更加科学以及符合人类的思维习惯。(2)自定义异常类需要继承Exception类,一般以Error或者Exception为后缀进行命名。自定义异常类可以用raise抛出,也可以和try...except语句一起使用,和内置异常类用法类似,try...except语句可以捕获自定义异常,使得程序既能不被异常中断又能报出异常信息。4.编程题(1)classCar:def__init__(self,name):=namedefrun(self):passclassTaxiCar(Car):def__init__(self,name,person_num):super().__init__(name)self.person_num=person_numdefrun(self):print(f"{}的载客量为{self.person_num}")classFreightCar(Car):def__init__(self,name,goods_weight):super().__init__(name)self.goods_weight=goods_weightdefrun(self):print(f"{}的载物量为{self.goods_weight}")t1=TaxiCar("红旗",4)t1.run()f1=FreightCar("大货车",2000)f1.run()(2)classStudent:number=0def__init__(self,yuwen,math,physics):self.yuwen=yuwenself.math=mathself.physics=physicsStudent.number+=1def__add__(self,other):Student.number-=1#重载+运算符创造的新对象不能计入学生的总数yuwen=self.yuwen+other.yuwenmath=self.math+other.mathphysics=self.physics+other.physicsreturnStudent(yuwen,math,physics)def__str__(self):returnf"语文:{self.yuwen},数学:{self.math},英语:{self.physics},总人数:{Student.number}"s1=Student(90,100,80)s2=Student(90,90,90)s3=Student(95,100,100)sum=s1+s2+s3print(sum)print(f"语文平均分:{sum.yuwen/sum.number:.2f}")print(f"数学平均分:{sum.math/sum.number:.2f}")print(f"物理平均分:{sum.physics/sum.number:.2f}")(3)classElephant:def__init__(self,name):=namedefopen(self,fridge):#调用方法时将fridge对象传入fridge.open_door()defclose(self,fridge):#调用方法时将fridge对象传入fridge.close_door()defenter(self):print(f"{}进入了冰箱")classFridge:def__init__(self,name):=namedefopen_door(self,ele_name):print(f"{ele_name}打开了冰箱{}的门")defclose_door(self,ele_name):print(f"{ele_name}关闭了冰箱{}的门")e1=Elephant("大象Lucy")f1=Fridge("Fridge")e1.open(f1)e1.enter()e1.close(f1)

1.填空题(1)__iter__()、__next__()(2)StopIteration(3)yield(4)@(5)内嵌2.单选题(1)B(2)C(3)A(4)C(5)A3.简答题(1)for循环的运行原理:1)for循环调用in后对象的__iter__()方法,将可迭代对象转换为迭代器对象。2)调用迭代器对象的__next__()方法,将得到的返回值赋给in前面的变量,再执行循环体中的代码。3)循环往复,直到取完迭代器中的值,自动捕捉StopIteration异常结束循环。(2)如果内部函数引用了外部函数的变量(包括其参数),并且外部函数返回内部函数名,这种函数架构称为闭包。闭包必须满足以下三个条件:1)内部函数的定义嵌套在外部函数中;2)内部函数引用外部函数的变量;3)外部函数返回内部函数名。(3)装饰器的本质是一个嵌套函数,外部函数的参数是需要被装饰的函数名,内部函数用于增加被装饰函数的新功能。@符号可以将装饰器函数与被装饰函数联系起来,@符号的使用将会直接增加被装饰函数的功能。4.编程题(1)defgenerator(str):forchin",.?!":str=str.replace(ch,"")word_list=str.split("")foriteminword_list:iflen(item)>4:yielditemsentence="Thereisnoroyalroadtoscience,andonlythosewhodonotdread\thefatiguingclimbofitssteeppathshaveachanceofgainingitsluminoussummits."g01=generator(sentence)foriteming01:print(item)(2)list01=["study","Python","strong","smart","beautiful"]result_list=list(map(lambdax:x.title(),list01))print(result_list)(3)hello_name="小千"defouter(name):deffunc02(func):deffunc01():returnfunc()+namereturnfunc01returnfunc02@outer(hello_name)defhello():return"你好呀!"print(hello())1.填空题(1)with(2)tell()(3)seek()(4)writerows()(5)数组2.单选题(1)D(2)B(3)C(4)B(5)C3.简答题(1)写入CSV文件可以通过序列形式写入,也可以通过字典形式写入。以序列形式写入CSV文件,需要使用writer()方法创建writer对象,然后,单行写入使用writerow()方法,多行写入使用writerows()方法。以字典形式写入CSV文件,需要使用DictWriter类创建writer方法,并结合writeheader()方法写入表头,writerow()和writerows()方法写入表中数据。读取CSV文件可以通过reader()方法创建可迭代对象reader,遍历reader获得CSV文件中的内容组成的列表。也可以通过DictReader类获取可迭代对象reader,遍历reader获得CSV文件中的内容组成的字典。(2)json库的常用操作包括实现Python数据类型与JSON格式的相互转换,分为解码和编码两个过程。编码过程是指将Python数据类型序列化为JSON格式,需要使用dumps()函数和dump()函数。解码过程是指将JSON格式反序列化为Python数据类型,需要使用loads()函数和load()函数。其中dump()函数和load()函数用于对JSON文件的操作。4.编程题(1)importcsvword_list=[]withopen("english.txt","r")asf:forlineinf:forchin",.?!":line=line.replace(ch,"")word_list+=line.strip().split("")word_dict={}foriteminword_list:word_dict[item]=word_dict.get(item,0)+1result_list=[]forword,numberinword_dict.items():line={}line["word"]=wordline["number"]=numberresult_list.append(line)withopen("english.csv","w",newline="")ascsvfile:fieldnames=result_list[0].keys()writer=csv.DictWriter(csvfile,fieldnames)writer.writeheader()writer.writerows(result_list)(2)fromPILimportImage,ImageDrawdefset_watermark(image,text,outfile="result.jpeg",angle=30):watermark=Image.new("RGB",image.size)#创建一个存放文字水印的新图像,大小与image相同drawer=ImageDraw.Draw(watermark,"RGB")#创建绘制图像的对象#绘制矩形水印drawer.rectangle(((0,0),(500,500)),outline="white",width=10)#绘制直线水印drawer.line(((500,500),(1000,1000)),"white",10)mask=watermark.convert("L")#设置从水印图像转换成色彩模式为L的透明遮罩result=Iposite(watermark,image,mask)#将水印图像与原图进行混合result.save(outfile,"JPEG")#将混合后的图像保存为outfile.jpeg文件if__name__=="__main__":image=Image.open("绿色麦田.jpeg")set_watermark(image,"水印")(3)importcsv,jsonfavorite_language=[{"name":"小千","language":"汉语"},{"name":"小锋","language":"汉语"},{"name":"小狮","language":"汉语"},{"name":"小明","language":"英语"},]withopen("favorite_language.csv","w",encoding="utf-8-sig",newline="")ascsvfile:fieldnames=favorite_language[0].keys()writer=csv.DictWriter(csvfile,fieldnames)writer.writeheader()writer.writerows(favorite_language)withopen("favorite_language.json","w",encoding="utf-8-sig")asjsonfile:json.dump(favorite_language,jsonfile,ensure_ascii=False,indent=2)1.填空题(1)get()(2)text(3)find()、findall()(4)Workbook(5)append()2.单选题(1)C(2)D(3)B(4)A3.简答题(1)网络爬虫的基本工作流程如下。a)设定抓取目标(初始URL)并获取页面。b)不断地爬取页面,直到满足停止爬取的条件。c)对于获取的页面,进行网页下载,获得网页中的数据。获得网页中的数据需要用到Python中的requests模块。d)获取网页中的数据后,需要对此数据进行解析。进行网页解析需要用到Python中的beautifulsoup4模块。e)对于网页解析出来的数据,可以对有用的信息进行存储。有用的信息,可以存储在文件中,也可以存储在数据库中。(2)写入xlsx文件的步骤如下。a)创建一个xlsx工作簿,也就是Workbook类的对象wb。b)创建工作簿对象wb中的工作表ws。工作表通过Workbook.active进行创建,工作表在创建时会自动命名,可以使用工作表的title属性更改它的名称。需要注意的是,如果需要创建多个工作表,第1个工作表用wb.active创建,后续的工作表通过create_sheet()方法创建。c)向xlsx的工作表ws中写入数据。需要用append()方法逐行添加数据,数据会被写在工作表的底部。d)保存xlsx文件。通过save()方法将工作簿对象wb保存为文件。4.编程题(1)impo

温馨提示

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

评论

0/150

提交评论