1 第一部分: 2 3 4 #列表a = [11,22,24,29,30,32] 5 6 #1 把28插入到列表的末端 7 >>> a.append(28) 8 >>> a 9 [11, 22, 24, 29, 30, 32, 28] 10 11 #2 在元素29后面插入元素57 12 >>> a.insert(4,57) 13 >>> a 14 [11, 22, 24, 29, 57, 30, 32, 28] 15 16 #3 把元素11修改成6 17 >>> a[0]=6 18 >>> a 19 [6, 22, 24, 29, 57, 30, 32, 28] 20 21 #3 刪除元素32 22 >>> a.pop(-2) 23 32 24 >>> a 25 [6, 22, 24, 29, 57, 30, 28] 26 27 #4 對列表從小到大排序 28 >>> a.sort() 29 >>> a 30 [6, 22, 24, 28, 29, 30, 57] 31 32 ##習題2: 33 34 35 #列表b = [1,2,3,4,5] 36 37 38 #1 用2種方法輸出下面的結果: 39 40 [1,2,3,4,5,6,7,8] 41 >>> b+[6,7,8] 42 [1, 2, 3, 4, 5, 6, 7, 8] 43 44 >>> b.extend([6,7,8]) 45 >>> b 46 [1, 2, 3, 4, 5, 6, 7, 8] 47 #2 用列表的2種方法返回結果:[5,4] 48 >>> b[-4:-6:-1] 49 [5, 4] 50 51 >>> d=[] 52 >>> d.append(b[-4]) 53 >>> d.append(b[-5]) 54 >>> d 55 [5, 4] 56 57 #3 判斷2是否在列表里 58 >>> 2 in b 59 True 60 61 ##習題3: 62 63 #b = [23,45,22,44,25,66,78] 64 65 #用列表解析完成下面習題: 66 67 68 #1 生成所有奇數組成的列表 69 70 >>> b=[23,45,22,44,25,66,78] 71 >>> b 72 [23, 45, 22, 44, 25, 66, 78] 73 >>> [i for i in b if i % 2==1] 74 [23, 45, 25] 75 76 #2 輸出結果: ['the content 23','the content 45'] 77 78 >>> ["the content %s" % m for m in b[0:2:1]] 79 ['the content 23', 'the content 45'] 80 81 #3 輸出結果: [25, 47, 24, 46, 27, 68, 80] 82 >>> [m+2 for m in b] 83 [25, 47, 24, 46, 27, 68, 80] 84 85 ##習題4: 86 87 88 #用range方法和列表推導的方法生成列表: 89 90 #[11,22,33] 91 92 >>> range(11,34,11) #range(起始,結束+1,步長) 93 [11, 22, 33] 94 >>> [m *11 for m in range(1,4,1)] 95 [11, 22, 33] 96 ##習題5: 97 98 99 #已知元組:a = (1,4,5,6,7) 100 101 102 #1 判斷元素4是否在元組里 103 >>> 4 in a 104 True 105 106 #2 把元素5修改成8 107 >>> a(2)=8 108 SyntaxError: can't assign to function call 109 >>> c=list(a) 110 >>> c 111 [1, 4, 5, 6, 7] 112 >>> c[2]=8 113 >>> c 114 [1, 4, 8, 6, 7] 115 >>> a=tuple(c) 116 >>> a 117 (1, 4, 8, 6, 7) 118 ##習題6: 119 120 121 #已知集合:setinfo = set('acbdfem')和集合finfo = set('sabcdef')完成下面操作: 122 123 124 #1 添加字符串對象'abc'到集合setinfo 125 >>> setinfo=set('abcdfem') 126 >>> setinfo 127 set(['a', 'c', 'b', 'e', 'd', 'f', 'm']) 128 >>> setinfo.add('abc') 129 >>> setinfo 130 set(['a', 'c', 'b', 'e', 'd', 'f', 'm', 'abc']) 131 132 #2 刪除集合setinfo里面的成員m 133 >>> setinfo.remove('m') 134 >>> setinfo 135 set(['a', 'c', 'b', 'e', 'd', 'f', 'abc']) 136 137 #3 求2個集合的交集和並集 138 >>> finfo=set('sabcdef') 139 >>> finfo 140 set(['a', 'c', 'b', 'e', 'd', 'f', 's']) 141 >>> setinfo & finfo 142 set(['a', 'c', 'b', 'e', 'd', 'f']) 143 >>> setinfo | finfo 144 set(['a', 'c', 'b', 'e', 'd', 'f', 's', 'abc']) 145 146 ##習題7: 147 148 149 #用字典的方式完成下面一個小型的學生管理系統。 150 151 152 #1 學生有下面幾個屬性:姓名,年齡,考試分數包括:語文,數學,英語得分。 153 154 """ 155 比如定義2個同學: 156 157 158 姓名:李明,年齡25,考試分數:語文80,數學75,英語85 159 160 161 姓名:張強,年齡23,考試分數:語文75,數學82,英語78 162 """ 163 >>> studentinfo={'liming':{'name':'LiMing','age':25,'score':{'chinese':80,'math':75,'english':85}}} 164 >>> studentinfo 165 {'liming': {'age': 25, 'score': {'math': 75, 'chinese': 80, 'english': 85}, 'name': 'LiMing'}} 166 >>> studentinfo['zhangqiang']={'age':25,'name':'ZhangQiang','score':{'chinese':75,'math':82,'english':78}} 167 >>> studentinfo 168 {'liming': {'age': 25, 'score': {'math': 75, 'chinese': 80, 'english': 85}, 'name': 'LiMing'}, 'zhangqiang': {'age': 25, 'score': {'math': 82, 'chinese': 75, 'english': 78}, 'name': 'ZhangQiang'}} 169 170 #2 給學生添加一門python課程成績,李明60分,張強:80分 171 >>> studentinfo['liming']['score']['python']=60 172 >>> studentinfo['liming'] 173 {'age': 25, 'score': {'python': 60, 'math': 75, 'chinese': 80, 'english': 85}, 'name': 'LiMing'} 174 >>> studentinfo['zhangqiang']['score']['python']=80 175 >>> studentinfo['zhangqiang'] 176 {'age': 25, 'score': {'python': 80, 'math': 82, 'chinese': 75, 'english': 78}, 'name': 'ZhangQiang'} 177 178 179 #3 把張強的數學成績由82分改成89分 180 >>> studentinfo['zhangqiang']['score']['math']=89 181 >>> studentinfo['zhangqiang'] 182 {'age': 25, 'score': {'python': 80, 'math': 89, 'chinese': 75, 'english': 78}, 'name': 'ZhangQiang'} 183 184 185 #4 刪除李明的年齡數據 186 >>> del studentinfo['liming']['age'] 187 >>> studentinfo 188 {'liming': {'score': {'python': 60, 'math': 75, 'chinese': 80, 'english': 85}, 'name': 'LiMing'}, 'zhangqiang': {'age': 25, 'score': {'python': 80, 'math': 89, 'chinese': 75, 'english': 78}, 'name': 'ZhangQiang'}} 189 190 191 #5 對張強同學的課程分數按照從低到高排序輸出。 192 >>> b=studentinfo['zhangqiang']['score'].values() 193 >>> b 194 [80, 89, 75, 78] 195 >>> b.sort() 196 >>> b 197 [75, 78, 80, 89] 198 199 #6 外部刪除學生所在的城市屬性,不存在返回字符串 beijing 200 >>> studentinfo.pop('city','beijing') #若存在鍵名'city' 返回其屬性 否則返回'beijing' 201 'beijing'
1 第二部分: 2 3 一.已經字符串 s = "i,am,lilei",請用兩種辦法取出之間的“am”字符。 4 >>> s="i,am,lilei" 5 >>> s[2:4] #字符串切片 6 'am' 7 >>> s.split(',')[1] 8 'am' 9 更多關於split函數:http://blog.csdn.net/holyang_1013197377/article/details/49205065 10 11 二.在python中,如何修改字符串? 12 >>> s="i love php" 13 >>> s.replace('php','python') 14 'i love python' 15 16 三.bool("2012" == 2012) 的結果是什么。 17 >>> bool("2012"==2012) 18 False 19 20 21 四.已知如下變量 22 ________ 23 a = "字符串拼接1" 24 b = "字符串拼接2" 25 ________ 26 27 1.請用四種以上的方式將a與b拼接成字符串c。並指出每一種方法的優劣。 28 a="string1" 29 b="string2" 30 c1=a+b #1不適合大量字符串拼接 31 32 c2="%s%s" % (a,b) #2受順序限制 33 34 print 'format' 35 c3="{a}{b}" . format(a=a,b=b) #3 未受順序限制 36 37 c4="".join([a,b]) #4 只要申請一次內存 38 print c4 39 40 2.請計算出新拼接出來的字符串長度,並取出其中的第七個字符。 41 lennum=len(c1.encode('utf-8')) 42 print c1.encode('utf-8')[6].encode('utf-8') 43 44 五.請閱讀string模塊,並且,根據string模塊的內置方法輸出如下幾題的答案。 45 46 1.包含0-9的數字。 47 >>> print string.digits 48 0123456789 49 50 2.所有小寫字母。 51 >>> print string.lowercase 52 abcdefghijklmnopqrstuvwxyz 53 54 3.所有標點符號。 55 >>> print string.punctuation 56 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 57 58 4.所有大寫字母和小寫字母。 59 >>> print string.ascii_uppercase 60 ABCDEFGHIJKLMNOPQRSTUVWXYZ 61 >>> print string.lowercase 62 abcdefghijklmnopqrstuvwxyz 63 64 5.請使用你認為最好的辦法將{1}-{4}點中的字符串拼接成一個字符串。 65 >>> string.digits+string.lowercase+string.uppercase+string.punctuation 66 '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' 67 68 strinfo = [] 69 strinfo.append(string.digits) 70 strinfo.append(string.lowercase) 71 strinfo.append(string.punctuation) 72 strinfo.append(string.ascii_lowercase) 73 strinfo.append(string.ascii_uppercase) 74 print "".join(strinfo) 75 print '\n' 76 77 strinfo = "%s%s%s%s%s" % (string.digits,string.lowercase,string.punctuation,string.ascii_lowercase,string.ascii_uppercase) 78 print strinfo 79 80 九.已知字符串 81 ________ 82 83 a = "i,am,a,boy,in,china" 84 ________ 85 86 1.假設boy和china是隨時可能變換的,例boy可能改成girl或者gay,而china可能會改成別的國家,你會如何將上面的字符串,變為可配置的。 87 >>> exp1="i,am,a,%(sex)s,in,%(country)s" % {'sex':'boy','country':'China'} 88 >>> print exp1 89 i,am,a,boy,in,China 90 >>> exp2="i,am,a,{sex},in,{country}".format (sex='girl',country='USA') 91 >>> print exp2 92 i,am,a,girl,in,USA 93 94 2.請使用2種辦法取出其間的字符"boy"和"china"。 95 >>> print exp1[7:10] 96 boy 97 >>> print exp1.split(',')[3] 98 boy 99 >>> print exp1[-5:] 100 China 101 >>> print exp1.split(',')[-1] 102 China 103 104 3.請找出第一個"i"出現的位置。 105 >>> exp1.index('i') 106 0 107 >>> exp1.find('i') 108 0 109 110 4.請找出"china"中的"i"字符在字符串a中的位置。 111 >>> print exp1.find('i',exp1.find('China')) 112 16 113 >>> print exp1.rfind('i') #找第二個'i'字符 114 16 115 116 5.請計算該字符串一共有幾個逗號。 117 >>> print exp1.count(',') 118 5 119 120 十.請將模塊string的幫助文檔保存為一個文件。 121 import sys 122 import string 123 124 f=open('string_help.log','w') 125 sys.stdout=f 126 help(string) 127 f.close()
1 1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下 2 1.1 請將a字符串的大寫改為小寫,小寫改為大寫。 3 print a.upper() 4 print a.lower() 5 6 1.2 請將a字符串的數字取出,並輸出成一個新的字符串。 7 print ''.join([s for s in a if s.isdigit()]) 8 #解釋 9 [s for s in a if s.isdigit()] 10 l=[] 11 for s in a: 12 if s.isdigit(): 13 l.append(s) 14 print l 15 16 1.3 請統計a字符串出現的每個字母的出現次數(忽略大小寫,a與A是同一個字母),並輸出成一個字典。 print a.count('a') 17 print dict([(x,a.count(x)) for x in set(a)])#set去重 18 19 1.4 請去除a字符串多次出現的字母,僅留最先出現的一個。例 'abcabb',經過去除后,輸出 'abc' 20 a_list=list(a) 21 #print set(a_list) #set 去重 無序 字典和集合不可排序 22 set_list=list(set(a_list)) #去重以后轉化為list 23 set_list.sort(key=a_list.index)#對去重后按照list原來排序 24 print ''.join(set_list) #拼接成字符串 25 26 1.5 請將a字符串反轉並輸出。例:'abc'的反轉是'cba' 27 print a[::-1] 28 29 1.6 去除a字符串內的數字后,請將該字符串里的單詞重新排序(a-z),並且重新輸出一個排序后的字符 串。(保留大小寫,a與A的順序關系為:A在a前面。例:AaBb) 30 31 1.要有小寫字母a-z的排序 32 2.大小寫相同的大寫在前面 33 34 l=sorted(a) 35 #print l sort排序結果:字母數字分開排序 36 a_upper_list=[] #聲明大寫list 37 a_lower_list=[] #聲明小寫list 38 for x in l: #遍歷排序過的list 將大小寫分別存在兩個list中 39 if x.isupper(): 40 a_upper_list.append(x) 41 elif x.islower(): 42 a_lower_list.append(x) 43 else: 44 pass 45 46 for y in a_upper_list: #遍歷大寫list 47 y_lower=y.lower() 48 if y_lower in a_lower_list: 49 a_lower_list.insert(a_lower_list.index(y_lower),y) #把大寫list中的字母插入到 原來這個位置是該字母小寫的位置 不覆蓋 順延 index定位 50 #print a_lower_list 51 print ''.join(a_lower_list) #拼接成字符串輸出 52 53 54 1.7 請判斷 'boy'里出現的每一個字母,是否都出現在a字符串里。如果出現,則輸出True,否則,則輸 出False. 55 search='boy' 56 b=set(a) 57 b.update(search) #update特性 如果b中有的字符 search中的字符就插不進去 58 print len(set(a))==len(a) 59 60 1.8 要求如1.7,此時的單詞判斷,由'boy'改為四個,分別是 'boy','girl','bird','dirty',請判斷如上這4個字符串里的每個字母,是否都出現在a字符串里。 61 search=['boy','girl','bird','dirty'] 62 b=set(a) 63 print b 64 for i in search: 65 b.update(i) 66 print len(set(a))==len(a) 67 68 1.9 輸出a字符串出現頻率最高的字母 69 #set 去重 70 l=([(x,a.count(x))for x in set(a)]) 71 l.sort(key=lambda k:k[1],reverse=True) #兩次排序 :指定排序 第一個鍵 reverse從大向小排序 72 print l[0] 73 print l 74 75 2.一文件的字節數為 102324123499123,請計算該文件按照kb與mb計算得到的大小。 76 size=102324123499123 77 print '%s kb' % (size>>10) 78 print '%s mb' % (size>>20) 79 80 3.已知 a = [1,2,3,6,8,9,10,14,17],請將該list轉換為字符串,例如 '123689101417'. 81 a = [1,2,3,6,8,9,10,14,17] 82 print str(a)[1:-1].replace(', ','')
轉載:http://blog.csdn.net/holyang_1013197377/article/details/49185605