python基礎筆記1
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 回車 *表示回到當前行的開頭從新輸出 回車和回車鍵完全不同
回車鍵:\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)
---------------------
作者:DQSHJQ
來源:CSDN
原文:https://blog.csdn.net/DQSHJQ/article/details/79542889
版權宣告:本文為博主原創文章,轉載請附上博文連結!