日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python将姓王的都改成老王_Python老王视频习题答案

發布時間:2023/12/15 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python将姓王的都改成老王_Python老王视频习题答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基礎篇2:

一切變量都是數據對象的引用

sys.getrefcount(‘test‘) 查看引用計數

變量命名不能以數字開頭

編碼:ascii、unicode、utf-8

1.閱讀str對象的help文檔,并解決如下的問題。

1.1.有如下字符串。

python是動態語言

要求如下[請分別寫出腳本]:

a=‘ python是動態語言 ‘

(1.)去掉該字符串下前面所有的空格。

print a.lstrip()

(2.)去掉該字符串下后面所有的空格。

print a.rstrip()

View Code

(3.)去掉該字符串2邊的空格。

print a.strip()

View Code

1.2有如下字符串

"abc"

(1)請將其全部大寫。

b=‘abc

b.upper

View Code

(2)請將其全部小寫。

b=‘ABC‘b.lower()

View Code

2 怎么查看變量的類型是什么?

type(a)

基礎篇5習題

1 :

info = ‘abc‘info[2] = ‘d‘

結果是什么,為什么會報錯呢?

TypeError: ‘str‘ object does not support item assignment

字符串不可變

2 如果要把上面的字符串info里面的c替換成d,要怎么操作呢?

info=‘abc‘list(info)

a[2]=‘d‘info=‘‘.join(a)

View Code

3 下面2個變量

a = ‘1‘

b = 2

print a + b 的結果是什么,為什么會出現這個結果,如果希望結果是3,要怎么操作?

不同類型不能相加

int(a)+ b

基礎篇6習題:

1 字符串:

a = ‘abcd‘

用2個方法取出字母d

a[3]

a = ‘jay‘

b = ‘python‘

用字符串拼接的方法輸出:

my name is jay,i love python.

print ‘my name is %s,i love %s.‘ % (a,b)

"".join([a,b])

基礎篇7習題:

1:

a = ‘pyer‘

b = ‘apple‘

用字典和format方法實現:

my name is pyer, i love apple.

2:打開文件info.txt,并且寫入500這個數字。

a=open(‘info.txt‘,‘w‘)

a.write(500)

a.close()

View Code

基礎篇8習題:

一.已經字符串 s = "i,am,lilei",請用兩種辦法取出之間的“am”字符。

s[2:4]

s.split(‘,‘)[1]

View Code

二.在python中,如何修改字符串?

轉成list來修改

用replace修改

三.bool("2012" == 2012) 的結果是什么。

false

四.已知一個文件 test.txt,內容如下:

____________

2012來了。

2012不是世界末日。

2012歡樂多。

_____________

1.請輸出其內容。

print open(‘text.txt‘).read()

2.請計算該文本的原始長度。

date=open(‘text.txt‘).read()

len(date.decode(‘GBK‘))

3.請去除該文本的換行。

4.請替換其中的字符"2012"為"2013"。

print date.replace(‘2012‘,‘2013‘)

5.請取出最中間的長度為5的子串。

6.請取出最后2個字符。

date[-1:-3:-1]

7.請從字符串的最初開始,截斷該字符串,使其長度為11.

8.請將{4}中的字符串保存為test1.py文本.

五.請用代碼的形式描述python的引用機制。

引用從3開始,引用一次加1,去引用減1

六.已知如下代碼

________

a = "中文編程"

b = a

c = a

b2 = a.replace("中","中")

________

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]

a.extend(b)

a+b

三 有下面2個列表:

a = [1,99,33,44,55,22]

輸出結果:

1:[1,2,99,33,44,55,22,(11,33,54)]

a.insert.()append

2: [1,2,99,33,101,44,55,22]

extend

四:用列表推導式生成100內的大于20的偶數

[x for x in range(20,100) if x%2==0]

列表應用習題:

xrange和range的具體區別:

xrange的用法:

xrange(開始,結束,步長) xrange 它生成一個xrange對象

當我們需要操作一個非常大的數據,而且內存比較吃緊的時候,我們可以用xrange來操作省內存

xrange一般用在循環里面,比如我們只需要操作部分數據的話,而不是返回全部元素來完成操作,推薦用xrange,效率更高

一: 已知:元組 a = (1,2,3) 利用list方法,輸出下面的結果:

(1,2,4)

b=list(a) b[2]=4 a=tuple(b)

二: 利用列表推導完成下面習題:

1 輸出結果:[1 love python,2 love python,3 love python,.... 10 love python]

["%s is love python" % x for x in range(1,10)]

2 輸出結果:[(0,0),(0,2),(2,0),(2,2)]

[(x,y) for x in range(3) for y in range(3) if x%2==0 if y%2==0]

三:

a = [1,2,3]

b = a[:]

del a

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里。

a.add(‘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‘]

ainfo.keys()

3 輸出結果:[‘liming‘,20]

ainfo.values()

4 通過2個方法返回鍵名ab對應的值。

ainfo.get(‘ab‘)

info.keys()[1]

5 通過2個方法刪除鍵名ac對應的值。

del info[‘age‘]

info.pop(‘name‘)

基礎篇13-數據結構習題:

列表a = [11,22,24,29,30,32]

1 把28插入到列表的末端

a.append(28)

2 在元素29后面插入元素57

a.insert(4,57)

3 把元素11修改成6

a[0]=6

3 刪除元素32

a.remove(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]

b.extend([6,7,8])

2 用列表的2種方法返回結果:[5,4]

b[-4:-6:-1]

[b[4],b[3]]

3 判斷2是否在列表里

2 in b

##習題3:

b = [23,45,22,44,25,66,78]

用列表解析完成下面習題:

1 生成所有奇數組成的列表

[x for x in b if x%2==1]

2 輸出結果: [‘the content 23‘,‘the content 45‘]

[‘The content %d‘ % x for x in b[0:2]]

3 輸出結果: [25, 47, 24, 46, 27, 68, 80]

[x+2 for x in b]

##習題4:

用range方法和列表推導的方法生成列表:

[11,22,33]

range(11,44,11)

[m*11 for m in range(1:4)]

##習題5:

已知元組:a = (1,4,5,6,7)

1 判斷元素4是否在元組里

4 in a

2 把元素5修改成8

b=list(a) b[2]=8 a=tuple(b)

##習題6:

已知集合:setinfo = set(‘acbdfem‘)和集合finfo = set(‘sabcdef‘)完成下面操作:

1 添加字符串對象‘abc‘到集合setinfo

setinfo.add(‘abc‘)

2 刪除集合setinfo里面的成員m

setinfo.remove(‘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 刪除李明的年齡數據

tongxue1.pop(‘age‘)

5 對張強同學的課程分數按照從低到高排序輸出。

b=tongxue1[‘score‘].values()

b.sort()

6 外部刪除學生所在的城市屬性,不存在返回字符串 beijing

tongxue1.pop(‘chengshi‘,[‘beijing‘])

基礎篇18習題:

1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下

1.1 請將a字符串的大寫改為小寫,小寫改為大寫。

print a.swapcase()

1.2 請將a字符串的數字取出,并輸出成一個新的字符串。

"".join([x for x in a if x.isdigit()])

1.3 請統計a字符串出現的每個字母的出現次數(忽略大小寫,a與A是同一個字母),并輸出成一個字典。 例 {‘a‘:4,‘b‘:2}

[(x,a.count(x)) for x in set(a.lower())]

1.4 請去除a字符串多次出現的字母,僅留最先出現的一個。例 ‘abcabb‘,經過去除后,輸出 ‘abc‘

a_list = list(a) #轉換成list

set_list = list(set(a_list)) #去重以后再轉換回list

set_list.sort(key=a_list.index) #對去重以后的list進行原先的排序

print ‘‘.join(set_list)#拼接成字符串

1.5 請將a字符串反轉并輸出。例:‘abc‘的反轉是‘cba‘

print a[::-1]

1.6 去除a字符串內的數字后,請將該字符串里的單詞重新排序(a-z),并且重新輸出一個排序后的字符 串。(保留大小寫,a與A的順序關系為:A在a前面。例:AaBb)

a = "aAsmr3idd4bgs7Dlsf9eAF"

l =sorted(a)

a_upper_list=[]

a_lower_list=[]for x inl:ifx.isupper():

a_upper_list.append(x)elifx.islower():

a_lower_list.append(x)else:pass

for y ina_upper_list:

y_lower=y.lower()if y_lower ina_lower_list:

a_lower_list.insert(a_lower_list.index(y_lower),y)print ‘‘.join(a_lower_list)

1.7 請判斷 ‘boy‘里出現的每一個字母,是否都出現在a字符串里。如果出現,則輸出True,否則,則輸 出False.

a = "aAsmr3idd4bgs7Dlsf9eAF"

search = ‘boy‘

u =set(a)

u.update(list(search))print len(set(a)) ==len(u)

a= "aAsmr3idd4bgs7Dlsf9eAF"

print set(‘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)for i insearch:

b.update(list(i))print len(b) == len(set(a))

##另一個解答:

a = "aAsmr3idd4bgs7Dlsf9eAF"lst=[‘boy‘,‘girl‘,‘bird‘,‘dirty‘]

s=‘‘.join(lst)print set(s).issubset(set(a))

1.9 輸出a字符串出現頻率最高的字母

l = ([(x,a.count(x)) for x inset(a)])

l.sort(key= lambda k:k[1],reverse=True)print l[0][0]

2.在python命令行里,輸入import this 以后出現的文檔,統計該文檔中,"be" "is" "than" 的出現次數。

importos

m= os.popen(‘python -m this‘).read()

m= m.replace(‘\n‘,‘‘)

l= m.split(‘ ‘)print [(x,l.count(x)) for x in [‘be‘,‘is‘,‘than‘]]

3.一文件的字節數為 102324123499123,請計算該文件按照kb與mb計算得到的大小。

size = 102324123499123

print ‘%s kb‘%(size >> 10)print ‘%s mb‘% (size >> 20)

4.已知 a = [1,2,3,6,8,9,10,14,17],請將該list轉換為字符串,例如 ‘123689101417‘.

a = [1,2,3,6,8,9,10,14,17]print str(a)[1:-1].replace(‘,‘,‘‘)

python 語句1.1:

print重定向>>

f=open(‘aa.txt‘,‘w‘)print >>f,‘hahahahaha‘f.close()

進階承上啟下:

一:安裝使用virtualenv,成功以后截個圖。

二:把基礎篇所學的:字符串,列表,元組,字典,集合。

從下面幾個方面進行比較和總結:

1 是否支持邊界檢查

2 索引方法特點

3 哪些支持迭代協議

4 元素訪問的特點,是順序的還是無序的

列表元組有序,字典無序

5 哪些是可變和哪些是不可變的

元組不可變、字符串不可變 int不可變

6 哪些支持多層嵌套

三:通過基礎篇的學習,說出你最喜歡python的哪一點,為什么?

函數第一節:

習題:

1.定義一個方法 func,該func可以引入任意多的整型參數,結果返回其中最大與最小的值。

def num(*num):#遍歷參數列表,判斷參數類型是否為整形

for i innum:if notisinstance(i,int):return ‘參數錯誤,參數必須為整數‘

return max(num),min(num)

2.定義一個方法func,該func可以引入任意多的字符串參數,結果返回(長度)最長的字符串。

def fun2(*num2):

b=[]for i innum2:ifisinstance(i,str):

b.append(i)else:print "xx"

print "max string is %s" % max(b, key=lambda x:len(x))

3.定義一個方法get_doc(module),module參數為該腳本中導入或定義的模塊對象,該函數返回module的幫助文檔。

defget_doc(modu):print modu.__doc__

4.定義一個方法get_text(f),f參數為任意一個文件的磁盤路徑,該函數返回f文件的內容。

>>> def get_text(f):

... a=open(f)

... return a.read()

5.定義一個方法get_dir(folder),folder參數為任意一個文件夾,該函數返回folder文件夾的文件列表。提示(可以了解python的glob模塊)

importglobdefget_dir(d):for i in glob.glob(d+‘\*‘):return i

函數第二節:

習題:

1 定義一個方法get_num(num),num參數是列表類型,判斷列表里面的元素為數字類型。其他類型則報錯,并且返回一個偶數列表:(注:列表里面的元素為偶數)。

defget_num(num):

b=[]for i innum:ifisinstance(i,int):

b.append(i)return [x for x in b if x%2==0]print get_num([1,3,5,6,7,4,3,2])

2 定義一個方法get_page(url),url參數是需要獲取網頁內容的網址,返回網頁的內容。提示(可以了解python的urllib模塊)。

defget_page(url):if not (url.startswitch(‘http://‘)) or url.startswitch(‘https://‘):return u‘url地址不對‘date=urllib2.urlopen(url)returndate.read()print get_page(‘http://www.baidu.com‘)

3 定義一個方法 func,該func引入任意多的列表參數,返回所有列表中最大的那個元素。

deffunc(num):returnmax(num)print func([1,3,5,6,7,7,3])

4 定義一個方法get_dir(f),f參數為任意一個磁盤路徑,該函數返回路徑下的所有文件夾組成的列表,如果沒有文件夾則返回"Not dir"。

defget_dir(f):ifos.path.exists(f):return glob.glob(f+‘\*‘)else:print "Not dir"

print get_dir("f:\\")

注明:吸取上次作業遇到的問題,要求寫的函數邏輯清楚,并且考慮一些特殊的情況處理,能做斷言的盡量用斷言。

函數第三節:

習題:

1 定義一個方法get_fundoc(func),func參數為任意一個函數對象,返回該函數對象的描述文檔,如果該函數沒有描述文檔,則返回"not found"

2 定義一個方法get_cjsum(),求1-100范圍內的所有整數的平方和。返回結果為整數類型。

3 定義一個方法list_info(list), 參數list為列表對象,怎么保證在函數里對列表list進行一些相關的操作,不會影響到原來列表的元素值,比如:

a = [1,2,3]

def list_info(list):

‘‘‘要對list進行相關操作,不能直接只寫一句return[1,2,5],這樣就沒意義了‘‘‘

print list_info(a):返回結果:[1,2,5]

print a 輸出結果:[1,2,3]

函數第四節:

1 用lambda和filter完成下面功能:輸出一個列表,列表里面包括:1-100內的所有偶數。(提示:可以用filter,lambda)

filter(lambda x: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)def fun2(list1=[],list2=[],list3=[]):

c=list1+list2+list3returnmax(c)

a=[]def fun3(*kargs):for i inkargs:

a.extend(i)printmax(a)def fun4(**kwargs):printkwargs.values()for key inkwargs:

b.extend(kwargs[key])print max(b)

3 遞歸函數解釋,用自己的話說明這個遞歸函數的工作流程。

deffunc1(i):if i<100:return i + func1(i+1)returniprint func1(0)

函數周末習題:

#coding=utf-8

‘‘‘

1.定義一個func(name),該函數效果如下。

assert func("lilei") = "Lilei"

assert func("hanmeimei") = "Hanmeimei"

assert func("Hanmeimei") = "Hanmeimei"

‘‘‘

"""

deffunc(name):return name.capitalize()

2.定義一個func(name,callback=None),效果如下。

assert func("lilei") == "Lilei"

assert func("LILEI",callback=string.lower) == "lilei"

assert func("lilei",callback=string.upper) == "LILEI"

def func2(name,callback=None):if callback==‘string.lower‘:returnname.lower()elif callback=="string.upper":returnname.upper()else:return name.capitalize()

3.定義一個func(*kargs),效果如下。

l = func(1,2,3,4,5)

for i in l:

print i,

#輸出 1 2 3 4 5

l = func(5,3,4,5,6)

for i in l:

print i

#輸出 5 3 4 5 6

"""

def func3(*kargs):

return kargs

"""

4.定義一個func(*kargs),該函數效果如下。

assert func(222,1111,‘xixi‘,‘hahahah‘) == "xixi"

assert func(7,‘name‘,‘dasere‘) == ‘name‘

assert func(1,2,3,4) == None

def shortstr(*kargs):

lis= filter(lambdax:isinstance(x,str),kargs)

len_lis= [len(x) for x inlis]iflen_lis:

min_index=min(len_lis)returnlis[len_lis.index(min_index)]return None

5.定義一個func(name=None,**kargs),該函數效果如下。

assert func(“lilei”) == "lilei"

assert func("lilei",years=4) == "lilei,years:4"

assert func("lilei",years=10,body_weight=20) == "lilei,years:4,body_weight:20"

def func4(name=None,**kwargs):

data=[]for x,y inkwargs.items():

data.extend([‘,‘,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):

self.name=name

self.age=age

self.num=numdefget_name(self):returnself.namedefget_age(self):returnself.agedefget_score(self):

b=self.numprintmax(b)return max(b)

二:定義一個字典類:dictclass。完成下面的功能:

dict = dictclass({你需要操作的字典對象})

1 刪除某個key

del_dict(key)

2 判斷某個鍵是否在字典里,如果在返回鍵對應的值,不存在則返回"not found"

get_dict(key)

3 返回鍵組成的列表:返回類型;(list)

get_key()

4 合并字典,并且返回合并后字典的values組成的列表。返回類型:(list)

update_dict({要合并的字典})

classdictClass(object):def __init__(self,num):

self.num=numprintnumdefdel_dict(self,key):

self.key=keydelself.num[self.key]defget_dict(self,key):

self.key=keyifself.num.has_key(self.key):returnself.num[self.key]else:return "Not found"

defget_key(self):returnself.num.keys()defupdate_dict(self,dict):

self.dict=dict

self.num.update(dict)

a=dictClass({‘qq‘:22,‘yy‘:44})printa.get_key()print a.get_dict(‘qq‘)print a.get_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):

self.list_a=list_adefadd_key(self,keyname):if not isinstance(keyname,int) or notisinstance(keyname.str):return "Input must str and int"self.list_a.append(keyname)returnself.list_adefget_key(self,num):if not isinstance(num,int) or not num<0:return "num error"

returnself.list_a[num]defupdate_list(self,list_b):if notisinstance(list_b,list):return ‘must be a list‘

returnself.list_a.extend(list_b)defdef_key(self):returnself.list_a.pop()

list_info= ListInfo([44,222,111,333,454,‘sss‘,‘333‘])print list_info.def_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):

self.set_list=set_listdefadd_setinf(self,keyname):if not isinstance(keyname,str) or notisinstance(keyname,int):return "Errot"

returnself.set_list.add(keyname)defget_intersection(self,unioninfo):if notisinstance(unioninfo,set):return ‘Error‘

return self.set_list &unioninfodefdel_difference(self,unioninfo):if notisinstance(unioninfo,set):return "Eroor"

return self.set_list - unioninfo

面向對像第三節,習題:

題目一: 寫一個網頁數據操作類。完成下面的功能:

提示:需要用到urllib模塊

get_httpcode()獲取網頁的狀態碼,返回結果例如:200,301,404等 類型為int

get_htmlcontent() 獲取網頁的內容。返回類型:str

get_linknum()計算網頁的鏈接數目。

importreimporturllibclassget_url(object):def __init__(self,url):

self.url=urlprintself.urlif not self.url.startswith("http:") or self.url.startswith(‘https:‘):print ‘input url error‘exit(-1)

self.new=urllib.urlopen(self.url)defget_httpcode(self):

httpcode=self.new.getcode()if httpcode ==200:return ‘Return code is 200,OK‘

elif httpcode==301:return "301"

elif httpcode==404:return ‘not found‘

else:return ‘dont know code‘

defget_htmlcontent(self):returnself.new.read()defget_linknum(self):

data=self.new.read()

cc=re.findall(‘href="(http:.*?)"‘,data)returnlen(cc)

baidu=get_url(‘http://ww.baidu.com‘)print baidu.get_linknum()

View Code

題目二:

classSchoolMember:‘‘‘Represents any school member.‘‘‘

def __init__(self, name, age):

self.name=name

self.age=ageprint ‘(Initialized SchoolMember: %s)‘ %self.namedeftell(self):‘‘‘Tell my details.‘‘‘

print ‘Name:"%s" Age:"%s"‘ %(self.name, self.age),classTeacher(SchoolMember):‘‘‘Represents a teacher.‘‘‘

def __init__(self, name, age, salary):

SchoolMember.__init__(self, name, age)

self.salary=salaryprint ‘(Initialized Teacher: %s)‘ %self.namedeftell(self):print ‘Salary: "%d"‘ %self.salaryclassStudent(SchoolMember):‘‘‘Represents a student.‘‘‘

def __init__(self, name, age, marks):

SchoolMember.__init__(self, name, age)

self.marks=marksprint ‘(Initialized Student: %s)‘ %self.namedeftell(self):print ‘Marks: "%d"‘ %self.marks

t= Teacher(‘Mrs. Shrividya‘, 40, 30000)

s= Student(‘Swaroop‘, 22, 75)

members=[t, s]for member inmembers:

member.tell()

View Code

體會下這段代碼,把結果的執行流程用自己的話寫下。

模塊第一節:

導入模塊兩種方式:

import 模塊名

from 模塊名 import 方法

from 模塊名 import all

包的創建

方法一:

1、創建一個文件夾,包后再新建一個__init__.py文件,再次可以創建自己的方法

2、引用

import 文件夾.方法 as 方法

print 方法.方法()

方法二:

1、創建一個文件夾,包后再新建一個__init__.py文件,再次可以創建自己的方法

2、from 文件夾 import 方法函數

import路徑importsys

sys.path.append(‘/tmp/aa.py‘)

模塊第二節:

常用模塊介紹:

urllib

urllib2

datetime time

os

pickle

bsddb -數據庫

logging

習題:

習題一:

1.1 用time模塊獲取當前的時間戳.

importtime

time.strftime("%Y%m%d %H:%M:%S")

1.2 用datetime獲取當前的日期,例如:2013-03-29

from datetime importdateprint date.today()

1.3 用datetime返回一個月前的日期:比如今天是2013-3-29 一個月前的話:2013-02-27

習題二:

1 用os模塊的方法完成ping www.baidu.com 操作。

importsubprocess

subprocess.call(‘ping www.baidu.com‘,shell=True)

2 定義一個函數kouzhang(dirpwd),用os模塊的相關方法,返回一個列表,列表包括:dirpwd路徑下所有文件不重復的擴展名,如果有2個".py"的擴展名,則返回一個".py"。

importosdefkouzhang(dirpwd)

c=[]

dirpwd=raw_input(‘please input your dir:‘)if notos.path.isdir(dirpwd):return "Please input a dir"

for i inos.listdir(dirpwd):if not os.path.isdir(dirpwd+i):

c.append(i.split(‘.‘)[-1])return list(set(c))

View Code

習題三:

定義一個函數xulie(dirname,info) 參數:dirname:路徑名,info:需要序列化的數據,功能:將info數據序列化存儲到dirname路徑下隨機的文件里。

pickle json

importpickle,randomdefxulie(dirname,info):if notos.path.exists(dirname):return ‘Not found!‘a=pickle.dumps(info)

filename= ‘‘

for i in range(10):

filename=filename+random.choice(‘abcedfghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ1234567890‘)

filepath=os.path.join(dirname,filename)

f= open(filepath,‘a+‘)

f.write(a)

f.close()

a=[1,2,3,4,5,6,7]

xulie(‘C:\Users\Administrator\Desktop‘,a)

View Code

異常1.1

習題:

1 定義一個函數func(filename) filename:文件的路徑,函數功能:打開文件,并且返回文件內容,最后關閉,用異常來處理可能發生的錯誤。

#coding:utf-8

defopen_file(filename):try:

f=open(filename)returnf.read()exceptIOError:return "Open file Error"

finally:if ‘data‘ inlocals():

f.close()print open_file(‘ip.txt‘)

View Code

2 定義一個函數func(urllist) urllist:為URL的列表,例如:[‘http://xx.com‘,‘http://www.xx.com‘,‘http://www.xxx.com‘...]

函數功能:要求依次打開url,打印url對應的內容,如果有的url打不開,則把url記錄到日志文件里,并且跳過繼續訪問下個url。

defget_url(url_list):for url inurl_list:try:printurl

date=urllib.urlopen(url)#return date.read()

printdate.read()except:

file_txt=open(‘error.txt‘,‘a+‘)

file_txt.write(str(date.getcode())+‘Error\n‘)return ‘Error‘

print get_url([‘http://www.baidu.com‘,‘http://www.qq.com‘,‘http://www.xxx.com‘,‘www.qq.com‘])

View Code

3 定義一個函數func(domainlist) domainlist:為域名列表,例如:[‘xx.com‘,‘www.xx.com‘,‘www.xxx.com‘...]

函數功能:要求依次ping 域名,如果ping 域名返回結果為:request time out,則把域名記錄到日志文件里,并且跳過繼續ping下個域名。(提示用os模塊的相關方法)

異常處理1.3習題:

一 編寫with操作類Fileinfo(),定義__enter__和__exit__方法。完成功能:

1.1 在__enter__方法里打開Fileinfo(filename),并且返回filename對應的內容。如果文件不存在等情況,需要捕獲異常。

1.2 在__enter__方法里記錄文件打開的當前日期和文件名。并且把記錄的信息保持為log.txt。內容格式:"2014-4-5 xxx.txt"

二:用異常方法,處理下面需求:

info = [‘http://xxx.com‘,‘http:///xxx.com‘,‘http://xxxx.cm‘....]任意多的網址

2.1 定義一個方法get_page(listindex) listindex為下標的索引,類型為整數。 函數調用:任意輸入一個整數,返回列表下標對應URL的內容,用try except 分別捕獲列表下標越界和url 404 not found 的情況。

2.2 用logging模塊把404的url,記錄到當前目錄下的urlog.txt。urlog.txt的格式為:2013-04-05 15:50:03,625 ERROR http://wwwx.com 404 not foud、

三:定義一個方法get_urlcontent(url)。返回url對應內容。

要求:

1自己定義一個異常類,捕獲URL格式不正確的情況,并且用logging模塊記錄錯誤信息。

2 用內置的異常對象捕獲url 404 not found的情況。并且print ‘url is not found‘

模塊:

習題一:

1.1 用time模塊獲取當前的時間戳.

time.asctime()

1.2 用datetime獲取當前的日期,例如:2013-03-29

1.3 用datetime返回一個月前的日期:比如今天是2013-3-29 一個月前的話:2013-02-27

習題二:

1 用os模塊的方法完成ping www.baidu.com 操作。

2 定義一個函數kouzhang(dirpwd),用os模塊的相關方法,返回一個列表,列表包括:dirpwd路徑下所有文件不重復的擴展名,如果有2個".py"的擴展名,則返回一個".py"。

習題三:

定義一個函數xulie(dirname,info) 參數:dirname:路徑名,info:需要序列化的數據,功能:將info數據序列化存儲到dirname路徑下隨機的文件里。

原文:http://www.cnblogs.com/landhu/p/4959488.html

總結

以上是生活随笔為你收集整理的python将姓王的都改成老王_Python老王视频习题答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。