Python筆記
- Python筆記
- 1.縮進報錯
- 2.多行語句
- 3.數據類型
- 4.數字類型(Number)
- 5.字符串類型(String)
- 6.isinstance和type的區別
- 8.字符串截取
- 9.List(列表)
- 10.Tuple(元組)
- 11.Set(集合)
- 12.Dictionary(字典)
- 13.Python數據類型轉換
- 14.python不支持switch 語句
- 15.python 複合布爾表達式計算採用短路規則
- 16.Python中沒有do...while循環
- 17.while … else
- 18.for … else
- 19.continue 語句是一個刪除的效果,他的存在是爲了刪除滿足循環條件下的某些不需要的成分
- 20.Python可以用 + 來連接字符串,但是不能混合不同類型的數據類型,例如字符串和整數
- 21.遍歷字典可以使用items()
- IPython magic命令
1.縮進報錯
IndentationError: unindent does not match any outer indentation level
2.多行語句
- 使用
\
進行多語句連接
例:
total = item_one + \
item_two + \
item_three
- 在
[]
,{}
,()
語句中換行不需要\
進行連接
例:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
3.數據類型
- Number(數字)
- String(字符串)
- List(列表)
- Tuple(元組)
- Sets(集合)
- Dictionary(字典)
不可變數據(四個):Number(數字)、String(字符串)、Tuple(元組)、Sets(集合);
可變數據(兩個):List(列表)、Dictionary(字典)。
4.數字類型(Number)
python中數字有四種類型:整數、布爾型、浮點數和複數。
- int (整型),如:1,爲長整型(沒有Python2 中的Long)
- float(浮點型),如:1 + 2j、1.1 + 2.2j
- bool(布爾型),值只能爲True或者False,分別對應int中的1和0
- complex(複數),複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
5.字符串類型(String)
- Python中單引號和雙引號使用完全相同(注:必須成對出現)
正確示範
print('Hello Python!')
print("Hello Python!")
錯誤示範
print('Hello Python!")
- 三引號可以指定多行字符串(”’和”“”效果相同,但需成對使用)
例:
str = '''
Hello
World
!
'''
print(str)
輸出結果
Hello
World
!
- 轉義字符
\
例:
print('Hello \n World \n !')
輸出結果
Hello
World
!
- 使用
r
取消轉義
例:
print(r'Hello \n World \n !')
輸出結果
Hello \n World \n !
- 按字面意義級聯字符串
例:
print("this " "is " "string")
輸出結果:
this is string
6.isinstance和type的區別
- type()不會認爲自子類是一種
- isinstance()會認爲子類是父類類型
7.Python2中沒有布爾類型,它用數字 0
表示 False
,用 1
表示 True
。到 Python3 中,把 True
和 False
定義成關鍵字
了,但它們的值還是 1
和 0
,它們可以和數字相加
8.字符串截取
變量[頭下標:尾下標]
str = 'Hello Python'
print(str[0:2]) # 輸出第一到第二個字符
print(str[:2]) # 輸出第一到第二個字符
print(str[0]) # 輸出第一個字符
print(str[3:6]) # 輸出第4到第5個字符
print(str[4:]) # 輸出第四到最後的所有字符
print(str[5:-2]) # 輸出第六到倒數第三個字符
print(str[-3:-1]) # 輸出倒數第三個字符到倒數第二個字符
print(str * 2) # 輸出兩遍str字符串
print(str + ' Test')# 輸出str和Test連接之後的字符串
輸出結果:
He
He
H
lo
o Python
Pyth
ho
Hello PythonHello Python
Hello Python Test
9.List(列表)
- 列表是寫在
[]
中用,
分隔開的元素列表 - Python中同一列表元素類型可以不相同,它支持數字,字符串,甚至可以包含列表(嵌套)
-List
和String
一樣,列表同樣可以被索引和截取,列表被截取後返回一個包含所需元素的新列表
- List中的元素是可以改變的
10.Tuple(元組)
- 元組是寫在
()
中用,
分隔開的元素列表 - 元組與列表相似,但元組中的元素不能修改
- 元組中的元素類型可以不同
- 元組與字符串類似,可以被索引且下標索引從0開始,-1 爲從末尾開始的位置。也可以進行截取
-tuple的元素不可改變,但它可以包含可變的對象,比如list列表
當定義的元組中只有一個元素時,需要在元素後加
,
例:
tup = (10,)
11.Set(集合)
- 集合是一個無需不重複的序列
- 基本功能是進行成員關係測試和刪除重複元素
- set可以進行集合運算
可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典
例:
set_1 = {'a', 'b','c','a'}
set_2 = set('abcabcdef')
print(set_1)
print(set_2)
if 'a' in set_1:
print('a 在 set_1集合中')
else:
print('a 不在 set_1集合中')
print(set_2- set_1) # set_2和set_1的差集
print(set_1 | set_2) # set_1和set_2的並集
print(set_1 & set_2) # set_1和set_2的交集
print(set_1 ^ set_2) # set_1和set_2中不同時存在的元素
輸出結果:
{'b', 'c', 'a'}
{'f', 'a', 'b', 'e', 'c', 'd'}
a 在 set_1集合中
{'f', 'd', 'e'}
{'f', 'a', 'b', 'e', 'c', 'd'}
{'b', 'c', 'a'}
{'e', 'f', 'd'}
12.Dictionary(字典)
- 字典是無序對象的集合
- 字典是一種映射類型,字典用
{}
標識,他是一個無序的key:value
(鍵值對)集合 - 列表和字典的區別在於:字典通過元素的鍵來存取,而不是通過偏移存取
key
(鍵)必須使用不可變類型
- 同一個字典中,
key
(鍵)必須是唯一
的
13.Python數據類型轉換
函數 | 描述 |
---|---|
int(x [,base]) | 將x轉換爲一個整數 |
float(x) | 將x轉換到一個浮點數 |
complex(real [,imag]) | 創建一個複數 |
str(x) | 將對象 x 轉換爲字符串 |
repr(x) | 將對象 x 轉換爲表達式字符串 |
eval(str) | 用來計算在字符串中的有效Python表達式,並返回一個對象 |
tuple(s) | 將序列 s 轉換爲一個元組 |
list(s) | 將序列 s 轉換爲一個列表 |
set(s) | 轉換爲可變集合 |
dict(d) | 創建一個字典。d 必須是一個序列 (key,value)元組。 |
frozenset(s) | 轉換爲不可變集合 |
chr(x) | 將一個整數轉換爲一個字符 |
ord(x) | 將一個字符轉換爲它的整數值 |
hex(x) | 將一個整數轉換爲一個十六進制字符串 |
oct(x) | 將一個整數轉換爲一個八進制字符串 |
14.python
不支持switch
語句
所以多個條件判斷,只能用 elif
來實現,如果判斷需要多個條件需同時判斷時,可以使用 or
(或),表示兩個條件有一個成立時判斷條件成功;使用 and
(與)時,表示只有兩個條件同時成立的情況下,判斷條件才成功。
15.python
複合布爾表達式計算採用短路規則
如果通過前面的部分已經計算出整個表達式的值,則後面的部分不再計算。下列代碼會正常執行
a=0
b=1
if ( a > 0 ) and ( b / a > 2 ):
print "yes"
else :
print "no"
下列代碼會報錯
a=0
b=1
if ( a > 0 ) or ( b / a > 2 ):
print "yes"
else :
print "no"
16.Python
中沒有do...while
循環
17.while … else
在while
循環條件爲 false
時執行 else
語句塊
18.for … else
for
中的語句和普通的沒有區別,else
中的語句會在循環正常執行完(即 for
不是通過 break
跳出而中斷的)的情況下執行,while … else
也是一樣。
19.continue
語句是一個刪除的效果,他的存在是爲了刪除滿足循環條件下的某些不需要的成分
20.Python可以用 +
來連接字符串,但是不能混合不同類型的數據類型,例如字符串和整數
例:
str = 'hello ' + 1
str
輸出結果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-f17b8b8b2679> in <module>()
----> 1 str = 'hello ' + 1
2 str
TypeError: must be str, not int
21.遍歷字典可以使用items()
例:
ages = {
"Peter": 10,
"Isabel": 11,
"Anna": 9,
"Thomas": 10,
"Bob": 10,
"Joseph": 11,
"Maria": 12,
"Gabriel": 10,
}
for name, age in ages.items():
print(name, age)
輸出結果:
Peter 10
Isabel 11
Anna 9
Thomas 10
Bob 10
Joseph 11
Maria 12
Gabriel 10
IPython magic命令
ipython解釋器提供了很多以百分號%開頭的magic命令,這些命令很像linux系統下的命令行命令(事實上有些是一樣的)。
例:
%lsmagic
輸出結果:
Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.