Python练习题14
1.列舉Python2與Python3之間的區別
- python2的默認編碼是ASCII,python3的默認編碼是Unicode
- python2中range返回的是列表,xrange返回的是可迭代對象,而Python3中range返回的是可迭代對象
- python2中整數分為int 和 lang,python3中統一歸為int
- python2不等于可以用!= 或者<>表示,在python3中只能用!=
- python2 使用print語句,python3中使用print()函數
- python2 輸入用row_input() ,python3用input()
2.有整數3.14 如何去掉小數位? 請用一行代碼實現不能使用切片
print(int(3.14)) print('%.0f' % 3.14)3.字符串和列表如何互相轉換?
s='123' l = ['a', 'b', 'c'] s1 = ''.join(l) print(s1) # abc #----->列表轉字符串 “ ”.join() print(list(s)) #------>字符串轉列表 list(str)4… 及 pass在Python中是否是占位 ?
是,為了程序的完成性,而又不能立即實現其功能或者不需要實現其功能,故采用pass或者…語句
5.a=10; b=20 用一行代碼實現a,b數值交換:
a, b = b, a6.讀代碼寫結論為什么?
result = 1.2-1 #----->0.199999 while True:if round(result,1) == 0.2: #round(0.19999,1) j結果為0.2print( 'hi guys!')else:print( False)無限循環打印hi guys! round()函數的作用是四舍五入,
7、讀代碼寫結果 如下代碼輸出的結果是?
def Generator():value = yield 1yield value gen = Generator() print(gen.send(1))答案是報錯,因為當生成器第一次啟動時,無法接收send傳過來的值
8.列舉你了解的5個模塊并簡述其作用
- time模塊,時間相關的
- pickle模塊,序列化相關
- re模塊, 正則相關
- os模塊,系統相關
- sys模塊,Python解釋器相關
- hashlib模塊,加密相關
9.閉包函數有什么特點,應用場景?
10.解釋一下什么是迭代器,你在代碼中如何獲得一個迭代器?
Python為了給類似集合這種不支持索引的數據類型,卻能夠像有索引一樣方便取值,
就為一些對象內置__iter__方法來擺脫對對象對索引的依賴。即如果這個對象具有__iter__方法, 則成為可迭代對象。 可迭代對象執行__iter__方法返回的結果稱為迭代器
11.迭代器如何取值?迭代器的好處?
迭代器的特點:
重復。 下一次的重復是基于上一次結果。
使用迭代器的優點:
1.提供一種不依賴于索引的取值方式。迭代器通過__next__方法取值
2.惰性計算,節省內存空間。迭代器每執行__next__方法一次,則“動作”一次,返回一個元素。就像懶驢似的,我們踹一腳,這懶驢(迭代器)才走一步,不踹不動彈。
那么迭代器的缺點也很明顯:
1.取值不如索引方便。要每次執行__next__方法取值。
2.迭代過程不可逆。也就是說這個懶驢(迭代器的迭代過程)走的是一條通往懸崖的路,每次執行__next__方法返回結果的同時都會向懸崖靠近一步。直到跳下懸崖(迭代完畢,拋出StopIteration異常)。所以說,迭代過程是無法回頭的,只能一條路走到黑。
3.無法獲取迭代器的長度。因為可迭代對象通過__iter__方法返回的是迭代器(內存地址)。所以,我們無法獲取這個迭代器內的元素有多少
12.寫?個?成器,??的元素是20以內所有奇數的平?減?
a=(i**2-1 for i in range(21) if i%2==1 ) print(list(a))13.請構建?個?成器,??的元素是1,4,9,16,25,36,49。
a=(i**2 for i in range(1,8)) print(list(a))14.寫函數(lambda)實現字符串翻轉,如:V = ‘oldboy’ (請?最簡的?式)
V ='oldboy' print(set(map(lambda x:V[::-1],V)))15.現有列表alist = [3,1,-4,-2],按照元素的絕對值??進?排序并將得到列表的每個元素求平?形成?個新的列表
alist = [3,1,-4,-2] print(list(map(lambda x:x**2,sorted(alist,key= lambda x:abs(x)))))16.alist = [{“a”:5,”b”:2},{“a”:2,”b”:8},{“a”:8,”b”:2}]請寫出以鍵a的值對alist進?排序的表達式
alist = [{'a': 5, 'b': 2}, {'a': 2, 'b': 8}, {'a': 8, 'b': 2}] print(sorted(alist,key=lambda x:int(x['a'])))17.有?個列表l1 = [‘alex’, ‘WuSir’, ‘?男孩’, ‘太?’]?列表推導式將其構造成這種列表
['alex0', 'WuSir1', '?男孩2', '太?3'] l1 = ['alex', 'WuSir', '老男孩', '太白'] print(list(map(lambda x:x+str(l1.index(x)),l1)))18.現在有兩元祖((‘a’),(‘b’)),((‘c’),(‘d’)),請使?python中的匿名函數和內置函數?成列表
t1=(('a'),('b')) t2=(('c'),('d')) print(list({k:v} for k,v in zip(t1,t2)))該習題轉載自: https://www.cnblogs.com/pythonz/p/9985546.html
總結
以上是生活随笔為你收集整理的Python练习题14的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win下通过 Navica t连接Ubu
- 下一篇: Python 获取指定文件夹下的目录和文