盘的英文怎么说-权限翻译
2023年4月7日发(作者:admit什么意思)
⽼王卖西⽠python_Python⽼王视频习题答案
基础篇2:
⼀切变量都是数据对象的引⽤
count(\'test\')查看引⽤计数
变量命名不能以数字开头
编码:ascii、un2019翁帆产下一子是真的吗 icode、utf-8
1.阅读str对象的help⽂档,并解决如下的问题。
1.1.有如下字符串。
python是动态语⾔
要求如下[请分别写出脚本]:
a=\'python是动态语⾔\'
(1.)去掉该字符串下前⾯所有的空格。
()
(2.)去掉该字符串下后⾯所有的空格。
()
ViewCode
(3.)去掉该字符串2边的空格。
()
ViewCode
1.2有如下字符串
\"abc\"
(1)请将其全部⼤写。
b=\'abc
ViewCode
(2)请将其全部⼩写。
b=\'ABC\'()
ViewCode
2怎么查看变量的类型是什么?
type(a)
基础篇5习题
1:
info=\'abc\'info[2]=\'d\'
结果是什么,为什么会报错呢?
TypeError:\'str\'objectdoesnotsupportitemassignment
字符串不可变
2如果要把上⾯的字符串info⾥⾯的c替换成d,要怎么操作呢?
info=\'abc\'list(info)
a[2]=\'d\'info=\'\'.join(a)
ViewCode
3下⾯2个变量
a=\'1\'
b=2
printa+b的结果是什么,为什么会出现这个结果,如果希望结果是3,要怎么操作?
不同类型不能相加
int(a)+b
基础篇6习题:
1字符串:
a=\'abcd\'
⽤2个⽅法取出字母d
a[3]
a=\'jay\'
b=\'python\'
⽤字符串拼接的⽅法输出:
mynameisjay,ilovepython.
print\'mynameis%s,ilove%s.\'%(a,b)
\"\".join([a,b])
基础篇7习题:
1:
a=\'pyer\'
b=\'apple\'
⽤字典和format⽅法实现:
mynameispyer,iloveapple.
2:打开⽂件,并且写⼊500这个数字。
a=open(\'\',\'w\')
(500)
()
ViewCode
基础篇8习题:
⼀.已经字符串s=\"i,am,lilei\",请⽤两种办法取出之间的“am”字符。
s[2:4]
(\',\')[1]
ViewCode
⼆.在python中,如何修改字符串?
转成list来修改
⽤replace修改
三.bool(\"2012\"==2012)的结果是什么。
false
四.已知⼀个⽂件,内容如下:
____________
2012来了。
2012不是世界末⽇。
2012欢乐多。
_____________
1.请输出其内容。
printopen(\'\').read()
2.请计算该⽂本的原始长度。
date=open(\'\').read()
len((\'GBK\'))
3.请去除该⽂本的换⾏。
4.请替换其中的字符\"2012\"为\"2013\"。
e(\'2012\',\'2013\')
5.请取出最中间的长度为5的⼦串。
6.请取出最后2个字符。
date[-1:-3:-1]
7.请从字符串的最初开始,截断该字符串,使其长度为11.
8.请将{4}中的字符串保存为⽂本.
五.请⽤代码的形式描述python的引⽤机制。
引⽤从3开始,引⽤⼀次加1,去引⽤减1
六.已知如下代码
________
a=\"中⽂编程\"
b=a
c=a
b2=e(\"中\",\"中\")
________
1.请给出str对象\"中⽂编程\"的引⽤计数
4
2.请给出str对象\"python编程\"的引⽤计数
0
七.已知如下变量
________
a=\"字符串拼接1\"
b=\"字符串拼接2\"
________
1.请⽤四种以上的⽅式将a与b拼接成字符串c。并指出每⼀种⽅法的优劣。
a+b
占位符号
\"\".join([a,b])
c=\"{1}{0}\".format(a,b)
2.请将a与b拼接成字符串c,并⽤逗号分隔。
\",\".join([a,b])
3.请计算出新拼接出来的字符串长度,并取出其中的第七个字符。
c[7]
⼋.请阅读string模块,并且,根据string模块的内置⽅法输出如下⼏题的答案。
1.包含0-9的数字。
2.所有⼩写字母。
3.所有标点符号。
4.所有⼤写字母和⼩写字母。
5.请使⽤你认为最好的办法将{1}-{4}点中的字符串拼接成⼀个字符串。
九.已知字符串
________
a=\"i,am,a,boy,in,china\"
________
1.假设boy和china是随时可能变换的,例boy可能改成girl或者gay,⽽china可能会改成别的国家,你会如何将上⾯的字符串,变为可配置
的。
2.请使⽤2种办法取出其间的字符\"boy\"和\"china\"。
3.请找出第⼀个\"i\"出现的位置。
4.请找出\"china\"中的\"i\"字符在字符串a中的位置。
5.请计算该字符串⼀共有⼏个逗号。
⼗.请将模块string的帮助⽂档保存为⼀个⽂件。
列表习题:
⼀下⾯列表:
a=[1,2,3,4,5,333,11,44]
输出下⾯的结果:
[4,5,333]
a[3:6]
⼆有下⾯2个列表
a=[1,2,3]
b=[4,5,6]
⽤2个⽅法输出下⾯结果:
[1,2,3,4,5,6]
(b)
a+b
三有下⾯2个列表:
a=[1,99,33,44,55,22]
输出结果:
1:[1,2,99,33,44,55,22,(11,33,54)]
.()append
2:[1,2,99,33,101,44,55,22]
extend
四:⽤列表推导式⽣成100内的⼤于20的偶数
[xforxinrange(20,100)ifx%2==0]
列表应⽤习题:
xrange和range的具体区别:
xrange的⽤法:
xrange(开始,结束,步长)xrange它⽣成⼀个xrange对象
当我们需要操作⼀个⾮常⼤的数据,⽽且内存⽐较吃紧的时候,我们可以⽤xrange来操作省内存
xrange⼀般⽤在循环⾥⾯,⽐如我们只需要操作部分数据的话,⽽不是返回全部元素来完成操作,推荐⽤xrange,效率更⾼
⼀:已知:元组a=(1,2,3)利⽤list⽅法,输出下⾯的结果:
(1,2,4)
b=list(a)b[2]=4a=tuple(b)
⼆:利⽤列表推导完成下⾯习题:
1输出结果:[1lovepython,2lovepython,3lovepython,....10lovepython]
[\"%sislovepython\"%xforxinrange(1,10)]
2输出结果:[(0,0),(0,2),(2,0),(2,2)]
[(x,y)forxinrange(3)foryinrange(3)ifx%2==0ify%2==0]
三:
a=[1,2,3]
b=a[:]
dela
b的值是什么。为什么呢?
[1,2,3]
元组和集合习题:
集合不能有切⽚操作
set⽅法创建集合
基本操作:add、update、remove、
⼀元组;a=(1,2,3)
1有2种⽅法输出实现下⾯的结果:
(5,2,3)
2判断2是否在元组⾥
⼆集合a=set([\'a\',\'b\',\'c\'])做下⾯的操作:
1添加字符串\'jay\'到集合a⾥。
(\'jay\')
2集合b=set([\'b\',\'e\',\'f\',\'g\'])⽤2种⽅法求集合a和集合b的并集。
&--交集
|--并集
---差集
字典习题:
字典类型:{\'key\':\'value\'}
key必须为不可变的数据类型:数字,字符串,元组,列表不能做为key
字典是⽆序的,通过键名来读取内容,是可嵌套的
>>>binfo
{\'a\':[1,2,3],\'b\':[4,5,6]}
>>>binfo[\'a\'][1]=5
>>>binfo
{\'a\':[1,5,3],\'b\':[4,5,6]}
已知字典:ainfo={\'ab\':\'liming\',\'ac\':20}
完成下⾯的操作
1使⽤2个⽅法,输出的结果:
ainfo={\'ab\':\'liming\',\'ac\':20,\'sex\':\'man\',\'age\':20}
ainfo[\'sex\']=\'man\'
2输出结果:[\'ab\',\'ac\']
()
3输出结果:[\'liming\',20]
()
4通过2个⽅法返回键名ab对应的值。
(\'ab\')
()[1]
5通过2个⽅法删除键名ac对应的值。
delinfo[\'age\']
(\'name\')
基础篇13-数据结构习题:
列表a=[11,22,24,29,30,32]
1把28插⼊到列表的末端
(28)
2在元素29后⾯插⼊元素57
(4,57)
3把元素11修改成6
a[0]=6
3删除元素32
(32)
4对列表从⼩到⼤排序
b=list(set(a))
##习题2:
列表b=[1,2,3,4,5]
1⽤2种⽅法输出下⾯的结果:
[1,2,3,4,5,6,7,8]
b+[6,7,8]
([6,7,8])
2⽤列表的2种⽅法返回结果:[5,4]
b[-4:-6:-1]
[b[4],b[3]]
3判断2是否在列表⾥
2inb
##习题3:
b=[23,45,22,44,25,66,78]
⽤列表解析完成下⾯习题:
1⽣成所有奇数组成的列表
[xforxinbifx%2==1]
2输出结果:[\'thecontent23\',\'thecontent45\']
[\'Thecontent%d\'%xforxinb[0:2]]
3输出结果:[25,47,24,46,27,68,80]
[x+2forxinb]
##习题4:
⽤range⽅法和列表推导的⽅法⽣成列表:
[11,22,33]
range(11,44,11)
[m*11forminrange(1:4)]
##习题5:
已知元组:a=(1,4,5,6,7)
1判断元素4是否在元组⾥
4ina
2把元素5修改成8
b=list(a)b[2]=8a=tuple(b)
##习题6:
已知集合:setinfo=set(\'acbdfem\')和集合finfo=set(\'sabcdef\')完成下⾯操作:
1添加字符串对象\'abc\'到集合setinfo
(\'abc\')
2删除集合setinfo⾥⾯的成员m
(\'m\')
3求2个集合的交集和并集
setinfo&finfo
setinfo|finfo
##习题7:
⽤字典的⽅式完成下⾯⼀个⼩型的学⽣管理系统。
1学⽣有下⾯⼏个属性:姓名,年龄,考试分数包括:语⽂,数学,英语得分。
⽐如定义2个同学:
姓名:李明,年龄25,考试分数:语⽂80,数学75,英语十秒笑到断气的搞笑段子 85
姓名:张强,年龄23,考试分数:语⽂75,数学82,英语78
2给学⽣添加⼀门python课程成绩,李明60分,张强:80分
tongxue1[\'score\'][\'python\']=60tongxue2[\'score\'][\'python\']=80
3把张强的数学成绩由82分改成89分
tongxue2[\'score\'][\'shuxue\']=89
4删除李明的年龄数据
(\'age\')
5对张强同学的课程分数按照从低到⾼排序输出。
b=tongxue1[\'score\'].values()
()
6外部删除学⽣所在的城市属性,不存在返回字符串beijing
(\'chengshi\',[\'beijing\'])
基础篇18习题:
1.已知字符串a=\"aAsmr3idd4bgs7Dlsf9eAF\",要求如下
1.1请将a字符串的⼤写改为⼩写,⼩写改为⼤写。
se()
1.2请将a字符串的数字取出,并输出成⼀个新的字符串。
\"\".join([t()])
1.3请统计a字符串出现的每个字母的出现次数(忽略⼤⼩写,a与A是同⼀个字母),并输出成⼀个字典。例{\'a\':4,\'b\':2}
[(x,(x))forxinset(())]
1.4请去除a字符串多次出现的字母,仅留最先出现的⼀个。例\'abcabb\',经过去除后,输出\'abc\'
a_list=list(a)#转换成list
set_list=list(set(a_list))#去重以后再转换回list
set_(key=a_)#对去重以后的list进⾏原先的排序
print\'\'.join(set_list)#拼接成字符串
1.5请将a字符串反转并输出。例:\'abc\'的反转是\'cba\'
printa[::-1]
1.6去除a字符串内的数字后,请将该字符串⾥的单词重新排序(a-z),并且重新输出⼀个排序后的字符串。(保留⼤⼩写,a与A的顺序关系
为:A在a前⾯。例:AaBb)
a=\"aAsmr3idd4bgs7Dlsf9eAF\"
l=sorted(a)
a_upper_list=[]
a_lower_list=[]forxinl:r():
a_upper_(x)r():
a_lower_(x)else:pass
foryina_upper_list:
y_lower=()ify_lowerina_lower_list:
a_lower_(a_lower_(y_lower),y)print\'\'.join(a_lower_list)
1.7请判断\'boy\'⾥出现的每⼀个字母,是否都出现在a字符串⾥。如果出现,则输出True,否则,则输出False.
a=\"aAsmr3idd4bgs7Dlsf9eAF\"
search=\'boy\'
u=set(a)
(list(search))printlen(set(a))==len(u)
a=\"aAsmr3idd4bgs7Dlsf9eAF\"
printset(\'boy\').issubset(set(a))
1.8要求如1.7,此时的单词判断,由\'boy\'改为四个,分别是\'boy\',\'girl\',\'bird\',\'dirty\',请判断如上这4个字符串⾥的每个字母,是否都出现
在a字符串⾥。
a=\"aAsmr3idd4bgs7Dlsf9eAF\"search=[\'boy\',\'girl\',\'bird\',\'dirty\']
b=set(a)foriinsearch:
(list(i))printlen(b)==len(set(a))
##另⼀个解答:
a=\"aAsmr3idd4bgs7Dlsf9eAF\"lst=[\'boy\',\'girl\',\'bird\',\'dirty\']
s=\'\'.join(lst)printset(s).issubset(set(a))
1.9输出a字符串出现频率最⾼的字母
l=([(x,(x))forxinset(a)])
(key=lambdak:k[1],reverse=True)printl[0][0]
2.在python命令⾏⾥,输⼊importthis以后出现的⽂档,统计该⽂档中,\"be\"\"is\"\"than\"的出现次数。
importos
m=(\'python-mthis\').read()
m=e(\'n\',\'\')
l=(\'\')print[(x,(x))forxin[\'be\',\'is\',\'than\']]
3.⼀⽂件的字节数为123,请计算该⽂件按照kb与mb计算得到的⼤⼩。
size=123
print\'%skb\'%(size>>10)print\'%smb\'%(size>>20)
4.已知a=[1,2,3,6,8,9,10,14,17],请将该list转换为字符串,例如\'7\'.
a=[1,2,3,6,8,9,10,14,17]printstr(a)[1:-1].replace(\',\',\'\')
python语句1.1:
print重定向>>
f=open(\'\',\'w\')print>>f,\'hahahahaha\'()
进阶承上启下:
⼀:安装使⽤virtualenv,成功以后截个图。
⼆:把基础篇所学的:字符串,列表,元组,字典,集合。
从下⾯⼏个⽅⾯进⾏⽐较和总结:
1是否⽀持边界检查
2索引⽅法特点
3哪些⽀持迭代协议
4元素访问的特点,是顺序的还是⽆序的
列表元组有序,字典⽆序
5哪些是可变和哪些是不可变的
元组不可变、字符串不可变int不可变
6哪些⽀持多层嵌套
三:通过基础篇的学习,说出你最喜欢python的哪⼀点,为什么?
函数第⼀节:
习题:
1.定义⼀个⽅法func,该func可以引⼊任意多的整型参数,结果返回其中最⼤与最⼩的值。
defnum(*num):#遍历参数列表,判断参数类型是否为整形诺的组词
foriinnum:ifnotisinstance(i,int):return\'参数错误,参数必须为整数\'
returnmax(num),min(num)
2.定义⼀个⽅法func,该func可以引⼊任意多的字符串参数,结果返回(长度)最长的字符串。
deffun2(*num2):
b=[]foriinnum2:ifisinstance(i,str):
(i)else:print\"xx\"
print\"maxstringis%s\"%max(b,key=lambdax:len(x))
3.定义⼀个⽅法get_doc(module),module参数为该脚本中导⼊或定义的模块对象,该函数返回module的帮助⽂档。
defget_doc(modu):printmodu.__doc__
4.定义⼀个⽅法get_text(f),f参数为任意⼀个⽂件的磁盘路径,该函数返回f⽂件的内容。
>>>defget_text(f):
...a=open(f)
...()
5.定义⼀个⽅法get_dir(folder),folder参数为任意⼀个⽂件夹,该函数返回folder⽂件夹的⽂件列表。提⽰(可以了解python的glob模块)
importglobdefget_dir(d):(d+\'*\'):returni
函数第⼆节:
习题:
1定义⼀个⽅法get_num(num),num参数是列表类型,判断列表⾥⾯的元素为数字类型。其他类型则报错,并且返回⼀个偶数列表:(注:
列表⾥⾯的元素为偶数)。
defget_num(num):
b=[]foriinnum:ifisinstance(i,int):
(i)return[xforxinbifx%2==0]printget_num([1,3,5,6,7,4,3,2])
2定义⼀个⽅法get_page(url),url参数是需要获取⽹页内容的⽹址,返回⽹页的内容。提⽰(可以了解python的urllib模块)。
defget_page(url):ifnot(witch(\'\'))witch(\'\'):returnu\'url地址不
对\'date=n(url)()printget_page(\'\')
3定义⼀个⽅法func,该func引⼊任意多的列表参数,返回所有列表中最⼤的那个元素。
deffunc(num):returnmax(num)printfunc([1,3,5,6,7,7,3])
4定义⼀个⽅法get_dir(f),f参数为任意⼀个磁盘路径,该函数返回路径下的所有⽂件夹组成的列表,如果没有⽂件夹则返回\"Notdir\"。
defget_dir(f):(f):(f+\'*\')else:print\"Notdir\"
printget_dir(\"f:\")
注明:吸取上次作业遇到的问题,要求写的函数逻辑清楚,并且考虑⼀些特殊的情况处理,能做断⾔的尽量⽤断⾔。
函数第三节:
习题:
1定义⼀个⽅法get_fundoc(func),func参数为任意⼀个函数对象,返回该函数对象的描述⽂档,如果该函数没有描述⽂档,则返回\"not
found\"
2定义⼀个⽅法get_cjsum(),求1-100范围内的所有整数的平⽅和。返回结果为整数类型。
3定义⼀个⽅法list_info(list),参数list为列表对象,怎么保证在函数⾥对列表list进⾏⼀些相关的操作,不会影响到原来列表的元素值,⽐
如:
a=[1,2,3]
deflist_info(list):
\'\'\'要对list进⾏相关操作,不能直接只写⼀句return[1,2,5],这样就没意义了\'\'\'
printlist_info(a):返回结果:[1,2,5]
printa输出结果:[1,2,3]
函数第四节:
1⽤lambda和filter完成下⾯功能:输出⼀个列表,列表⾥⾯包括:1-100内的所有偶数。(提⽰:可以⽤filter,lambda)
filter(lambdax:x%2==0,range(1,100))
2⽤位置匹配,关键字匹配,收集匹配(元组收集,字典收集)分别写4个函数,完成功能;
传递3个列表参数:
[1,2,3],[1,5,65],[33,445,22]
返回这3个列表中元素最⼤的那个,结果是:445
deffun1(list1,list2,list3):
c=list1+list2+list3returnmax(c)deffun2(list1=[],list2=[],list3=[]):
c=list1+list2+list3returnmax(c)
a=[]deffun3(*kargs):foriinkargs:
(i)printmax(a)deffun4(**kwargs):()forkeyinkwargs:
(kwargs[key])printmax(b)
3递归函数解释,⽤⾃⼰的话说明这个递归函数的⼯作流程。
deffunc1(i):ifi<100:returni+func1(i+1)returniprintfunc1(0)
函数周末习题:
#coding=utf-8
\'\'\'
1.定义⼀个func(name),该函数效果如下。
assertfunc(\"lilei\")=\"Lilei\"
assertfunc(\"hanmeimei\")=\"Hanmeimei\"
assertfunc(\"塞上江南 Hanmeimei\")=\"Hanmeimei\"
\'\'\'
\"\"\"
deffunc(name):lize()
2.定义⼀个func(name,callback=None),效果如下。
assertfunc(\"lilei\")==\"Lilei\"
assertfunc(\"LILEI\",callback=)==\"lilei\"
assertfunc(\"lilei\",callback=)==\"LILEI\"
deffunc2(name,callback=None):ifcallback==\'\':()elif
callback==\"\":()else:lize()
3.定义⼀个func(*kargs),效果如下。
l=func(1,2,3,4,5)
foriinl:
printi,
#输出12345
l=func(5,3,4,5,6)
foriinl:
printi
#输出53456
\"\"\"
deffunc3(*kargs):
returnkargs
\"\"\"
4.定义⼀个func(*kargs),该函数效果如下。
assertfunc(222,1111,\'xixi\',\'hahahah\')=男孩诗经楚辞的名字 =\"xixi\"
assertfunc(7,\'name\',\'dasere\')==\'name\'
assertfunc(1,2,3,4)==None
defshortstr(*kargs):
lis=filter(lambdax:isinstance(x,str),kargs)
len_lis=[len(x)forxinlis]iflen_lis:
min_index=min(len_lis)returnlis[len_(min_index)]returnNone
5.定义⼀个func(name=None,**kargs),该函数效果如下。
assertfunc(“lilei”)==\"lilei\"
assertfunc(\"lilei\",years=4)==\"lilei,years:4\"
assertfunc(\"lilei\",years=10,body_weight=20)==\"lilei,years:4,body_weight:20\"
deffunc4(name=None,**kwargs):
data=[]forx,():
([\',\',str(x),\":\",str(y)])
info=\"\".join(data)return(name,info)
⾯向对像第⼀节,习题:
⼀:定义⼀个学⽣类。有下⾯的类属性:
1姓名
2年龄
3成绩(语⽂,数学,英语)[每课成绩的类型为整数]
类⽅法:
1获取学⽣的姓名:get_name()返回类型:str
2获取学⽣的年龄:get_age()返回类型:int
3返回3门科⽬中最⾼的分数。get_course()返回类型:int
写好类以后,可以定义2个同学测试下:
zm=student(\'zhangming\',20,[69,88,100])
返回结果:
zhangming
20
100
lq=student(\'liqiang\',23,[82,60,99])
返回结果:
liqiang
23
99
classStudent(object):def__init__(self,name,age,*num):
=name
=age
=numdefget_name(self):fget_age(self):get_score(self):
b=ntmax(b)returnmax(b)
⼆:定义⼀个字典类:dictclass。完成下⾯的功能:
dict=dictclass({你需要操作的字典对象})
1删除某个key
del_dict(key)
2判断某个键是否在字典⾥,如果在返回键对应的值,不存在则返回\"notfound\"
get_dict(key)
3返回键组成的列表:返回类型;(list)
get_key()
4合并字典,并且返回合并后字典的values组成的列表。返回类型:(list)
update_dict({要合并的字典})
classdict荷花的诗句有哪些 Class(object):def__init__(self,num):
=numprintnumdefdel_dict(self,key):
=[]defget_dict(self,key):
=_key():[]else:return\"Notfound\"
defget_key(self):()defupdate_dict(self,dict):
=dict
(dict)
a=dictClass({\'qq\':22,\'yy\':44})_key()_dict(\'qq\')_dict(\'77\')
⾯向对像第⼆节,习题:
定义⼀个列表的操作类:Listinfo
包括的⽅法:
1列表元素添加:add_key(keyname)[keyname:字符串或者整数类型]
2列表元素取值:get_key(num)[num:整数类型]
3列表合并:update_list(list)[list:列表类型]
4删除并且返回最后⼀个元素:del_key()
list_金黄的稻束教案 info=Listinfo([44,222,111,333,454,\'sss\',\'333\'])
classListInfo(object):def__init__(self,list_a):
_a=list_adefadd_key(self,keyname):ifnotisinstance(keyname,int)ornotisinstance():return\"Inputmust
strandint\"_(keyname)_adefget_key(self,num):ifnotisinstance(num,int)ornotnum<0:return
\"numerror\"
_a[num]defupdate_list(self,list_b):ifnotisinstance(list_b,list):return\'mustbealist\'
_(list_b)defdef_key(self):_()
list_info=ListInfo([44,222,111,333,454,\'sss\',\'333\'])printlist__key()
定义⼀个集合的操作类:Setinfo
包括的⽅法:
1集合元素添加:add_setinfo(keyname)[keyname:字符串或者整数类型]
2集合的交集:get_intersection(unioninfo)[unioninfo:集合类型]
3集合的并集:get_union(unioninfo)[unioninfo:集合类型]
4集合的差集:del_difference(unioninfo)[unioninfo:集合类型]
set_info=Setinfo(你要操作的集合)
classSetinfo(object):def__init__(self,set_list):
_list=set_listdefadd_setinf(self,keyname):ifnotisinstance(keyname,str)ornotisinstance(keyname,int):return\"Errot\"
_(keyname)defget_intersection(self,unioninfo):ifnotisinstance(unioninfo,set):return\'Error\'
_list&unioninfodefdel_difference(self,unioninfo):ifnotisinstance(unioninfo,set):return\"Eroor\"
_list-unioninfo
⾯向对像第三节,习题:
题⽬⼀:写⼀个⽹页数据操作类。完成下⾯的功能:
提⽰:需要⽤到urllib模块
get_httpcode()获取⽹页的状态码,返回结果例如:200,301,404等类型为int
get_htmlcontent()获取⽹页的内容。返回类型:str
get_linknum()计算⽹页的链接数⽬。
importreimporturllibclassget_url(object):def__init__(self,url):
=with(\"http:\")with(\'https:\'):print\'inputurlerror\'exit(-1)
=n()defget_httpcode(self):
httpcode=e()ifhttpcode==200:return\'Returncodeis200,OK\'
elifhttpcode==301:return\"301\"
elifhttpcode==404:return\'notfound\'
else:return\'dontknowcode\'
defget_htmlcontent(self):()defget_linknum(self):
data=()
cc=l(\'href=\"(http:.*?)\"\',data)returnlen(cc)
baidu=get_url(\'\')_linknum()
ViewCode
题⽬⼆:
classSchoolMember:\'\'\'Representsanyschoolmember.\'\'\'
def__init__(self,name,age):
=name
=ageprint\'(InitializedSchoolMember:%s)\'%ftell(self):\'\'\'Tellmydetails.\'\'\'
print\'Name:\"%s\"Age:\"%s\"\'%(,),classTeacher(SchoolMember):\'\'\'Representsateacher.\'\'\'
def__init__(self,name,age,sa娉娉袅袅十三余拼音 lary):
SchoolMember.__init__(self,name,age)
=salarypr登岳阳楼古诗翻译 int\'(InitializedTeacher:%s)\'%ftell(self):print\'Salary:\"%d\"\'
%classStudent(SchoolMember):\'\'\'Representsastudent.\'\'\'
def__init__(self,name,age,marks):
SchoolMember.__init__(self,name,age)
=marksprint\'(InitializedStudent:%s)\'%ftell(self):print\'Marks:\"%d\"\'%
t=Teacher(\'dya\',40,30000)
s=Student(\'Swaroop\',22,75)
members=[t,s]formemberinmembers:
()
ViewCode
体会下这段代码,把结果的执⾏流程⽤⾃⼰的话写下。
模块第⼀节:
导⼊模块两种⽅式:
import模块名
from模块名import⽅法
from模块名importall
包的创建
⽅法⼀:
1、创建⼀个⽂件夹,包后再新建⼀个__init__.py⽂件,再次可以创建⾃⼰的⽅法
2、引⽤
import⽂件夹.⽅法as⽅法
print⽅法.⽅法()
⽅法⼆:
1、创建⼀个⽂件夹,包后再新建⼀个__init__.py⽂件,再次可以创建⾃⼰的⽅法
2、from⽂件夹import⽅法函数
import路径importsys
(\'/tmp/\')
模块第⼆节:
常⽤模块介绍:
urllib
urllib2
datetimetime
os
pickle
bsddb-数据库
logging
习题:
习题⼀:
1.1⽤time模块获取当前的时间戳.
importtime
me(\"%Y%m%d%H:%M:%S\")
1.2⽤datetime获取当前的⽇期,例如:2013-03-29
()
1.3⽤datetime返回⼀个⽉前的⽇期:⽐如今天是2013-3-29⼀个⽉前的话:2013-02-27
习题⼆:
1⽤os模块的⽅法完成操作。
importsubprocess
(\'\',shell=True)
2定义⼀个函数kouzhang(dirpwd),⽤os模块的相关⽅法,返回⼀个列表,列表包括:dirpwd路径下所有⽂件不重复的扩展名,如果有2
个\".py\"的扩展名,则返回⼀个\".py\"。
importosdefkouzhang(dirpwd)
c=[]
dirpwd=raw_input(\'pleaseinputyourdir:\')(dirpwd):return\"Pleaseinputadir\"
r(dirpwd):(dirpwd+i):
((\'.\')[-1])returnlist(set(c))
ViewCode
习题三:
定义⼀个函数xulie(dirname,info)参数:dirname:路径名,info:需要序列化的数据,功能:将info数据序列化存储到dirname路径下随机
的⽂件⾥。
picklejson
importpickle,randomdefxulie(dirname,info):(dirname):return\'Notfound!\'a=(info)
filename=\'\'
foriinrange(10):
filename=filename+(\'abcedfghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ1234567890\')
filepath=(dirname,filename)
f=open(filepath,\'a+\')
(a)
()
a=[1,2,3,4,5,6,7]
xulie(\'C:UsersAdministratorDesktop\',a)
ViewCode
异常1.1
习题:
1定义⼀个函数func(filename)filename:⽂件的路径,函数功能:打开⽂件,并且返回⽂件内容,最后关闭,⽤异常来处理可能发⽣的错
误。
#coding:utf-8
defopen_file(filename):try:
f=open(filename)()exceptIOError:return\"OpenfileError\"
finally:if\'data\'inlocals():
()printopen_file(\'\')
ViewCode
2定义⼀个函数func(urllist)urllist:为URL的列表,例如:[\'\',\'\',\'\'...]
函数功能:要求依次打开url,打印url对应的内容,如果有的url打不开,则把url记录到⽇志⽂件⾥,并且跳过继续访问下个url。
defget_url(url_list):forurlinurl_list:try:printurl
date=n(url)#()
()except:
file_txt=open(\'\',\'a+\')
file_(str(e())+\'Errorn\')return\'Error\'
printget_url([\'\',\'\',\'\',\'\'])
ViewCode
3定义⼀个函数func(domainlist)domainlist:为域名列表,例如:[\'\',\'\',\'\'...]
函数功能:要求依次ping域名,如果ping域名返回结果为:requesttimeout,则把域名记录到⽇志⽂件⾥,并且跳过继续ping下个域
名。(提⽰⽤os模块的相关⽅法)
异常处理1.3习题:
⼀编写with操作类Fileinfo(),定义__enter__和__exit__⽅法。完成功能:
1.1在__enter__⽅法⾥打开Fileinfo(filename),并且返回filename对应的内容。如果⽂件不存在等情况,需要捕获异常。
1.2在__enter__⽅法⾥记录⽂件打开的当前⽇期和⽂件名。并且把记录的信息保持为。内容格式:\"\"
⼆:⽤异常⽅法,处理下⾯需求:
info=[\'\',\'/\',\'\'....]任意多的⽹址
2.1定义⼀个⽅法get_page(listindex)listindex为下标的索引,类型为整数。函数调⽤:任意输⼊⼀个整数,返回列表下标对应URL的内
容,⽤tryexcept分别捕获列表下标越界和url404notfound的情况。
三:定义⼀个⽅法get_urlcontent(url)。返回url对应内容。
要求:
1⾃⼰定义⼀个异常类,捕获URL格式不正确的情况,并且⽤logging模块记录错误信息。
2⽤内置的异常对象捕获url404notfound的情况。并且print\'urlisnotfound\'
模块:
习题⼀:
1.1⽤time模块获取当前的时间戳.
e()
1.2⽤datetime获取当前的⽇期,例如:2013-03-29
1.3⽤datetime返回⼀个⽉前的⽇期:⽐如今天是2013-3-29⼀个⽉前的话:2013-02-27
习题⼆:
1⽤os模块的⽅法完成操作。
2定义⼀个函数kouzhang(dirpwd),⽤os模块的相关⽅法,返回⼀个列表,列表包括:dirpwd路径下所有⽂件不重复的扩展名,如果有2
个\".py\"的扩展名,则返回⼀个\".py\"。
习题三:
定义⼀个函数xulie(dirname,info)参数:dirname:路径名,info:需要序列化的数据,功能:将info数据序列化存储到dirname路径下随机
的⽂件⾥。
更多推荐
asrm是什么意思m在线翻译读音例句
发布评论