python—day14內置函數2、列表生成式與生成器表達式、模塊
阿新 • • 發佈:2018-04-03
left with open 列表生成式 表達式 兩件 style pytho per 數據
內置函數2、列表生成式與生成器表達式、模塊
內置函數2:
1 # pow(x,y,z) x,y,z x的y次方除於z 得出的結果是除數和余數 2 print(pow(2,3,7)) 3 4 # reversed([] {} ‘‘) 反轉 切把l變成可叠代對象 5 l = [1,2,3,4,5,6,3,2,4,6,8] 6 res = reversed(l) 7 print(l) 8 print(list(res)) 9 10 # round() 求四舍五入 11 print(round(8.8)) 12 13 # slice(x,y,z) 把 x,y,z 等同於 x:y:z 步長14 l1 = [1,2,3,4,5] 15 print(l[1:4:2]) 16 17 sc = slice(1,5,2) 18 print(l[sc]) 19 20 # sum() 求()內所有數的總和 但必須是可叠代對象 21 print(sum([1,2,3,4,5,6,7,8])) 22 print(sum((1,2,3,4,5,7))) 23 24 # zip() 把左邊的可叠代對象以1,2,3排列賦值進dic{}裏面的values 變成叠代器對象 25 left = ‘kermit‘ 26 right = {‘my‘:1,‘name‘:2,‘is‘:3} 27 res = zip(left,right)28 print(res) 29 30 # vars 31 # vars() 32 33 # zip 34 # left=‘hello‘ 35 # right={‘x‘:1,‘y‘:2,‘z‘:3} 36 # 37 # res=zip(left,right) 38 # print(list(res))
列表生成式與生成器表達式
1 #1、列表生成式 如果數據量少的情況下建議用這種形式 2 # l = [‘agge%s‘ %i for i in range(1000) if i>50] 3 # print(l) 4 5 6 # 2、生成器表達式 如果數據量較大的情況下建議用這種形式7 # l1 = (‘kermit%s‘ %i for i in range(999) if i>60) 8 # print(l1) # 得到的是叠代器對象 9 # print(list(l1)) 10 11 12 #把list中的名字變成大寫 13 # names = [‘kermit‘,‘egon‘,‘tsb‘] 14 # names = [name.upper() for name in names] 15 # print(names) 16 # res = map(lambda x:x.upper(),names) 17 # print(list(res)) 18 19 20 # 求出names中除了有sb結尾名字的名字長度 21 # res1 = [len(name) for name in names if not name.endswith(‘sb‘)] 22 # print(res1) 23 24 # 查看文件中最長的一列 25 # with open(r‘a.txt‘,‘r‘,encoding=‘utf-8‘) as f: 26 # print(max(line for line in f))
模塊!
模塊的使用
1 #1 什麽是模塊? 2 # 模塊就一系統功能的集合體,在python中,一個py文件就是一個模塊,比如module.py,其中模塊名module 3 4 #2 使用模塊 5 6 #2.1 import 導入模塊 7 #首次導入模塊發生三件事 8 #1、創建一個模塊的名稱空間 9 #2、執行模塊對應文件,將產生的名字存放於1中的名稱空間 10 #3、在當前執行文件中拿到一個模塊名,該模塊名指向1的名稱空間 11 12 # 什麽是模塊? 13 # 模塊就一系統功能的集合體,在python中,一個py文件就是一個模塊,比如kermit.py,其中模塊名為kermit 14 15 # 使用模塊 16 # import 導入的模塊 17 # 首次導入模塊發生三件事 18 # 1、創建一個模塊的名稱空間 19 # 2、執行模塊對應文件,將產生名字存放於1中的名稱空間 20 # 3、在當前執行文件中拿到一個模塊,該模塊名指向1的名稱空間 21 22 # import spam 23 # import spam 強調:導入一次後,再次調用相同的模塊不會重復執行文件。 24 # spam.read1() 25 # 26 # 27 # 模塊中功能的執行始終以模塊自己的名稱空間為準 28 # resd1 = 11111 29 # print(spam.read1) 結果不變 30 31 # 為模塊起別名 32 # import spam as sp 33 # 34 # sp.read1() 35 36 # 一行導入多個模塊 不建議使用 37 # import mysql,oracle,spam 38 # 39 #建議使用 40 # import mysql 41 # import oracle 42 # import spam 43 44 # import spam 45 # def f1(): 46 # pass 47 48 # print(spam.money) 49 # spam.read1() 50 51 # 模塊中功能的執行始終以模塊自己的名稱空間為準 52 # read1=111111 53 # print(spam.read1) 54 55 # money=1111111111111 56 # spam.read1() 57 58 # read1=11111111111111111111111111 59 # spam.read2() 60 61 # money=1111111111111111 62 # spam.change() 63 # print(money) 64 # spam.read1() 65 66 #3、為模塊起別名 67 # import spam as sm 68 69 # print(sm.money) 70 # sm.read1() 71 72 # engine=input(‘>>: ‘).strip() 73 # if engine == ‘mysql‘: 74 # import mysql as db 75 # elif engine == ‘oracle‘: 76 # import oracle as db 77 # db.parse() 78 79 #4、一行導入多個模塊(不推薦使用) 80 # import spam,mysql,oracle 81 82 #推薦寫成多行 83 import spam 84 import mysql 85 import orcacle
模塊的使用 from...import ...
1 # from ... import ...py 2 # 首次導入模塊發生三件事: 3 # 1、創建一個模塊的名稱空間 4 # 2、執行模塊對應文件,將產生的名字存放於1中的名稱空間 5 # 提示:from 。。。 import 。。 與 import前的兩件事一模一樣 6 # 3、在當前名稱空間中直接拿到模塊中的名字,可以直接使用,不用加任何前綴 7 # money = 11111 8 # 9 # from spam import money,read1,read2,change 10 # 11 # # print(money) 12 # # print(read1()) 13 # read1() 14 # # print(read2()) 15 # read2() 16 # # print(change()) 17 # change() 18 19 # 註意: 20 # 1、同import,執行模塊中的功能,始終以模塊的名稱空間為準 21 #change() 22 #print(money) #從下往上找money中的值 #1000 23 24 # 2、from ... import 名字,拿到的名字可以不用前綴直接使用,使用起來更方便 25 # 但問題是容易與當前執行文件中相同的名字沖突 26 27 # 3、起別名 28 # from spam import moeny as m 29 30 # 4、在一行導入多個
模塊的搜索路徑
1 # import m1 2 # 3 # m1.f1() 4 # 模塊的查找循序是: 5 # 1、內存中已經加載的模塊 6 # 2、內置模塊 7 # 3、sys.path路徑中包含的模塊 8 # 9 # import sys 10 # sys.path.append(r‘E:\kermit\Python\視頻\day14\day14\dir1‘) 11 # 12 # import m1 13 # m1.f1() 14 # 15 # import time 16 # time.sleep(10) 17 # 18 # import m1 19 # m1.f1() 20 21 # 強調強調強調強調強調強調強調強調強調強調強調強調 22 # sys.path的第一個路徑是當前執行文件所在的文件夾 23 24 # if __name__ == ‘__main__‘: 模塊內測試方法 25 # test()
python—day14內置函數2、列表生成式與生成器表達式、模塊