溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2020-11-02 10:27:40 來(lái)源:億速云 閱讀:134 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)Python知識(shí)點(diǎn)有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧。

1、基本概念

1.1 四種類型

python中數(shù)有四種類型:整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。   

  • 整數(shù), 如 1
  • 長(zhǎng)整數(shù) 是比較大的整數(shù)
  • 浮點(diǎn)數(shù) 如 1.23、3E-2
  • 復(fù)數(shù) 如 1 + 2j、 1.1 + 2.2j

1.2 字符串

字符串(字符的序列)   

  • python中單引號(hào)和雙引號(hào)使用完全相同。
  • 使用三引號(hào)('''或""")可以指定一個(gè)多行字符串。
  • 轉(zhuǎn)義符 '\'
  • 自然字符串, 通過在字符串前加r或R。 如 r"this is a line with \n"\n會(huì)顯示,并不是換行。
  • python允許處理unicode字符串,加前綴u或U, 如 u"this is an unicode string"。
  • 字符串是不可變的。
  • 按字面意義級(jí)聯(lián)字符串,如"this " "is " "string"會(huì)被自動(dòng)轉(zhuǎn)換為this is string。

1.3 標(biāo)識(shí)符的命名

標(biāo)識(shí)符的命名

  • 第一個(gè)字符必須是字母表中字母或下劃線'_'。
  • 標(biāo)識(shí)符的其他的部分有字母、數(shù)字和下劃線組成。
  • 標(biāo)識(shí)符對(duì)大小寫敏感。

1.4 對(duì)象

 python程序中用到的任何“東西”都成為“對(duì)象”。

1.5 邏輯行和物理行

  • 物理行:就是程序員所寫代碼的所在行。
  • 邏輯行:是指源代碼經(jīng)過預(yù)編譯后,代碼所在的那一行。

Python假定每個(gè)物理行都對(duì)應(yīng)著一個(gè)邏輯行。例如:print( "Hello World" ) 就是一個(gè)物理行,Python希望每行只有一個(gè)語(yǔ)句,因?yàn)檫@樣看起來(lái)更加易讀。

如果你想要在一個(gè)物理行中使用多于一個(gè)邏輯行,那么你需要使用分號(hào)(; )來(lái)特別地標(biāo)明這種用法。分號(hào)表示一個(gè)邏輯行/語(yǔ)句的結(jié)束。

例如:

count = 5print ( "count" )復(fù)制代碼

與下面的語(yǔ)句等同:

count = 5;print ( "count" );復(fù)制代碼

當(dāng)然也可以寫成下面這種:

count = 5 ; print ( "count" );復(fù)制代碼

甚至可以寫成這樣:

count = 5 ; print ( "count" )復(fù)制代碼

我們使用\的換行

print \
("Runsen")復(fù)制代碼

1.6 縮進(jìn)

空白在python是非常重要的,行首的空白是最重要的,又稱為縮進(jìn)。行首的空白(空格和制表符)用來(lái)決定邏輯行的縮進(jìn)層次,從而決定語(yǔ)句。

2、運(yùn)算符與表達(dá)式

2.1 運(yùn)算符與其用法

運(yùn)算符名稱例子
+兩個(gè)對(duì)象相加加法,如3 + 5得到8,字符也可以相加'a' + 'b'得到'ab'
-一個(gè)數(shù)減去另一個(gè)數(shù)5 - 2得到3
*乘 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串2 * 3得到6,'a' * 3得到'aaa'
**冪 返回x的y次冪3 ** 4得到81(即3 * 3 * 3 * 3)
/除 x除以y4/3得到1(整數(shù)的除法得到整數(shù)結(jié)果)。4.0/3或4/3.0得到1.3333
//取整除 返回商的整數(shù)部分4 // 3.0得到1.
%取模 返回除法的余數(shù)8%3得到2。-25.5%2.25得到1.5
<<左移,把一個(gè)數(shù)的二進(jìn)制左移一定數(shù)目,也就是在右邊補(bǔ)多少個(gè)0,如 2 << 2得到8,二進(jìn)制10變成1000
>>右移 把一個(gè)數(shù)的比特向右移一定數(shù)目,也就是在右邊刪除位數(shù)10>>2得到2,二進(jìn)制1010變成10,直接刪除后面2位
&按位與數(shù)的按位與 9 & 13得到9,二進(jìn)制1001&1101,變成1001,兩個(gè)值相應(yīng)的位置都為1,那么該結(jié)果就是1,不然就是0
|按位或數(shù)的按位或 5 | 3得到7。二進(jìn)制101&11,變成111,如果兩個(gè)值相應(yīng)的位置有一個(gè)是1,那么該結(jié)果就是1,也就是如果都是0,該結(jié)果就是0,101和11沒有都是0,所以111
^按位異或數(shù)的按位異或 5 ^ 3得到6,二進(jìn)制101&11,變成110,兩個(gè)值相應(yīng)的位置相同,那么該結(jié)果就是0,也就是如果都是0或者都是1,該結(jié)果就是0,101和11,第一個(gè)都是1,所以110
~按位翻轉(zhuǎn)x的按位翻轉(zhuǎn)是-(x+1) ~5得到6
<小于 返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。 5 < 3返回0(即False)而3 < 5返回1(即True)。還可以被任意連接:3 < 5 < 7返回True。
>大于 返回x是否大于y5 > 3返回True。如果兩個(gè)操作數(shù)需要都是數(shù)字
<=小于等于 返回x是否小于等于yx = 3; y = 6; x <= y返回True
>=大于等于 返回x是否大于等于yx = 4; y = 3; x >= y返回True
==等于 比較對(duì)象是否相等x = 2; y = 2; x == y返回True
!=不等于 比較兩個(gè)對(duì)象是否不相等x = 2; y = 3; x != y返回True。
not布爾“非” 如果x為True,返回Falsex = True; not y返回False。
or布爾“或” 如果x是True,它返回True,否則它返回y的計(jì)算值。x = True; y = False; x or y返回True

2.2 運(yùn)算符優(yōu)先級(jí)

.運(yùn)算符優(yōu)先級(jí)(從低到高)

運(yùn)算符描述
lambdaLambda表達(dá)式
or布爾“或”
and布爾“與”
not x布爾“非”
in,not in成員測(cè)試
is,is not同一性測(cè)試
<,<=,>,>=,!=,==比較
``
^按位異或
``
&按位與
<<,>>移位
+,-加法與減法
*,/,%乘法、除法與取余
+x,-x正負(fù)號(hào)
~x按位翻轉(zhuǎn)
**指數(shù)
~x按位翻轉(zhuǎn)
x.attribute屬性參考
x[index]下標(biāo)
x[index:index]尋址段
f(arguments...)函數(shù)調(diào)用
(experession,...)綁定或元組顯示
[expression,...]列表顯示
{key:datum,...}字典顯示
'expression,...'字符串

2.3 輸出

python 控制臺(tái)輸出 使用print

print ("abc"  )  #打印abc并換行print ("abc%s" % "d"  )  #打印abcdprint ("abc%sef%s" % ("d", "g")  )  #打印abcdefg復(fù)制代碼

3、控制流

3.1 if 語(yǔ)句

i = 10n = int(input("enter a number:"))if n == i:
    print( "equal")elif n < i:
    print( "lower")else:    print ("higher")復(fù)制代碼

3.2 while語(yǔ)句

while True:    passelse:    pass#else語(yǔ)句可選,當(dāng)while為False時(shí),else語(yǔ)句被執(zhí)行。 pass是空語(yǔ)句。復(fù)制代碼

for 循環(huán) for..in

for i in range(0, 5):    print (i)else:    pass# 打印0到4復(fù)制代碼

注:當(dāng)for循環(huán)結(jié)束后執(zhí)行else語(yǔ)句;range(a, b)返回一個(gè)序列,從a開始到b為止,但不包括b,range默認(rèn)步長(zhǎng)為1,可以指定步長(zhǎng),range(0,10,2);

3.3 break語(yǔ)句

終止循環(huán)語(yǔ)句,如果從for或while中終止,任何對(duì)應(yīng)循環(huán)的else將不執(zhí)行。

3.4 continue語(yǔ)句

continue語(yǔ)句用來(lái)調(diào)過當(dāng)前循環(huán)的剩余語(yǔ)句,然后繼續(xù)下一輪循環(huán)。

下面就是 break 和 continue 主要的 區(qū)別:

  • break:跳出整個(gè)循環(huán)
  • continue:跳出本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)

希望大家牢記。

4、函數(shù)

函數(shù)通過def定義。def關(guān)鍵字后跟函數(shù)的標(biāo)識(shí)符名稱,然后跟一對(duì)圓括號(hào),括號(hào)之內(nèi)可以包含一些變量名,該行以冒號(hào)結(jié)尾;接下來(lái)是一塊語(yǔ)句,即函數(shù)體。

def sumOf(a, b):
    return a + b復(fù)制代碼

4.1  函數(shù)形參

函數(shù)中的參數(shù)名稱為‘形參’,調(diào)用函數(shù)時(shí)傳遞的值為‘實(shí)參’

4.2 局部變量

在函數(shù)內(nèi)定義的變量與函數(shù)外具有相同名稱的其他變量沒有任何關(guān)系,即變量名稱對(duì)于函數(shù)來(lái)說(shuō)是局部的。這稱為變量的作用域。

global語(yǔ)句, 為定義在函數(shù)外的變量賦值時(shí)使用global語(yǔ)句。

def func():
    global x
    print( "x is ", x)
    x = 1x = 3func()
print(x)#3#1 復(fù)制代碼

4.3 默認(rèn)參數(shù)

通過使用默認(rèn)參數(shù)可以使函數(shù)的一些參數(shù)是‘可選的’。

def say(msg, times =  1):
    print(msg * times)

say("Runsen")
say("Runsen", 3)復(fù)制代碼

注意:只有在形參表末尾的那些參數(shù)可以有默認(rèn)參數(shù)值,即不能在聲明函數(shù)形參的時(shí)候,先聲明有默認(rèn)值的形參而后聲明沒有默認(rèn)值的形參,只是因?yàn)橘x給形參的值是根據(jù)位置而賦值的。  

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

如果某個(gè)函數(shù)有很多參數(shù),而現(xiàn)在只想指定其中的部分,那么可以通過命名為這些參數(shù)賦值(稱為‘關(guān)鍵參數(shù)’)。 優(yōu)點(diǎn):不必?fù)?dān)心參數(shù)的順序,使函數(shù)變的更加簡(jiǎn)單;假設(shè)其他參數(shù)都有默認(rèn)值,可以只給我們想要的那些參數(shù)賦值。

def func(a, b=2, c=3):
    print ("a is %s, b is %s, c is %s") % (a, b, c)

func(1) #a is 1, b is 2, c is 3func(1, 5) #a is 1, b is 5, c is 3func(1, c = 10) #a is 1, b is 2, c is 10func(c = 20, a = 30) #a is 30, b is 2, c is 20復(fù)制代碼

4.5 return 語(yǔ)句

 return語(yǔ)句用來(lái)從一個(gè)函數(shù)返回,即跳出函數(shù)??蓮暮瘮?shù)返回一個(gè)值。  沒有返回值的return語(yǔ)句等價(jià)于return None。None表示沒有任何東西的特殊類型。

4.5  文檔字符串

__doc__   (文檔字符串)

def func():
    '''This is self-defined function
	Do nothing
	'''
    passprint(func.__doc__)#This is self-defined function##Do nothing復(fù)制代碼

5、模塊

模塊就是一個(gè)包含了所有你定義的函數(shù)和變量的文件,模塊必須以.py為擴(kuò)展名。模塊可以從其他程序中‘輸入’(import)以便利用它的功能。

在python程序中導(dǎo)入其他模塊使用'import', 所導(dǎo)入的模塊必須在sys.path所列的目錄中,因?yàn)閟ys.path第一個(gè)字符串是空串''即當(dāng)前目錄,所以程序中可導(dǎo)入當(dāng)前目錄的模塊。

5.1 字節(jié)編譯的.pyc文件

導(dǎo)入模塊比較費(fèi)時(shí),python做了優(yōu)化,以便導(dǎo)入模塊更快些。一種方法是創(chuàng)建字節(jié)編譯的文件,這些文件以.pyc為擴(kuò)展名。

pyc是一種二進(jìn)制文件,是py文件經(jīng)編譯后產(chǎn)生的一種byte code,而且是跨平臺(tái)的(平臺(tái)無(wú)關(guān))字節(jié)碼,是有python虛擬機(jī)執(zhí)行的,類似于

java或.net虛擬機(jī)的概念。pyc的內(nèi)容,是跟python的版本相關(guān)的,不同版本編譯后的pyc文件是不同的。

5.2  from .. import

如果想直接使用其他模塊的變量或其他,而不加'模塊名+.'前綴,可以使用from .. import。

例如想直接使用sys的argv,from sys import argv 或 from sys import *

5.3 模塊的__name__

每個(gè)模塊都有一個(gè)名稱,py文件對(duì)應(yīng)模塊名默認(rèn)為py文件名,也可在py文件中為__name__賦值;如果是__name__,說(shuō)明這個(gè)模塊被用戶

(4)  dir()函數(shù)

  • dir(sys)返回sys模塊的名稱列表;如果不提供參數(shù),即dir(),則返回當(dāng)前模塊中定義名稱列表。

(5)  del

del -> 刪除一個(gè)變量/名稱,del之后,該變量就不能再使用。

6、數(shù)據(jù)結(jié)構(gòu)

python有三種內(nèi)建的數(shù)據(jù)結(jié)構(gòu):列表、元組和字典。

6.1 列表

   list是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),列表是可變的數(shù)據(jù)結(jié)構(gòu)。列表的項(xiàng)目包含在方括號(hào)[]中,

eg: [1, 2, 3], 空列表[]。判斷列表中是否包含某項(xiàng)可以使用in,

比如 l = [1, 2, 3]; print 1 in l; #True;

支持索引和切片操作;索引時(shí)若超出范圍,則IndexError;

使用函數(shù)len()查看長(zhǎng)度;使用del可以刪除列表中的項(xiàng),eg: del l[0] # 如果超出范圍,則IndexError      list函數(shù)如下:

append(value)  ---向列表尾添加項(xiàng)value
l = [1, 2, 2]
l.append(3) #[1, 2, 2, 3]count(value)  ---返回列表中值為value的項(xiàng)的個(gè)數(shù)
l = [1, 2, 2]
print( l.count(2)) # 2extend(list2)  ---向列表尾添加列表list2
l = [1, 2, 2]
l1 = [10, 20]
l.extend(l1)print (l )  #[1, 2, 2, 10, 20]index(value, [start, [stop]])  ---返回列表中第一個(gè)出現(xiàn)的值為value的索引,如果沒有,則異常 ValueError

l = [1, 2, 2]
a = 4try:
    print( l.index(a))except ValueError, ve:
    print( "there is no %d in list" % a
    insert(i, value))  ---向列表i位置插入項(xiàng)vlaue,如果沒有i,則添加到列表尾部

l = [1, 2, 2]

l.insert(1, 100)print l #[1, 100, 2, 2]l.insert(100, 1000)print l #[1, 100, 2, 2, 1000]pop([i])  ---返回i位置項(xiàng),并從列表中刪除;如果不提供參數(shù),則刪除最后一個(gè)項(xiàng);如果提供,但是i超出索引范圍,則異常IndexError

l = [0, 1, 2, 3, 4, 5]

print( l.pop()) # 5print( l) #[0, 1, 2, 3, 4]print( l.pop(1)) #1print( l) #[0, 2, 3, 4]try:
    l.pop(100)except IndexError, ie:
    print( "index out of range")

remove(value)  ---刪除列表中第一次出現(xiàn)的value,如果列表中沒有vlaue,則異常ValueError

l = [1, 2, 3, 1, 2, 3]

l.remove(2)print (l )#[1, 3, 1, 2, 3]try:
    l.remove(10)except ValueError, ve:    print ("there is no 10 in list")

reverse()  ---列表反轉(zhuǎn)

l = [1, 2, 3]
l.reverse()print (l) #[3, 2, 1]sort(cmp=None, key=None, reverse=False)  ---列表排序

l5 = [10, 5, 20, 1, 30]
l5.sort()
print( l5) #[1, 5, 10, 20, 30]l6 = ["bcd", "abc", "cde", "bbb"]
l6.sort(cmp = lambda s1, s2: cmp(s1[0],s2[1]))
print( l6) #['abc', 'bbb', 'bcd', 'cde']l7 = ["bcd", "abc", "cde", "bbb", "faf"]
l7.sort(key = lambda s: s[1])print (l7) #['faf', 'abc', 'bbb', 'bcd', 'cde']復(fù)制代碼

感謝各位的閱讀!關(guān)于Python知識(shí)點(diǎn)有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI