天天看點

練習題彙總(一)

 1、

1  #一行代碼實作1-100的和  
 2 
 3 #Python
 4 s = sum(range(101))
 5 s = sum(i for i in range(101))
 6 
 7 
 8 #java(不是一行)
 9 
10int s = 0;
11for(int i =1 ;i<101;i++){
12  s += i;
13 }
14 System.out.println(s);
15      

2、

1 #Python标準庫
2 
3 requests 
4 BeautifulSoup 
5 re 
6 json 
7 threading
8 os
9      

3、

1 #清單去重
2 
3 s = [1,2,3,2,3,3,7]
4 print(list(set(s)))      

4、

1 '''
 2 參數 args, kwargs
 3 
 4 args 代表 元祖
 5 kwargs 傳入的字典 
 6 '''
 7 
 8 def arg(*args,**kwargs):
 9     return args,kwargs
10 print(arg(1, 2, 3, a=1, b=3))
11 
12 #((1, 2, 3), {'a': 1, 'b': 3})      

5、

1 '''
2 一行代碼将[[1,2],[3,4],[5,6]]展開,得出[1,2,3,4,5,6]
3 '''
4 a=[[1, 2], [3, 4], [5, 6]]
5 print( [j for i in a for j in      

6、

1 """
2 程序是資源(CPU、記憶體等)配置設定的基本機關,它是程式執行時的一個執行個體。
3 線程是程式執行時的最小機關,它是程序的一個執行流。
4 程序有自己的獨立位址空間,每啟動一個程序,系統就會為它配置設定位址空間,建立資料表來維護代碼段、堆棧段和資料段,這種操作非誠昂貴。
5 【是以各個程序有自己的位址空間,彼此互相不打擾】
6 線程是共享程序中的資料的,使用相同的位址空間,是以CPU切換一個線程的花費比程序要小很多,同時建立一個線程的開銷也比程序要小很多。
7 """      

7、

1 """
 2 垃圾回收
 3 (1)引用計數
 4 import sys
 5 str1='hello world'
 6 print(sys.getrefcount(str1)) #在python解釋器下運作,為2  建立一次,調用一次
 7 (2)分代計數
 8 Python預設定義了三代對象集合,索引數越大,對象存活時間越長
 9 Python中使用了某些啟發式算法(heuristics)來加速垃圾回收。
10 【例如,越晚建立的對象更有可能被回收。對象被建立之後,垃圾回收器會配置設定它們所屬的代(generation)。每個對象都會被配置設定一個代,而被配置設定更年輕代的對象是優先被處理的。】
11 (3)引用循環
12 垃圾回收器會定時尋找這個循環,并将其回收。
13 舉個例子,假設有兩個對象o1和o2,而且符合o1.x == o2和o2.x == o1這兩個條件。如果o1和o2沒有其他代碼引用,那麼它們就不應該繼續存在。但它們的引用計數都是1。
14 """      

8、

1     a = [1, 2, 3, 4]
 2     b = [4, 3, 5, 6]
 3     # 求交集
 4     cj1 = [i for i in a if i in b]
 5     cj2 = list(set(a).intersection(set(b)))
 6     print(cj1)
 7     print(cj2)
 8     #求差集
 9     cj1 = list(set(a).difference(set(b)))
10     cj2 = [i for i in a if i not in b]
11     print(cj1)
12     print(cj2)
13     # 求并集
14     cj1 = list(set(a).union(set(b)))
15     cj2 = list(set([i for i in a+b]))
16     print(cj1)
17     print(cj2)      

9、

1 """
2 1.裝飾器的原理及為什麼要用裝飾器
3 2. 裝飾器的基本用法
4 3. 帶參數的裝飾器
5 4. 被裝飾的函數有傳回值怎麼處理
6 5. 多個裝飾器的執行順序
7 6. 裝飾類的裝飾器
8 """