日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python 3.6学习笔记(一)

發(fā)布時(shí)間:2023/12/4 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 3.6学习笔记(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開(kāi)始之前

基礎(chǔ)示例

Python語(yǔ)法基礎(chǔ),python語(yǔ)法比較簡(jiǎn)單,采用縮緊方式。

# print absolute value of a integer a = 100 if a >= 0:print(a) else:print(-a)

可以看到,注釋以#開(kāi)頭,python的變量不需要任何前綴,行結(jié)束不需要結(jié)束符號(hào),非常符合我們自然語(yǔ)言的閱讀和書(shū)寫(xiě)習(xí)慣。當(dāng)語(yǔ)句以:結(jié)尾時(shí),縮緊的語(yǔ)句視為代碼塊。

Python是大小寫(xiě)敏感的,這一點(diǎn)需要特別注意。

輸入與輸出

Python可以使用input()函數(shù)讀取用戶的輸入,使用print()進(jìn)行屏幕的輸出。默認(rèn)情況下,輸入的內(nèi)容為字符數(shù)據(jù)類型。

數(shù)據(jù)類型

整數(shù)

Python可以處理任意大小的整數(shù),在程序中的表示方法和數(shù)學(xué)上的寫(xiě)法一模一樣,可以使用0xff00的方式表示十六進(jìn)制。

Python中使用/進(jìn)行除法運(yùn)算,得到的結(jié)果是浮點(diǎn)數(shù)。使用//進(jìn)行除法運(yùn)算,得到的結(jié)果是整數(shù)。使用%,表示取余數(shù)。

浮點(diǎn)數(shù)

浮點(diǎn)數(shù)就是小數(shù),可以使用數(shù)學(xué)寫(xiě)法,如:1.23,-9.01,也可以使用科學(xué)計(jì)數(shù)法表示,如:1.23e9,1.2e-5。

字符串

字符串是使用`括起來(lái)的任意文本。可以使用*對(duì)特殊字符進(jìn)行轉(zhuǎn)義。可以使用r''的形式,表示內(nèi)部的字符串默認(rèn)不進(jìn)行轉(zhuǎn)義。對(duì)于字符串內(nèi)有換行等多行內(nèi)容的,可以使用’’’…’’’的形式,多行字符前也可以加r*。

在最新的Python 3版本中,字符串是以Unicode編碼的,也就是說(shuō),Python的字符串支持多語(yǔ)言。對(duì)于單個(gè)字符的編碼,Python提供了ord()函數(shù)獲取字符的整數(shù)表示,chr()函數(shù)把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符。以Unicode表示的str通過(guò)encode()方法可以編碼為指定的bytes,如:>>> 'ABC'.encode('ascii’)。反過(guò)來(lái),如果我們從網(wǎng)絡(luò)或磁盤(pán)上讀取了字節(jié)流,那么讀到的數(shù)據(jù)就是bytes。要把bytes變?yōu)閟tr,就需要用decode()方法

在Python中,采用的格式化方式和C語(yǔ)言是一樣的,如下:
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)

布爾值

布爾值:TrueFalse。也可以用布爾代數(shù)表示:3 > 2,* 3 < 2。布爾值的運(yùn)算符號(hào):andornot*。

空值

空值是Python里一個(gè)特殊的值,用None表示。

變量

Python中的變量時(shí)動(dòng)態(tài)變量,即變量的屬性是在賦值的時(shí)候才決定的,變量名稱必須是大小寫(xiě)英文、數(shù)字和*_*的組合,且不能用數(shù)字開(kāi)頭。Python中沒(méi)有常量的概念,通常使用全部大寫(xiě)的變量來(lái)表示常量。

列表 list

list 是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。用索引來(lái)訪問(wèn)list中每一個(gè)位置的元素,索引是從0開(kāi)始的。當(dāng)索引超出了范圍時(shí),Python會(huì)報(bào)一個(gè)IndexError錯(cuò)誤。如果要取最后一個(gè)元素,除了計(jì)算索引位置外,還可以用-1做索引,直接獲取最后一個(gè)元素。

>>> classmates = [‘Michael’,’Bob’,’Tracy'] >>> classmates [‘Michael’,’Bob','Tracy’] >>> len(classmates) 3 >>> classmates[0] ‘Michael’ >>> classmates.append('Adam’) #追加元素到末尾 >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam’] >>> classmates.insert(1, 'Jack’) #追加元素到指定位置 >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', ‘Adam’] >>> classmates.pop() #刪除末尾的元素,使用pop(i)可以刪除指定位置的元素 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy']

元組 tulp

元組?tulp?也是有序列表,與list的區(qū)別在于,一旦初始化就不能修改。沒(méi)有append、insert等方法。
tulp的定義方式如下:

>>> classmates = (‘Michael’, ‘Bob’, ’Tracy')

tulp 本身的元素不能發(fā)生變化,但是如果元素為list,那么list中的內(nèi)容是可變的。

字典 dict

dict 全稱 dictionary ,在其他語(yǔ)言中稱為 map,在PHP中其實(shí)就是 Array,使用鍵-值(Key-Value)的方式進(jìn)行存儲(chǔ),具有極快的查找速度。使用范例

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} #dict的定義 >>> d['Michael’] #dict取值的方式 95 >>> d['Adam'] = 67 #dict設(shè)置新值的方式 >>> 'Thomas' in d #判斷key是否存在 False >>> d.get('Thomas’) #get方式取值,如果不存在則返回None >>> d.get('Thomas',-1)#指定不存在時(shí)的返回值 -1 >>> d.pop('Bob’) #刪除某個(gè)key 75

set

set和dict類似,也是一組key的集合,但不存儲(chǔ)value。如下示例:

>>> s = set([1, 2, 3]) #初始化時(shí)提供一個(gè)list作為輸入集合 >>> s {1, 2, 3} >>> s.add(4) #使用add方法添加元素 >>> s {1, 2, 3, 4} >>> s.remove(2) #使用remove方法 >>> s {1, 3, 4}

set可以看成數(shù)學(xué)意義上的無(wú)序和無(wú)重復(fù)元素的集合,因此,兩個(gè)set可以做數(shù)學(xué)意義上的交集、并集等操作。

控制語(yǔ)句

條件判斷

條件判斷比較簡(jiǎn)單,主要是不要忘記寫(xiě):,看看例子吧。

>>> age = 3 >>> if age >= 18: ... print('your age is', age) ... print('adult') ... else: ... print('your age is', age) ... print('teenager') ... your age is 3 teenager

更多的條件判斷。

>>> age = 3 >>> if age >= 18: ... print('adult') ... elif age >= 6: ... print('teenager') ... else: ... print('kid') ... kid

循環(huán)

Python中的循環(huán)有兩種,一種是for...in循環(huán),依次把list或tulp中的每個(gè)元素迭代出來(lái)。

>>> classmates ['Michael', 'Jack', 'Bob', 'Tracy'] >>> for name in classmates: ... print(name) ... Michael Jack Bob Tracy

第二種循環(huán)是while循環(huán),只要條件滿足,就不斷循環(huán),條件不滿足時(shí)退出循環(huán)。

sum = 0 n = 99 while n > 0:sum = sum + nn = n - 2 print(sum)

跳出循環(huán),可以使用?break?跳出循環(huán)。
跳過(guò)本次循環(huán),可以使用?continue?跳過(guò)本次循環(huán),繼續(xù)下一次循環(huán)。

函數(shù)

調(diào)用函數(shù)

Python中內(nèi)置了很多函數(shù),可以直接調(diào)用。在交互模式中,可以通過(guò)help(abs)查看函數(shù)的用法。

定義函數(shù)

在Python中,定義一個(gè)函數(shù)要使用def語(yǔ)句,依次寫(xiě)出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào):,然后,在縮進(jìn)塊中編寫(xiě)函數(shù)體,函數(shù)的返回值用return語(yǔ)句返回。如果沒(méi)有return語(yǔ)句,函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果,只是結(jié)果為None。return None可以簡(jiǎn)寫(xiě)為return。

示例如下:

def my_abs(x):if x >= 0:return xelse:return -x

在Python交互環(huán)境中定義函數(shù)時(shí),注意Python會(huì)出現(xiàn)…的提示。函數(shù)定義結(jié)束后需要按兩次回車重新回到>>>提示符下。

返回多個(gè)值

在其他語(yǔ)言中,一般只能返回一個(gè)值或者一個(gè)數(shù)組、對(duì)象,在Python中,可以通過(guò)tulp變通的返回多個(gè)值。

import mathdef move(x, y, step, angle=0):nx = x + step * math.cos(angle)ny = y - step * math.sin(angle)return nx, ny>>> x, y = move(100, 100, 60, math.pi / 6) >>> print(x, y)

在語(yǔ)法上,返回一個(gè)tuple可以省略括號(hào),而多個(gè)變量可以同時(shí)接收一個(gè)tuple,按位置賦給對(duì)應(yīng)的值,所以,Python的函數(shù)返回多值其實(shí)就是返回一個(gè)tuple,但寫(xiě)起來(lái)更方便。

位置參數(shù)

Python的函數(shù)定義非常簡(jiǎn)單,但靈活度卻非常大。除了正常定義的必選參數(shù)外,還可以使用默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù),使得函數(shù)定義出來(lái)的接口,不但能處理復(fù)雜的參數(shù),還可以簡(jiǎn)化調(diào)用者的代碼。

def power(x): #x 就是一個(gè)位置參數(shù)return x * xdef power(x, n): #x,n都是位置參數(shù)s = 1while n > 0:n = n - 1s = s * xreturn sdef power(x, n=2): #x,n都是位置參數(shù),n設(shè)置了默認(rèn)值s = 1while n > 0:n = n - 1s = s * xreturn s

有幾點(diǎn)要注意:
一是必選參數(shù)在前,默認(rèn)參數(shù)在后,否則Python的解釋器會(huì)報(bào)錯(cuò)
二是當(dāng)函數(shù)有多個(gè)參數(shù)時(shí),把變化大的參數(shù)放前面,變化小的參數(shù)放后面。變化小的參數(shù)就可以作為默認(rèn)參數(shù)。
有多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用的時(shí)候,既可以按順序提供默認(rèn)參數(shù)。也可以不按順序提供部分默認(rèn)參數(shù)。當(dāng)不按順序提供部分默認(rèn)參數(shù)時(shí),需要把參數(shù)名寫(xiě)上。
需要注意的是:默認(rèn)參數(shù)必須指向不變對(duì)象!

可變參數(shù)

def calc(*numbers):sum = 0for n in numbers:sum = sum + n * nreturn sum

定義可變參數(shù)和定義一個(gè)list或tuple參數(shù)相比,僅僅在參數(shù)前面加了一個(gè)*號(hào)。在函數(shù)內(nèi)部,參數(shù)numbers接收到的是一個(gè)tuple,因此,函數(shù)代碼完全不變。但是,調(diào)用該函數(shù)時(shí),可以傳入任意個(gè)參數(shù),包括0個(gè)參數(shù)。Python允許你在list或tuple前面加一個(gè)*號(hào),把list或tuple的元素變成可變參數(shù)傳進(jìn)去。

關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)允許你傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict。

def person(name, age, **kw):print('name:', name, 'age:', age, 'other:', kw)

關(guān)鍵字參數(shù)有什么用?它可以擴(kuò)展函數(shù)的功能。比如,在person函數(shù)里,我們保證能接收到name和age這兩個(gè)參數(shù),但是,如果調(diào)用者愿意提供更多的參數(shù),我們也能收到。試想你正在做一個(gè)用戶注冊(cè)的功能,除了用戶名和年齡是必填項(xiàng)外,其他都是可選項(xiàng),利用關(guān)鍵字參數(shù)來(lái)定義這個(gè)函數(shù)就能滿足注冊(cè)的需求。

#可以先組裝出一個(gè)dict,然后,把該dict轉(zhuǎn)換為關(guān)鍵字參數(shù)傳進(jìn)去 >>> extra = {'city': 'Beijing', 'job': 'Engineer'} >>> person('Jack', 24, city=extra['city'], job=extra['job']) name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}#簡(jiǎn)化的寫(xiě)法 >>> extra = {'city': 'Beijing', 'job': 'Engineer'} >>> person('Jack', 24, **extra) name: Jack age: 24 other: {'city': 'Beijing', 'job': ‘Engineer'}

extra表示把extra這個(gè)dict的所有key-value用關(guān)鍵字參數(shù)傳入到函數(shù)的kw參數(shù),kw將獲得一個(gè)dict,注意kw獲得的dict是extra的一份拷貝,對(duì)kw的改動(dòng)不會(huì)影響到函數(shù)外的extra。

命名關(guān)鍵字參數(shù)

如果要限制關(guān)鍵字參數(shù)的名字,就可以用命名關(guān)鍵字參數(shù),例如,只接收city和job作為關(guān)鍵字參數(shù)。這種方式定義的函數(shù)如下。命名關(guān)鍵字參數(shù)需要一個(gè)特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。

def person(name, age, *, city, job):print(name, age, city, job)>>> person('Jack', 24, city='Beijing', job='Engineer') Jack 24 Beijing Engineer

如果函數(shù)定義中已經(jīng)有了一個(gè)可變參數(shù),后面跟著的命名關(guān)鍵字參數(shù)就不再需要一個(gè)特殊分隔符*了。

def person(name, age, *args, city, job):print(name, age, args, city, job)

參數(shù)組合

在Python中定義函數(shù),可以用必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù),這5種參數(shù)都可以組合使用。但是請(qǐng)注意,參數(shù)定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。

參考資料:
1、廖雪峰的Python教程

總結(jié)

以上是生活随笔為你收集整理的Python 3.6学习笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。