盘的英文怎么说-权限翻译


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在线翻译读音例句