python基礎筆記0_1

DQSHJQ發表於2018-03-13

 

Python宣告:

1. 如果沒有此檔案編碼型別的宣告,則python預設以ASCII編碼去處理如果你沒宣告編碼,但是檔案中又包含非ASCII編碼的字元的話,python解析器去解析的python檔案,自然就會報錯了。

2. 必須放在python檔案的第一行或第二行

3. 支援的格式,可以有三種:

① 帶等於號的:  # coding=<encoding name>

② 最常見的(大多數編輯器都正確識別)

#!/usr/bin/python

# -*- coding=<encoding name> -*-   

③ Vim的:  

#!/usr/bin/python

# vim: set fileencoding=<encoding name> :

#!/usr/bin/env python與#!/usr/bin/python的區別

#!/usr/bin/python是告訴作業系統執行這個指令碼的時候,呼叫/usr/bin下的python直譯器;
#!/usr/bin/env python這種用法是為了防止作業系統使用者沒有將python裝在預設的/usr/bin路徑裡。當系統看到這一行的時候,首先會到env設定裡查詢python的安裝路徑,再呼叫對應路徑下的直譯器程式完成操作。
#!/usr/bin/python相當於寫死了python路徑;
#!/usr/bin/env python會去環境設定尋找python目錄,推薦這種寫法

註釋:

    #註釋的作用:

1.標註程式碼,提高可讀性,方便後期維護     2.用於除錯程式,排查錯誤

 

    #註釋符號 :

  單行用#                                           多行用''' 或 """         

資料型別:

Python中可以自定義資料型別,可以具有無限種資料型別。

6種標準資料型別:1.Number型別  整型   2.String型別   字串型別  3.List型別  列表型別   4.Tuple型別  元組型別   5.Set型別   集合型別    6.Dict型別  字典型別

    整型:

 0o是八進位制   0b是二進位制   0x是十六進位制 

                

 intvar = 3

檢視變數值 print(intvar)

檢視變數型別print(type(intvar))

    浮點型:           Float

 

(1) 小數方式

 

floatvar = 3.141592

 

Print (floatvar)

 

(2) 科學計數法

 

floatvar = 11e2 或 11e-2  # 相當於10正2負2的平方

 

布林型別:       Boolean

#該型別只有兩個值  True  和 False

boolvar = False    #不寫引號

result = 5 > 3

print(result,type(result))

複數型別:      Complex 

例子:

Comvar = 5 + 3j   可以+—*/

Comvar = (5 ,4)   

字元型別:              String

單引號:

    變數 = '內容'

雙引號:

    變數 = "內容"

三引號:

    變數 = '''內容'''

 變數 = """內容"""

例子:

Strvar = '3'       3 與3’ 兩者型別不同,

 

\\       反斜槓符號(\)     

\        續行

\'       單引號          

\"       雙引號        

\n       換行             *

\v       縱向製表符

\t       橫向製表符        *Tab

\r       回車             *表示回到當前行的開頭從新輸出  回車和Enter鍵完全不同

Enter鍵:\r\n (windows下)   或者 \n (linux) 或者 \r (unix 早期mac) 表示換行

#元字串:  字串前面加R或r,就不顯示轉義符號

 

 列表型別:          List 

   代表符號  [ ]

 

例子:

List_1 = ['胡','巨集','002']

print (List_1[2])  # 獲取某個資料

List_1[2] = '003'  #修改某個資料

List_1.append('d') #新增資料

List_1.insert(1,'f') #指定插入某個位置

List_1.pop()或List_1.pop(i) #刪除末尾元素或指定元素

 元組型別 :    Touple

例子:Tuplevar = ('001','002','003')    #新建一個資料的元組,必須帶有一個逗號,括號有沒有無所謂    

空值是var = ()

Tuplevar[1]='004'    #元組型無法修改資料

 

字典型別:           Dict         

字典就是具有鍵值對映關係的一組無序資料組合,可以修改

例子:dictvar = {'偉大':'祖國','三國':'曹操','水滸':'宋江'}

 

 

 

 

print (dictvar['偉大'])

 

 

 

 

dictvar['偉大'] = '五千年'

 

 

 

 

print (dictvar)

 

 

 

 

 集合型別     Set型別              沒有標誌符號

一組特定資料的無序組合,所有資料不會重複(基本功能包括關係測試和消除重複元素,無法修改資料)

空值為set()

例子:setvar = {1,1,33,44,55,33,4}轉換

           print(setvar)

 

資料型別的轉換

#分類: 自動資料型別轉換(隱式轉換)和強制資料型別轉換(顯示轉換)

#自動型別轉換

 

 

 

 

1. 自動型別轉換在適當時候自動發生無需人工干預

2. 自動型別轉換多發生在運算或者判斷過程當中

3. 運算自動型別轉換會向著更加精確的資料型別轉換

 

 

 

 

#強制型別轉換

#數值型別轉換

1. 整數不需要轉換

2. 浮點數轉換為整數,去掉小數部分

3. 布林值 True轉換為1   False轉換為0

4. 複數無法轉換

5. 字串轉換,僅純整型字串可以轉換(浮點型或者帶有其他字元都不可以轉換)

6. 列表元組集合字典無法轉換

#布林值轉換

能夠轉換為false 的情況

整型:0  布林值:False

浮點數:0.0   複數: 0j   

字串:空的字串    

空的列表元組字典集合  轉換為False,其餘都為1

 

#複數轉換

1、整型轉換之後  +0j

2、浮點數轉換  +0j

3、布林值  True ->1 + 0j     False -> 0j

4、複數無需轉換

5、字串:整數和浮點數字符串可以轉換    先轉換為對應的實數 +0j

6、列表元組字典集合 無法轉換

 

#字串轉換

 

任何資料轉換為字串都是原樣輸出

檢視轉換過程  repr()

 

 

 

 

#列表轉換  

#容器:能夠同時存放多個資料型別成為容器:元組,列表,字典集合還有字串

 

 

 

 

字串:轉換之後,每個字元賦成為列表中的每一個資料

 

 

 

 

元組:轉換之後內容和順序不變

 

 

 

 

列表:無需轉換

 

 

 

 

集合:轉換之後內容不變,順序隨機

 

 

 

 

字典:轉換之後,僅將目錄提取出來轉換為列表,值捨棄

 

 

 

 

#元組轉換  

 

 

 

 

字串:轉換之後,每個字元賦成為元組中的每一個資料

 

 

 

 

元組:無需轉換

 

 

 

 

列表:轉換之後內容和順序不變

 

 

 

 

集合:轉換之後內容不變,順序隨機

 

 

 

 

字典:轉換之後,僅將目錄提取出來轉換為元組,值捨棄

 

 

 

 

#集合轉換

 

 

 

 

字串:轉換之後,每個字元賦成為集合中的一個資料,順序隨機,重複資料,只保留一份

 

 

 

 

元組:轉換之後,順序隨機,重複資料只保留一份

 

 

 

 

列表:轉換之後,順序隨機,重複資料只保留一份

 

 

 

 

集合:無需轉換

 

 

 

 

字典:轉換之後,僅將目錄提取出來轉換為集合,值捨棄

 

 

 

 

#字典轉換

 

 

 

 

字串:無法轉換為字典

 

 

 

 

列表,元組,集合轉換成字典必須保證為二級容器,並且第二級必須有2個資料

 

 

 

 

二級集合,目前只能放元組   不能放列表,集合,字典

 

 

 

 

例子:二級列表: var = [

[zj,鍾馗],

[zj,鍾無言],

]

二級集合: var = {

zj,鍾馗),

zj,鍾無言),

}

 

 

演算法運算:

加法運算 + , 減法運算 -, 乘法運算 *,除法運算 / ,取餘運算 %,取商運算 // (地板除),冪運算 **

a = 1 + 1  a = 2 / 1   a = 4 % 3  a = 4 ** 3  a = 5 // 3

 

比較運算:

大於運算 > ,小於運算 <,大於等於運算>=,小於等於運算<=,等與運算==,不等於運算 !=

例子:

Result = 6 > 3

Print (result)

Result = 6 < 3

Print (result)

Result = 6 >= 3

Print (result)

Result = 6 <= 3

Print (result)

Result = 6 == 3

Print (result)

Result = 6 != 3

Print (result)

Result = 5 == 5  #只要型別(6大型別)不相同 就是不等於

 

賦值運算:

Var = 10

Var = var +5  # 可寫成var += 5    (注:需等號兩邊是同一個變數)

Print (var)           

邏輯運算:

邏輯與運算 (有假則假)

Result = False and False

邏輯或運算 (有真則真)

Result = False or False

邏輯非運算 (真變假,假變真)

Result = not True

異或運算 (相同為假,不同為真)(Python中無此運算)

Result = False xor True

 

python中 and 和 or 運算的核心思想 ——— 短路邏輯

 

    表示式從左至右運算,若 or 的左側邏輯值為 True ,則短路 or 後所有的表示式(不管是 and 還是 or),直接輸出 or 左側表示式 。

表示式從左至右運算,若 and 的左側邏輯值為 False ,則短路其後所有 and 表示式,直到有 or 出現,輸出 and 左側表示式到 or 的左側,參與接下來的邏輯運算。

    若 or 的左側為 False ,或者 and 的左側為 True 則不能使用短路邏輯。

 

位運算:

1. 按位與運算 &  

運算規則:0&0=0; 0&1=0;1&0=0;1&1=1;即:兩位同時為“1”,結果才為“1”,否則為0【有0則0

例子:n1 = 2  n2 = 4   result = n1 & n2

2. 按位或運算 |

運算規則:0|0=0;0|1=1;1|0=1;1|1=1;即 :參加運算的兩個物件只要有一個為1,其值為1【有1則1

例子:n1 = 2  n2 = 4   result = n1 | n2

3. 按位非運算  ~  #正數=負數加1  負數=正數減一

將一個數字的二進位制形的每一個二進位制數字取反所得到的結果

例子:n1 =200   result = ~n1

4. 按位異或運算  ^

運算規則:0^0=0;0^1=1;1^0=1;1^1=0;即:參加運算的兩個物件,如果兩個相應位為“異”(值不同),則該位結果為1,否則為0【同0異1

例子:No1 = 24 no2 = 17 result = no1 ^ no2

5. 左移運算  左移一位相當於*2

形式: A << n;  #A是一個要被移動的數字

6. 右移運算     右移一位相當於//2

 形式: A >> n;#/A是一個要被移動的數字

成員檢測:

in  檢測一個資料是否在制定的容器當中

not in 檢測一個資料是否不再製定的容器當中

 

lists = ['劉濤','zhaowei','linxinru']

result = 'ls' in lists

print (result)

#檢測資料是否不在容易當中

list = {'11','22','33','44'}

result = 'ls' not in lists

print (result)

 

dict = {'11':'22','33':'44'}   ##成員檢測對於字典而言 僅僅檢測字典的目錄而不是檢測的值!

result = '22' in list

print (results)

 

#身份檢測運算

 

is  檢測兩個變數的資料是否是同一個資料

is not  檢測兩個變數的資料是否不是同一個資料

 

'''

以下內容根據python版本的不同,結果可能有出入

整數:-5 ~ 正無窮  值相同id就相同

浮點數: 0 ~ 正無窮  值相同id就相同

布林值:值相同id就相同

複數:都不同

字串:只要內容相同id就相同

列表,元組,字典,集合 都不同

no1 = -5       no2 = -5

result = no1 is no2

print (result)

#以下寫法  身份檢測 ID永遠相同

no1 = no2 = -100

#print (id(no1))

#print (id(no2))

result = no1 is no2

print (result)

運算優先順序的問題

寫程式遇到優先順序問題可以使用()解決,更方便,也更易讀

 

#型別檢測的推薦方法

var = 10

#該方式僅適用於學習過程種的測試,程式碼開發種不要使用!

print(type(變數))

#isinstance () 檢測資料是否是制定的某種資料型別

result = isinstance(變數,檢測的型別)# 不要加''

print(result)   

#檢測資料是否是整型或者浮點型

var=11

result = isinstance(vr,(int,float))

#result = isinstance(變數,(檢測的型別,檢測的型別))

print(result)

 

 

 





 

 

 

 

 

 

 

    

 

 

 

 

 

 

相關文章