1. 程式人生 > >python3.6基礎知識

python3.6基礎知識

Python中預設的編碼格式是 ASCII格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。

解決方法為只要在檔案開頭加入# -*-coding: UTF-8 -*-或者#coding=utf-8就行了

注意:#coding=utf-8=號兩邊不要空格。

注意:Python3.X原始碼檔案預設使用utf-8編碼,所以可以正常解析中文,無需指定 UTF-8編碼。

所有 Python檔案將以.py為副檔名。

Python 識別符號

Python裡,識別符號由字母、數字、下劃線組成。

Python中,所有識別符號可以包括英文、數字以及下劃線(_),但不能以數字開頭。

Python

中的識別符號是區分大小寫的。

以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭_foo的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用from xxx import *而匯入;

以雙下劃線開頭的__foo代表類的私有成員;以雙下劃線開頭和結尾的__foo__代表 Python 裡特殊方法專用的標識,如__init__()代表類的建構函式。

Python 可以同一行顯示多條語句,方法是用分號;分開

Python 保留字元

下面的列表顯示了在Python中的保留字。這些保留字不能用作常數或變數,或任何其他識別符號名稱。

所有 Python的關鍵字只包含小寫字母。

and

exec

not

assert

finally

or

break

for

pass

class

from

print

continue

global

raise

def

if

return

del

import

try

elif

in

while

else

is

with

except

lambda

yield

多行語句

Python語句中一般以新行作為為語句的結束符。

但是我們可以使用斜槓( \)將一行的語句分為多行顯示,如下所示:

total = item_one +

\

       item_two + \

       item_three

語句中包含 [], {} () 括號就不需要使用多行連線符。如下例項:

days = ['Monday','Tuesday', 'Wednesday',

       'Thursday','Friday']

Python 引號

Python 可以使用引號' )、雙引號" )、三引號'''  """ )來表示字串,引號的開始與結束必須的相同型別的。

其中三引號可以由多行組成,編寫多行文字的快捷語法,常用於文件字串,在檔案的特定地點,被當做註釋。

word = 'word'
sentence = "這是一個句子。"
paragraph = """這是一個段落。
包含了多個語句"""

Python註釋

python中單行註釋採用 #開頭。

python 中多行註釋使用三個單引號(''')或三個雙引號(""")

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 檔名:test.py
'''
這是多行註釋,使用單引號。
這是多行註釋,使用單引號。
這是多行註釋,使用單引號。
'''
"""
這是多行註釋,使用雙引號。
這是多行註釋,使用雙引號。
這是多行註釋,使用雙引號。
"""

Python空行

函式之間或類的方法之間用空行分隔,表示一段新的程式碼的開始。類和函式入口之間也用一行空行分隔,以突出函式入口的開始。

空行與程式碼縮排不同,空行並不是Python語法的一部分。書寫時不插入空行,Python直譯器執行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的程式碼,便於日後程式碼的維護或重構。

記住:空行也是程式程式碼的一部分。

Print 輸出

print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上逗號,

# 不換行輸出
print x,
print y,

變數賦值

Python 中的變數賦值不需要型別宣告。

每個變數在記憶體中建立,都包括變數的標識,名稱和資料這些資訊。

每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。

等號(=)用來給變數賦值。

等號(=)運算子左邊是一個變數名,等號(=)運算子右邊是儲存在變數中的值。

多個變數賦值

Python允許你同時為多個變數賦值。例如:

a = b = c = 1

以上例項,建立一個整型物件,值為1,三個變數被分配到相同的記憶體空間上。

您也可以為多個物件指定多個變數。例如:

a, b, c = 1, 2,"john"

以上例項,兩個整型物件12的分配給變數 a b,字串物件 "john"分配給變數 c

標準資料型別

在記憶體中儲存的資料可以有多種型別。

例如,一個人的年齡可以用數字來儲存,他的名字可以用字元來儲存。

Python 定義了一些標準型別,用於儲存各種型別的資料。

Python有五個標準的資料型別:

·        Numbers(數字)

·        String(字串)

·        List(列表)

·        Tuple(元組)

·        Dictionary(字典)

Python數字

數字資料型別用於儲存數值。

他們是不可改變的資料型別,這意味著改變數字資料型別會分配一個新的物件。

當你指定一個值時,Number物件就會被建立:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些物件的引用。

del語句的語法是:

delvar1[,var2[,var3[....,varN]]]]

您可以通過使用del語句刪除單個或多個物件的引用。例如:

del var
del var_a, var_b

Python支援四種不同的數字型別:

·        int(有符號整型)

·        long(長整型[也可以代表八進位制和十六進位制]

·        float(浮點型)

·        complex(複數)

  • Python 還支援複數,複數由實數部分和虛數部分構成,可以用 a + bj,或者 complex(a,b) 表示, 複數的實部 a 和虛部 b 都是浮點型。

Python字串

字串或串(String)是由數字、字母、下劃線組成的一串字元。

python的字串列表有2種取值順序:

·        從左到右索引預設0開始的,最大範圍是字串長度少1

·        從右到左索引預設-1開始的,最大範圍是字串開頭

如果你要實現從字串中獲取一段子字串的話,可以使用變數 [頭下標:尾下標],就可以擷取相應的字串,其中下標是從 0 開始算起,可以是正數或負數,下標可以為空表示取到頭或尾。

比如:

s ='ilovepython'

s[1:5]的結果是love

加號(+)是字串連線運算子,星號(*)是重複操作

printstr[2:]#輸出從第三個字元開始的字串

printstr *2# 輸出字串兩次

printstr +"TEST"#輸出連線的字串

Python列表

List(列表) Python中使用最頻繁的資料型別。

list = ['runoob',786 , 2.23,'john',70.2]

Python元組

元組是另一個數據型別,類似於List(列表)。

元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表。

tuple = ('runoob',786 , 2.23,'john',70.2)

Python 字典

字典(dictionary)是除列表以外python之中最靈活的內建資料結構型別。列表是有序的物件集合,字典是無序的物件集合。

兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

字典用"{ }"標識。字典由索引(key)和它對應的值value組成。

dict = {}

dict['one'] ="This is one"

dict[2] ="This is two"

tinydict = {'name':'john','code':6734,'dept':'sales'}

printdict['one']#輸出鍵為'one' 的值

printdict[2]#輸出鍵為 2 的值

printtinydict#輸出完整的字典

printtinydict.keys()#輸出所有鍵

printtinydict.values()#輸出所有值

Python資料型別轉換

有時候,我們需要對資料內建的型別進行轉換,資料型別的轉換,你只需要將資料型別作為函式名即可。

以下幾個內建的函式可以執行資料型別之間的轉換。這些函式返回一個新的物件,表示轉換的值。

Python算術運算子

以下假設變數: a=10b=20

運算子

描述

例項

+

-兩個物件相加

a + b 輸出結果 30

-

-得到負數或是一個數減去另一個數

a - b 輸出結果 -10

*

-兩個數相乘或是返回一個被重複若干次的字串

a * b 輸出結果 200

/

- x除以y

b / a 輸出結果 2

%

取模 -返回除法的餘數

b % a 輸出結果 0

**

-返回xy次冪

a**b 1020次方,輸出結果 100000000000000000000

//

取整除 -返回商的整數部分

9//2 輸出結果 4 , 9.0//2.0輸出結果 4.0

Python賦值運算子

以下假設變數a10,變數b20

運算子

描述

例項

=

簡單的賦值運算子

c = a + b a + b的運算結果賦值為 c

+=

加法賦值運算子

c += a 等效於 c = c + a

-=

減法賦值運算子

c -= a 等效於 c = c - a

*=

乘法賦值運算子

c *= a 等效於 c = c * a

/=

除法賦值運算子

c /= a 等效於 c = c / a

%=

取模賦值運算子

c %= a 等效於 c = c % a

**=

冪賦值運算子

c **= a 等效於 c = c ** a

//=

取整除賦值運算子

c //= a 等效於 c = c // a

Python邏輯運算子

Python語言支援邏輯運算子,以下假設變數 a 10, b 20:

運算子

邏輯表示式

描述

例項

and

x and y

布林"" -如果 x Falsex and y返回 False,否則它返回 y的計算值。

(a and b) 返回 20

or

x or y

布林"" -如果 x 是非 0,它返回 x的值,否則它返回 y 的計算值。

(a or b) 返回 10

not

not x

布林"" -如果 x True,返回 False。如果 x False,它返回 True

not(a and b) 返回 False

Python成員運算子

除了以上的一些運算子之外,Python還支援成員運算子,測試例項中包含了一系列的成員,包括字串,列表或元組。

運算子

描述

例項

in

如果在指定的序列中找到值返回 True,否則返回 False

x y序列中 , 如果 x y序列中返回 True

not in

如果在指定的序列中沒有找到值返回 True,否則返回 False

x 不在 y序列中 , 如果 x 不在 y序列中返回 True

Python身份運算子

身份運算子用於比較兩個物件的儲存單元

運算子

描述

例項

is

is 是判斷兩個識別符號是不是引用自一個物件

x is y,類似 id(x) == id(y) ,如果引用的是同一個物件則返回 True

否則返回 False

is not

is not 是判斷兩個識別符號是不是引用自不同物件

x is not y類似 id(a) != id(b)。如果引用的不是同一個物件則返回

結果 True,否則返回 False

注:id()函式用於獲取物件記憶體地址。

is ==區別:

is 用於判斷兩個變數引用物件是否為同一個, ==用於判斷引用變數的值是否相等。

Python提供了for迴圈和while迴圈(在Python中沒有do..while迴圈):

迴圈型別

描述

在給定的判斷條件為 true時執行迴圈體,否則退出迴圈體。

for迴圈

重複執行語句

巢狀迴圈

你可以在while迴圈體中巢狀for迴圈

迴圈控制語句

迴圈控制語句可以更改語句執行的順序。Python支援以下迴圈控制語句:

控制語句

描述

在語句塊執行過程中終止迴圈,並且跳出整個迴圈

在語句塊執行過程中終止當前迴圈,跳出該次迴圈,執行下一次迴圈。

pass是空語句,是為了保持程式結構的完整性。

迴圈使用 else語句

python中,while … else在迴圈條件為 false時執行 else 語句塊:

例項

#!/usr/bin/pythoncount =0whilecount <5: printcount," is less than 5"count =count + 1else:printcount," is not less than 5"

迴圈使用 else語句

python中,for … else表示這樣的意思,for中的語句和普通的沒有區別,else中的語句會在迴圈正常執行完(即 for不是通過 break 跳出而中斷的)的情況下執行,while … else也是一樣。

例項

fornuminrange(10,20):# 迭代 10 20 之間的數字

foriinrange(2,num):# 根據因子迭代

ifnum%i ==0: #確定第一個因子

j=num/i#計算第二個因子

print'%d等於 %d * %d' %(num,i,j)

break#跳出當前迴圈

else: # 迴圈的 else部分

printnum,'是一個質數'

建立類

使用 class 語句來建立一個新類,class 之後為類的名稱並以冒號結尾:

class ClassName:
   '類的幫助資訊'   #類文件字串
   class_suite  #類體

類的幫助資訊可以通過ClassName.__doc__檢視。

class_suite 由類成員,方法,資料屬性組成。

self代表類的例項,而非類

類的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱,按照慣例它的名稱是 self

classTest:

defprt(self):

print(self)

print(self.__class__)

t = Test()

t.prt()

單下劃線、雙下劃線、頭尾雙下劃線說明:

·        __foo__:定義的是特殊方法,一般是系統定義名字,類似__init__()之類的。

·        _foo:以單下劃線開頭的表示的是 protected型別的變數,即保護型別只能允許其本身與子類進行訪問,不能用於from moduleimport *

·        __foo:雙下劃線的表示的是私有型別(private)的變數,只能是允許這個類本身進行訪問了

Python pass語句

Python pass是空語句,是為了保持程式結構的完整性。

pass 不做任何事情,一般用做佔位語句。

Python隨機數函式

隨機數可以用於數學,遊戲,安全等領域中,還經常被嵌入到演算法中,用以提高演算法效率,並提高程式的安全性。

Python包含以下常用隨機數函式:

函式

描述

從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從09中隨機挑選一個整數。

隨機生成下一個實數,它在[0,1)範圍內。

改變隨機數生成器的種子seed。如果你不瞭解其原理,你不必特別去設定seed