給小白整理的一篇Python知識點

一、基本概念

1.1 四種類型html

python中數有四種類型:整數、長整數、浮點數和複數。java

python中數有四種類型:整數、長整數、浮點數和複數。   python

  • 整數, 如 1
  • 長整數 是比較大的整數
  • 浮點數 如 1.2三、3E-2
  • 複數 如 1 + 2j、 1.1 + 2.2j

1.2 字符串

字符串(字符的序列)  程序員

  • python中單引號和雙引號使用徹底相同。
  • 使用三引號('''或""")能夠指定一個多行字符串。
  • 轉義符 '\'
  • 天然字符串, 經過在字符串前加r或R。 如 r"this is a line with \n" 則\n會顯示,並非換行。
  • python容許處理unicode字符串,加前綴u或U, 如 u"this is an unicode string"。
  • 字符串是不可變的。
  • 按字面意義級聯字符串,如"this " "is " "string"會被自動轉換爲this is string。

1.3 標識符的命名
標識符的命名express

  • 第一個字符必須是字母表中字母或下劃線'_'。
  • 標識符的其餘的部分有字母、數字和下劃線組成。
  • 標識符對大小寫敏感。

1.4 對象網絡

 python程序中用到的任何「東西」都成爲「對象」。數據結構

1.5 邏輯行和物理行app

  • 物理行:就是程序員所寫代碼的所在行。
  • 邏輯行:是指源代碼通過預編譯後,代碼所在的那一行。

Python假定每一個物理行都對應着一個邏輯行。例如:print( "Hello World" ) 就是一個物理行,Python但願每行只有一個語句,由於這樣看起來更加易讀。函數

若是你想要在一個物理行中使用多於一個邏輯行,那麼你須要使用分號(; )來特別地標明這種用法。分號表示一個邏輯行/語句的結束。學習

例如:

count = 5print ( "count" )

與下面的語句等同:

count = 5;print ( "count" );

固然也能夠寫成下面這種:

count = 5 ; print ( "count" );

甚至能夠寫成這樣:

count = 5 ; print ( "count" )

咱們使用\的換行

print \
("Runsen")

1.6 縮進

空白在python是很是重要的,行首的空白是最重要的,又稱爲縮進。行首的空白(空格和製表符)用來決定邏輯行的縮進層次,從而決定語句。

二、運算符與表達式

2.1 運算符與其用法

運算符 名稱 例子
+ 兩個對象相加 加法,如3 + 5獲得8,字符也能夠相加'a' + 'b'獲得'ab'
- 一個數減去另外一個數 5 - 2獲得3
* 乘 兩個數相乘或是返回一個被重複若干次的字符串 2 * 3獲得6,'a' * 3獲得'aaa'
** 冪 返回x的y次冪 3 ** 4獲得81(即3 * 3 * 3 * 3)
/ 除 x除以y 4/3獲得1(整數的除法獲得整數結果)。4.0/3或4/3.0獲得1.3333
// 除 x除以y 4/3獲得1(整數的除法獲得整數結果)。4.0/3或4/3.0獲得1.3333
% 取模 返回除法的餘數 8%3獲得2。-25.5%2.25獲得1.5
<< 左移,把一個數的二進制左移必定數目,也就是在右邊補多少個0, 如 2 << 2獲得8,二進制10變成1000
>> 右移 把一個數的比特向右移必定數目,也就是在右邊刪除位數 10>>2獲得2,二進制1010變成10,直接刪除後面2位
& 按位與 數的按位與 9 & 13獲得9,二進制1001&1101,變成1001,兩個值相應的位置都爲1,那麼該結果就是1,否則就是0
| 按位或 數的按位或 5 | 3獲得7。二進制101&11,變成111,若是兩個值相應的位置有一個是1,那麼該結果就是1,也就是若是都是0,該結果就是0,101和11沒有都是0,因此111
^ 按位異或 數的按位異或 5 ^ 3獲得6,二進制101&11,變成110,兩個值相應的位置相同,那麼該結果就是0,也就是若是都是0或者都是1,該結果就是0,101和11,第一個都是1,因此110
~ 按位翻轉 x的按位翻轉是-(x+1) ~5獲得6
< 小於 返回x是否小於y。 全部比較運算符返回1表示真,返回0表示假。 5 < 3返回0(即False)而3 < 5返回1(即True)。還能夠被任意鏈接:3 < 5 < 7返回True。
> 大於 返回x是否大於y 5 > 3返回True。若是兩個操做數須要都是數字
<= 小於等於 返回x是否小於等於y x = 3; y = 6; x <= y返回True
>= 大於等於 返回x是否大於等於y x = 4; y = 3; x >= y返回True
== 等於 比較對象是否相等 x = 2; y = 2; x == y返回True
!= 不等於 比較兩個對象是否不相等 x = 2; y = 3; x != y返回True。
not 布爾「非」 若是x爲True,返回False x = True; not y返回False。
or 布爾「或」 若是x是True,它返回True,不然它返回y的計算值。 x = True; y = False; x or y返回True

 

2.2 運算符優先級

.運算符優先級(從低到高)

運算符 描述
lambda Lambda表達式
or 布爾「或」
and 布爾「與」
not x 布爾「非」
in,not in 成員測試
is,is not 同一性測試
<,<=,>,>=,!=,== 比較
` `
^ 按位異或
` `
& 按位與
<<,>> 移位
+,- 加法與減法
*,/,% 乘法、除法與取餘
+x,-x 正負號
~x 按位翻轉
** 指數
~x 按位翻轉
x.attribute 屬性參考
x[index] 下標
x[index:index] 尋址段
f(arguments...) 函數調用
(experession,...) 綁定或元組顯示
[expression,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字符串

2.3 輸出

python 控制檯輸出 使用print

print ("abc"  )  #打印abc並換行print ("abc%s" % "d"  )  #打印abcdprint ("abc%sef%s" % ("d", "g")  )  #打印abcdefg

三、控制流

3.1 if 語句

= 10n = int(input("enter a number:"))if n == i:

    print( "equal")elif n < i:

    print( "lower")else:    print ("higher")

3.2 while語句

while True:    passelse:    pass#else語句可選,當while爲False時,else語句被執行。 pass是空語句。

for 循環 for..in

for i in range(0, 5):    print (i)else:    pass# 打印0到4

注:當for循環結束後執行else語句;range(a, b)返回一個序列,從a開始到b爲止,但不包括b,range默認步長爲1,能夠指定步長,range(0,10,2);

3.3 break語句

終止循環語句,若是從for或while中終止,任何對應循環的else將不執行。

3.4 continue語句
continue語句用來調過當前循環的剩餘語句,而後繼續下一輪循環。

下面就是 break 和 continue 主要的 區別:

  • break:跳出整個循環
  • continue:跳出本次循環,繼續執行下一次循環

但願你們牢記。

四、函數

函數經過def定義。def關鍵字後跟函數的標識符名稱,而後跟一對圓括號,括號以內能夠包含一些變量名,該行以冒號結尾;接下來是一塊語句,即函數體。

def sumOf(a, b):

    return a + b

4.1 函數形參
函數中的參數名稱爲‘形參’,調用函數時傳遞的值爲‘實參’

4.2 局部變量
在函數內定義的變量與函數外具備相同名稱的其餘變量沒有任何關係,即變量名稱對於函數來講是局部的。這稱爲變量的做用域。

global語句, 爲定義在函數外的變量賦值時使用global語句。

def func():

    global x

    print( "x is ", x)

    x = 1x = 3func()

print(x)#3#1

4.3 默認參數

經過使用默認參數可使函數的一些參數是‘可選的’。

def say(msg, times =  1):

    print(msg * times)

say("Runsen")

say("Runsen", 3)

注意:只有在形參表末尾的那些參數能夠有默認參數值,即不能在聲明函數形參的時候,先聲明有默認值的形參然後聲明沒有默認值的形參,只是由於賦給形參的值是根據位置而賦值的。  

4.4 關鍵參數

若是某個函數有不少參數,而如今只想指定其中的部分,那麼能夠經過命名爲這些參數賦值(稱爲‘關鍵參數’)。 優勢:沒必要擔憂參數的順序,使函數變的更加簡單;假設其餘參數都有默認值,能夠只給咱們想要的那些參數賦值。

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

4.5 return 語句

 return語句用來從一個函數返回,即跳出函數。可從函數返回一個值。  沒有返回值的return語句等價於return None。None表示沒有任何東西的特殊類型。

 

4.6 文檔字符串

__doc__ (文檔字符串)

def func():

    '''This is self-defined function

    Do nothing

    '''

    passprint(func.__doc__)#This is self-defined function##Do nothing

五、模塊

模塊就是一個包含了全部你定義的函數和變量的文件,模塊必須以.py爲擴展名。模塊能夠從其餘程序中‘輸入’(import)以便利用它的功能。

在python程序中導入其餘模塊使用'import', 所導入的模塊必須在sys.path所列的目錄中,由於sys.path第一個字符串是空串''即當前目錄,因此程序中可導入當前目錄的模塊。

5.1 字節編譯的.pyc文件
導入模塊比較費時,python作了優化,以便導入模塊更快些。一種方法是建立字節編譯的文件,這些文件以.pyc爲擴展名。

pyc是一種二進制文件,是py文件經編譯後產生的一種byte code,並且是跨平臺的(平臺無關)字節碼,是有python虛擬機執行的,相似於

java或.net虛擬機的概念。pyc的內容,是跟python的版本相關的,不一樣版本編譯後的pyc文件是不一樣的。

5.2 from .. import
若是想直接使用其餘模塊的變量或其餘,而不加'模塊名+.'前綴,可使用from .. import。

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

5.3 模塊的__name__
每一個模塊都有一個名稱,py文件對應模塊名默認爲py文件名,也可在py文件中爲__name__賦值;若是是__name__,說明這個模塊被用戶

(4) dir()函數

  • dir(sys)返回sys模塊的名稱列表;若是不提供參數,即dir(),則返回當前模塊中定義名稱列表。
    (5) del

del -> 刪除一個變量/名稱,del以後,該變量就不能再使用。

六、數據結構

python有三種內建的數據結構:列表、元組和字典。

6.1 列表
   list是處理一組有序項目的數據結構,列表是可變的數據結構。列表的項目包含在方括號[]中,

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

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

支持索引和切片操做;索引時若超出範圍,則IndexError;

使用函數len()查看長度;使用del能夠刪除列表中的項,eg: del l[0] # 若是超出範圍,則IndexError     

list函數以下:

append(value)  ---向列表尾添加項value

l = [1, 2, 2]

l.append(3) #[1, 2, 2, 3]count(value)  ---返回列表中值爲value的項的個數

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]])  ---返回列表中第一個出現的值爲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位置插入項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位置項,並從列表中刪除;若是不提供參數,則刪除最後一個項;若是提供,可是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)  ---刪除列表中第一次出現的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()  ---列表反轉

 

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']

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理

想要獲取更多Python學習資料能夠加QQ:2955637827私聊或加Q羣630390733你們一塊兒來學習討論吧!

相關文章
相關標籤/搜索