demoのpython学习笔记【1】
學習任務
TSK.1?python基礎
TSK.2 循環語句
TSK.3 常見數據類型及相應的操作方法
TSK.4 基本函數知識
TSK.5?模塊文件操作
目錄
學習任務
TSK.1?python基礎
TSK.2 循環語句
TSK.3 常見數據類型及相應的操作方法
TSK.4 基本函數知識
TSK.5?模塊文件操作
前言
一、python基礎
1.第一個程序——經典的“hello world”
2.注釋
3.標識符與關鍵字
3.1標識(zhì)符
3.2關鍵字
4.輸入與輸出
5.運算
5.1算術運算
5.2賦值運算
5.3復合運算
5.4比較運算符
5.5邏輯運算
二、循環語句
1.條件控制語句(if)
1.1 if---else語句
1.2 elif語句
1.3語句嵌套
2.循環語句(while&for)
2.1 while循環
2.2 for循環
3.break&continue
三、常見數據類型及處理方法
1.Number(數字)類型變量
2.String()
2.1 輸入與輸出
2.2 下標與切片
?2.3運算&轉義字符
2.4 常見操作
3.List()
4.Tuple()
5.Dictionairy()
6.Set()
四、函數
1.相關量:?
1.1參數:
1.2返回值
1.3變量類型
2.函數類型
2.1按參數與返回值的有無進行分類
2.2其他類型
五、模塊文件的操作
1.函數的導入
2.其他操作
3.自定義模塊
4.包的導入
5.第三方庫的安裝
6.相關庫
6.1PIL庫(圖像處理模塊)
?6.2time庫(時間相關的模塊)
總結
前言
python是個神奇的工具,可以幫助我們進行數據分析,科學計算等等功能,這里是我根據川川大佬所供資料的學習筆記,萌新一枚,還望大家多多指點QAQ
一、python基礎
1.第一個程序——經典的“hello world”
print("hello world") #打印輸出"hello world"2.注釋
注釋,即加注的解釋,其內容不會被運行,僅對程序代碼起說明作用,方便后期代碼的維護。
有單行注釋和多行注釋兩種形式:
#這是單行注釋 """ 這是多行注釋 引號內的內容都不被運行 """ ''' 這也是多行注釋 引號之內同樣不被運行 '''3.標識符與關鍵字
3.1標識(zhì)符
開發人員在程序中自定義的一些符號和名稱,例如變量名或則函數名。
定義規則:字母/下劃線/數字組成,且數字不能開頭。
命名方法:為了增強代碼的可讀性,盡可能采取有意義的名字去命名。
#常見的非法變量類型 2abc#不可以數字開頭 a@mkae#不可含有其他特殊符號 #駝峰式命名法(單詞大寫)其中小駝峰法指第一個單詞首字母小寫,其后單詞均大寫 #大駝峰法則全部單詞均大寫 getNewList GetNewList #下劃線鏈接詞法 stu_name stu_age3.2關鍵字
python中一些具有特殊功能的標識符:print,import...
#查看關鍵字 import keyword print(keyword.kwlist)4.輸入與輸出
輸入:將信息與數據輸送到程序、計算機之中的過程。
輸出:程序將信息、數據反饋給我們的過程。
格式化:將變量、數據按一定形式輸出的方法,python中的變量格式化是通過占位符%來實現的:“%+特定的字母”可代表指定的輸出類型,%的作用是替后面的變量值占一個位置,并在文本內容之后以“%+變量名”的形式注明變量。
特別需要注意的是一段文本內同時有多個變量需要進行格式化時,變量以“%(變量1,變量2…)”的形式統一標注。
| %d | 有符號的十進制整數 |
| %s | 字符串的格式化 |
| %c | 字符 |
| %u | 無符號的十進制整數 |
| %o | 八進制整數 |
| %x/X | 十六進制整數 |
| %e/E | 索引符號 |
| %f | 浮點實數 |
5.運算
5.1算術運算
| + | 加 |
| - | 減 |
| * | 乘 |
| / | 除 |
| // | 取整 |
| % | ? 取余?? |
| ** | 冪 |
5.2賦值運算
定義:計算等號右側的表達式的值,賦值給等號左邊的變量。
基本格式:變量 = 表達式
| 單獨賦值 | a = 5 b = 3 |
| 交互賦值 | a,b = 5,3 |
| 連續賦值 | a = b = 5 |
5.3復合運算
python中以“ a 算術運算符 = b”的形式來表示,其效果等價于“a = a 運算 b”,個人認為python中的復合運算,類似于一種迭代,讓a與b進行一次運算再將值賦給a,下面是一些常用的復合運算符:
| += | b = b + a |
| -= | b = b - a |
| *= | b = b * a |
| /= | b = b / a |
| //= | b = b // a |
| %= | b = b % a |
| **= | b = b ** a |
5.4比較運算符
就是比大小~唯一需要注意的有兩點
- 比較運算為判斷式,其運算結果為布爾值(true&false------1&0)下面展示部分比較運算符:
| 運算符 | ? 描述?? |
| == | 相等 |
| != | 不等 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
- 嚴格區分賦值運算" = "和相等判斷" == "
5.5邏輯運算
就是“與、或、非”三大類運算,具體如下:
| and | 與 | x and y: 如果x為false,返回false,否則返回y的計算值 |
| or | 或 | x or y: 如果x為True ,返回True 反之返回y的計算值 |
| not | 非 | not x: 如果x為True,返回的False,如果x為False返回的True |
二、循環語句
1.條件控制語句(if)
簡單來說就是為了實現滿足特定條件時執行特定操作而出現的循環語句,例如:
if 今天發工資:
? ? 先還信用卡
? ? if 還有剩余:
? ? ? ? 可以出去happy下
? ? else:
? ? ? ? 喝風...吃土
?常見格式:
1.1 if---else語句
格式:
if 條件:
?? ?滿足條件,做事情1
? ? 滿足條件,做事情2
?? ?滿足條件,做事情3
else:
? ??不滿足條件,做事情1
? ? 不滿足條件,做事情2
? ? 不滿足條件,做事情3 ?
#EX:密碼核驗 PS = input('password:') PST = '1234567' #用戶的密碼 if PS == PST:print("密碼正確") else:print("密碼錯誤")1.2 elif語句
格式:
if 條件1:
????????事情1
elif 條件2:
????????事情2
elif ?條件3:
????????事情3
else: #執行條件為假的結果
????????要做的事情
說明:
當條件1滿足時,執行事情1,然后整個if語句結束
當條件1不滿足,那么需要判斷條件2,如果條件2滿足,執行事情2,然后整個if語句結束
當條件1和2都不滿足,如果條件3滿足,執行事情3,然后整個if語句結束
如果以上條件都不滿足,最終執行else條件為假的結果
#EX:猜拳游戲 import random computer = random.randint(0,2) #第一個參數是起始值 第二個參數是結束值 player = int(input('請輸入0~2之間的正整數,剪刀(0),石頭(1),布(2):')) #先考慮用戶贏的情況 if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):print('用戶贏了') elif player == computer:print('平局') else:print('電腦贏了')1.3語句嵌套
格式:
if 條件1: #條件1為真
? ? ? ? 滿足條件1,做事情1
? ? ? ? 滿足條件1,做事情2
? ? ? ? 滿足條件1,做事情3
? ? ? ? .....(省略)
? ? ? ? if 條件2: #條件2為真
? ? ? ? ????????滿足條件2,做事情1
? ? ? ? ????????滿足條件2,做事情2
? ? ? ? ????????滿足條件2,做事情3
????????else: #如果條件2為假
? ? ? ? 執行條件2為假的結果
else: #如果條件1為假
? ? ? ? 執行條件1為假的結果
#EX:火車站售票系統 #規則:須有票且持有刀具長度小于10cm ticket = 1 #1有票 0無票 knife = 9 #單位cm if ticket == 1:print('有票可以進站了')print('心里美滋滋,可以看到她')if knife <= 10:print('允許上火車')else: #刀子長度超過10cmprint('不允許上火車')print('先打一頓,再報警') else: #無票print('請先買票再進站')2.循環語句(while&for)
在不少實際問題中有許多具有規律性的重復操作,因此在程序中就需要重復執行某些語句,這些重復出現的語句被成為循環語句。需要注意,循環不是必須的,但為了降低代碼的重復使用率,一般在軟件開發中使用循環。
2.1 while循環
基本格式:????????
while(循環的條件): 如果循環條件滿足
? ? ? ? 做事情1,
? ? ? ? 做事情2,
? ? ? ? 做事情3
#EX:計算1~100之間偶數的累計和(包含1和100) j = 1 sum = 0 #定義變量接受最終的累積和 while j < 101:if j % 2 == 0:sum += jj += 1 print(sum)?while...else語句格式
格式:
while 判斷表達式:
? ? ?語句1
else:
? ? ?語句2
判斷表達式為false時,執行else的語句2
#EX:循環輸出數字1-3 i = 3 while i <= 1:print(i)i += 1 else:print('沒有數據')while嵌套語句格式:
while 條件1:
????????條件1滿足,做事情1
????????條件1滿足,做事情2
????????條件1滿足,做事情3
while 條件2:
????????條件2滿足,做事情1
????????條件2滿足,做事情2
????????條件2滿足,做事情3
#EX:打印三角形 while i < 5: #外層循環控制行j = 0while j <= i: #里層循環控制打印*號print('*',end='')j += 1print()i += 12.2 for循環
格式:
for 臨時變量 in 序列:
????????執行循環對應的結果
else:
????????執行不滿足循環條件的結果
嵌套:
for 臨時變量1 ?in 字符串或者列表:
? ? for 臨時變量2 in 字符串或者列表:
? ? ? ? 執行的代碼
#案例:輸出5*5的矩形 for i in range(5):for j in range(5):print('*',end='')print()3.break&continue
break:終止目前循環,后續代碼不執行
print("猜一個幸運數字,游戲開始!") while True:guess=int(input("請輸入你覺得對的數字:"))if guess>8:print("大了")elif guess<8:print ("小了")else:print("猜對了")breakcontinue:跳出循環,后續代碼繼續執行
三、常見數據類型及處理方法
python中的常見數據類型共有6種:數字、字符串、列表、元組、字典、集合。
print(type(x))'''查看變量類型的方法'''1.Number(數字)類型變量
| int | 整形 |
| float | 浮點數(小數) |
| bool | 布爾值 |
| complex | 復數 |
| hex(x) | 將一個整數轉換為一個十六進制的字符串 |
| int(x) | 將x轉換為一個整數 |
| float(x) | 將x轉換為一個浮點數 |
| complex(real,[,imag]) | 創建一個復數 |
| str(x) | 將對象x轉換為字符串 |
| repr(x) | 將對象x轉換為表達式字符串 |
| tuple(x) | 將序列轉換為元祖 |
| list(x) | 將序列x轉換為列表 |
| chr(x) | 將一個整數轉換為一個字符 |
| unichr(x) | 將一個整數轉換為unicode字符 |
| ord(x) | 將一個字符轉換為整數 |
?PS:此處沒有太多需要注意的點,只有復數的輸出和其他類型稍有不同,因為復數還分為實部和虛部,所以在打印時,可以采用"complex.real"&"complex.imag"的方式分別單獨打印。
2.String()
字符串是由數字、字母、下劃線組成的一串字符。其在存儲方式上比較特殊,每一個單個元素都可以提取,所以可以進行切片操作,后面會詳細說明。
2.1 輸入與輸出
a = input("請輸入賬號名稱") #輸入 print(a) #輸出2.2 下標與切片
正如之前所提到的,字符串變量的每個元素都可以單獨提取,因此產生了切片操作——截取指定元素的操作。想要進行“定向”截取,就需要“位置信息”來進行定位,下標便是這一位置信息,簡單來說下標表示元素在變量中的所在位數,比如“我叫:demo”這一字符串中“:”這一符號的所在位數為3,?但是!它的下標是2,因為在python中,下標是從0開始的,而不是從1開始的,一定要注意!
語法格式:[開始值:結束值:步長]
- 步長:可以理解為隔步長值減一個元素進行切片
- 這三個參數不是必填的,不填默認取全部值
?2.3運算&轉義字符
| 加法 | str + str | oneone |
| 乘法 | str*3 | oneoneone |
| 元素替換 | str[1]='y' | oye |
| \n | 換行 |
| \\ | 反斜杠符號 |
| \' | 單引號 |
| \" | 雙引號 |
| \t | 空格 |
| r | 取消全部轉義 |
2.4 常見操作
| find | 檢測str是否包含在myStr中,如果是返回開始元素的索引值,否則返回-1 | myStr.find(str,start,end) |
| index | 跟find方法一樣,只不過如果str不在myStr中,或直接報錯 | myStr.index(str,start,end) |
| count | 返回str在start和end直接在myStr中出現的次數 | myStr.count(str,start,end) |
| replace | 把myStr中str1(舊元素)替換為str2(新元素),如果指定了count,則替換不超過count次 | myStr.replace(str1,str2,count) |
| split | 分割,以str為分隔符切片myStr#返回的是列表 | myStr.split("",maxsplit) |
| capitalize | 把字符串中的第一個大寫 | myStr.capitalize() |
| titile | 把字符串中的每一個單詞的首字母大寫 | myStr.title() |
| swapcase | 轉換字符串中字母的大小寫,小變大,大變小 | myStr.swapcase() |
| startswitch | 檢查字符串是否以object開頭,如果是返回True,反之返回False | myStr.startswith(obj) |
| endswitch | 檢查字符串是否以object結尾,如果是返回True,反之返回Flase | myStr.endswith(obj) |
| lower | 轉換myStr中所有大寫字符為小寫 | myStr.lower() |
| upper | 轉換myStr中所有小寫字符為大寫 | myStr.upper() |
| ljust | 返回一個原字符串左對齊,使用空格填充長度width,形成一個新的字符串 | myStr.ljust(width) #沒有指定字符串長度的話默認為原字符串的長度 |
| rjust | 返回一個原字符串右對齊,使用空格填充長度width, 形成一個新的字符串 | myStr.rjust(width) |
| ceter | 返回一個原字符串居中,使用空格填充長度width, 形成一個新的字符串 | myStr.center(width) |
| lstrip | 刪除myStr左邊的空白字符 | myStr.lstrip() |
| rstrip | 刪除myStr右邊的空白字符 | myStr.rstrip() |
| strip | 刪除myStr兩端的空白字符 | myStr.strip() |
| rfind | 類似與find函數,從右邊開始查找,如果找到返回元素的開始索引,反之返回-1 | myStr,rfind(str,start,end) |
| rindex | 類似與index(),從右往左找 | myStr.rindex(str,start,end) |
| splitlines | 按照行進行分割,返回一個包含每行作為元素的列表 | myStr.spiltlines() |
| isalpha | 如果myStr所有的字符都是字母,返回True,反之返回False | myStr.isalpha() |
| isdigit | 如果myStr所有的字符都是數字,返回True,反之返回False | myStr.isdigit() |
| isalnum | 如果myStr中所有的字符是字母或者數字,返回True,返回false | myStr.isalnum() |
| isspace | 如果myStr中只包含空格,返回True,返回False | myStr.isspace() |
| join | myStr中每一個字符后面都會插入str,構造出一個新的字符串(不包含最后一個) | myStr.join(str) |
| eval | 函數用來執行一個字符串表達式,并返回表達式的值。 | eval(str) |
| len | 返回字符串的長度(字符個數) | len(str) |
| chr | 函數使用一個范圍range(256)內(0~255)整數作為參數,返回對應的字符 | chr(0~255) |
| unichr | 和chr一樣,區別在于unichr返回的是unicode(將整數返回成unicode字符) |
3.List()
簡單來說就是在[]內存儲不同類型的多個數據的變量,數據與數據之間用,隔開。
格式:
? ?列表名 = [列表選項1,列表選項2,....,列表選項n]
例如:
? ?nameList = ["xiaoming","xiaowang",1,True,3.14,4+3j,None]
下標和切片、元素查找與替換、相加和重復和字符串基本相同,這里就不多贅述了,下面展示列表的一些相關函數:
| append | 添加元素 | name.append(temp)'''temp為待添加元素,在列表后添加該元素''' |
| extend | extend(b)'''b為待添加元素" | |
| insert | insert(index,object)'''在指定的位置index前插入元素object''' | |
| in | 查找元素 | A in(list)'''A為待查找元素,list為待查找列表''' |
| not in | A not in(list)'''同上''' | |
| index | nameList.index('xiaoli') | |
| count | nameList.count('xiaoli') | |
| del | 刪除元素 | del list[num]'''根據下標刪除''' |
| pop | list.pop()'''刪除最后一個元素''' | |
| remove | list.remove(b)'''b為待刪除元素的值''' | |
| sort | 排序 | listname.sort()'''順序''' |
| reverse | listname.reverse()'''逆序''' | |
| len | 求個數 | len(listname) |
| max | 求最值 | max(list)'''求最大值''' |
| min | min(list)'''求最小值''' |
4.Tuple()
和列表差不多,區別是不能更改,元素放在()內,相關函數和操作和列表相近,這里就不再過多敘述了。
5.Dictionairy()
和列表也挺像的,和名字一樣,內部存儲了很多數據,我們查字典,是通過查找詞條然后才能查詢到內涵,字典變量則是將詞條稱為“鍵”,詳細解釋稱為“值”。
常見操作:
查找元素:根據鍵找值:字典變量名[鍵的名字]
? ? ? ? ? ? ? ? ? get函數:get('key','value')? ? ? ? ? ? ? ? ? ? ? ? '''不確定想確認的鍵時可以使用'''
修改元素:變量名[修改鍵名] = 新的值
添加元素:變量名["鍵"] = 數據時,如果該鍵在字典中不存在,會自動創建
刪除元素:del ?:刪除指定的元素
? ? ? ? ? ? ? ? ? clear():清空字典
其他操作:len():測量字典中,鍵值對的個數
? ? ? ? ? ? ? ? ??keys():返回一個包含字典中所有key的列表
? ? ? ? ? ? ? ? ??values():返回一個包含字典中所有值value的列表
??????????????????items():返回一個包含所有(鍵 ? 值)元祖的列表
6.Set()
和數學上的集合很像,元素種類不限,同樣具有無序性,不可重復性等等。
常見操作:
創建:set函數創建? ? ? ? eg:res = set([1,2])
? ? ? ? ? ?大括號創建{}? ? ? ?eg:fruit = {'apple','orange','banana'}
添加:add函數? ? ? ? ? ? ? set.add()
? ? ? ? ? ?update函數? ? ? ? ?set.update()'''可將list、tuple、string等變量打碎插入(無序、去重)'''
刪除:clear函數
集合的運算:交:&;差:-;并:|
?7.可變類型與不可變類型
可變類型: 列表 ? 字典 ? 集合
不可變類型: 數字 ?元祖 ? 字符串
四、函數
我的個人理解是為了程序的后期維護等工作,會將功能性代碼單獨提取出來,作為函數,后面如需使用不需要再重復輸入代碼,直接調用函數即可。
?格式:
def 函數名(參數1,參數2...):
????????????????執行代碼
調用格式:
????????????????函數名(參數1,參數2...)
1.相關量:?
#案例:求兩個數的總和 def add(a,b): #形參,相當于臨時占了兩個位置print(a+b) #調用函數 add(5,10) #實參,具體的值1.1參數:
形參和實參:通過上面的例子可以看到,很多函數是需要參數的,我們將函數定義時括號內的參數叫做形式參數,僅起到傳遞的作用與臨時占位的作用,在調用函數時輸入的參數為實際參數,因為是根據其值進行運算的。
關鍵字參數:私人為就是在調用時指明形參對應的值,一般函數在調用是按順序進行賦值的,而關鍵字函數則通過指明關系而無視順序。
#案例:獲取學生的姓名,年齡等信息 def get_stu_info(name,age):print('姓名是:%s,年齡是:%d'%(name,age)) get_stu_info(age = 24,name = '楊超越') #age,name就是關鍵字?默認參數:?python為了簡化函數的調用,提供默認參數機制,調用函數時,缺省參數的值如果沒有傳入,則會被認為是默認值。
def getStuInfo(name,sex,age = 18): #age便是默認參數print(name)print(age)print(sex) getStuInfo('歐陽娜娜','女') #此處沒有輸入新的age值,便取默認值18?不定長參數:我的個人理解為當一個函數我們也不知道會被輸入多少參數時,便會使用他,*args會將所有未命名變量儲存進一個元組中,**kwargs則將所有的命名變量則會被存儲進字典中。
格式:
def function(args,*args,**kwargs)????????#args,kwargs代指變量名稱
def fun(a,b,c,*args,**kwargs):print('a=',a)print('b=',b)print('c=',c)print('args=',args)print('kwargs=',kwargs)for key,value in kwargs.items():print('key=',key,'value=',value) fun(1,3,5,6,name='鹿晗',age=20,height=180)1.2返回值
就是程序中函數完成一件事后將結果返回給調用者,可以理解為return后面的東西。?
def add(m,n):return m + n res = add(10,2) print(res)1.3變量類型
局部變量:只在函數內部起作用的變量
def test():a = 10 #局部變量print(a)全局變量:在函數外聲明的變量,可在所有函數里起作用(必須在函數上方聲明)
s = 100 #全局變量 def test():print(s) test()相關操作:
全局變量的修改:
????????global 需要修改變量名? ? ? ? ? ? ? ? ? ? ? ? #注意:那個全局變量首先也得能改才行
x = 10 def test():global xx = 1010print(x) test()局部變量的上層調用:
????????nonlocal:使用函數的外層變量
def test():num = 2def test2():nonlocal numnum *= 2print(num)return test2() test()2.函數類型
2.1按參數與返回值的有無進行分類
個人覺得沒有太多闡述的必要,不做過多敘述:
| 無參數,無返回值 | 打印提示等類似的功能 |
| 無參數,有返回值 | 數據采集 |
| 有參數,無返回值 | 變量設置數據,不需要結果 |
| 有參數,有返回值 | 最常見的~(可能) |
2.2其他類型
匿名函數:不在前面單獨命名的函數(大概)
格式:
lambda[args1,args2....]:expression? ? ? ? ? ? ? ? #方括號加不加都可以
特點:
1.lambda只是一個表達式,比函數def聲明簡單
2.lambda的主體也是一個表達式,而不是代碼塊,
? ?只能在lambda表達式中封裝簡單的邏輯
3.lambda函數有自己的命名空間,
? ?且不能訪問自由參數列表以外或者全局命名空間的參數 ?
4. lambda函數能夠接受任何數量的參數,只能返回一個表達式的值
#匿名函數的應用場景(作為參數進行傳遞) def test(a,b,opt): #opt當做參數傳遞print(a)print(b)print(opt(1,8)) test(10,100,lambda x,y:x+y) #案例:下面的數據如何排序,按照指定的name,age排序 stus = [{"name":"zhangsan","age":18},{"name":"wangwu","age":20},{"name":"laowang","age":35}] #根據名稱進行排序 print(stus) print('排序之前的數據:') stus.sort(key=lambda y:y['name']) print(stus) #根據年齡進行排序 stus.sort(key=lambda c:c['age']) print(stus)偏函數:函數在執行時,要帶上所有必要的參數進行調用。但是,有時參數可以在函數被調用之前提前獲知。這種情況下,一個函數有一個或多個參數預先就能用上,以便函數能用更少的參數進行調用。
from functools import partial #求兩個數之和 def add(a,b):return a + b #偏函數調用 plus = partial(add,100) #提前獲知第一個參數的值 res = plus(9) print(res) #總結:調用add函數的時候,已經提前獲知了一個參數的值, #通過這個參數綁定partial(add,100)返回一個新的函數, #再調用執行 #好處:將函數里面部分參數固定起來(默認值),后面再進行調用 #簡化函數的調用#案例2:求數字1010的二進制值是多少 #print(int('1010',base = 2)) #int(字符串或者整形,進制數) #不寫默認十進制 def int2(str,base=2):return int(str,base) # print(int2('111')) res = partial(int2,base=2) print(res('1111'))五、模塊文件的操作
?模塊就是別人寫好的工具包,導入之后,我們可以直接使用其內的函數。
1.函數的導入
import方法:import module1,module2....
from...import方法:from 模塊名 import 函數名1,函數名2.....
???????????????????????????????from...import *? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #導入全部函數
2.其他操作
as::重命名? ? ? ??import modName as newName
sys:定位路徑? ? ? ? 需要先導入sys庫
3.自定義模塊
個人理解就是自己寫了一些函數然后打包封裝成單獨的.py文件(自定義庫),然后正常的進行導入和相關操作。
4.包的導入
個人的理解是包就是裝了很多個自定義庫的文件夾導入方法:from 文件夾的名字 import 文件名
5.第三方庫的安裝
DOS ?--> ?pip install 第三方的模塊名(前提都是要求聯網下載)
6.相關庫
6.1PIL庫(圖像處理模塊)
convert:
將當前圖像轉換為其他模式,并且返回新的圖像。
Mode
圖像的模式,常見的mode 有 “L” (luminance) 表示灰度圖像,“RGB”表示真彩色圖像,和 “CMYK” 表示出版圖像,表明圖像所使用像素格式。如下表為常見的nodes描述:
modes 描述
1? ? ? ? ? ? 1位像素,黑和白,存成8位的像素
L? ? ? ? ? ? 8位像素,黑白
P? ? ? ? ? ? 8位像素,使用調色板映射到任何其他模式
RGB? ? ? 3× 8位像素,真彩
RGBA? ? 4×8位像素,真彩+透明通道
CMYK? ? 4×8位像素,顏色隔離
YCbCr? ? 3×8位像素,彩色視頻格式
I? ? ? ? ? ? ? 32位整型像素
F? ? ? ? ? ? 32位浮點型像素
from PIL import Image img = Image.open(r'1.jpg') #獲取圖片類型,大小 print(img.format,img.size) #保存圖片 img.save('2.png') #生成縮略圖 里面參數是寬和高 img.thumbnail((100,200)) #圖片轉換 img2 = img.convert('F')#顯示圖片 img2.show()?6.2time庫(時間相關的模塊)
| %a | 本地簡化的星期的名稱 |
| %A | 完整的星期的名稱 |
| %b | 簡化的月份的名稱 |
| %B | 完整的月份的名稱 |
| %c | 本地對應的日期表示和時間表示 |
| %d | 月內中的天數(0~31) |
| %H | 24小時制小時數(0~23) |
| %m | 月份(01~12) |
| %M | 分鐘數(00~59) |
| %w | 星期(0~6) 星期天開始 |
| 0 | tm_year(年) | 2018 |
| 1 | tm_mon(月) | 1~12 |
| 2 | tm_mday(日) | 0~31 |
| 3 | tm_hour(時) | 0~23 |
| 4 | tm_min(分鐘) | 0~59 |
| 5 | tm_sec(秒) | 0~61 |
| 6 | tm_wday(weekday) | 0~6 |
| 7 | tm_yday(一年中的第幾天) | 1~366 |
| 8 | tm_isdst(是否是夏令時) | 默認-1 |
總結
以上就是筆記的第一部分了,本文僅僅簡單介紹了包含循環語句,函數,庫的應用等等基本知識,后面會補一些面向對象語言,在python內進行文件的讀寫、程序調試等等工作(大概)。
總結
以上是生活随笔為你收集整理的demoのpython学习笔记【1】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于centos搭建reviewboar
- 下一篇: python暂停命令_命令行-Pytho