Python程序的組成
- 程序由模塊組成
- 模塊由語(yǔ)句荣回,函數(shù)吸奴,類谦屑,數(shù)據(jù)等組成
- 語(yǔ)句包含表達(dá)式
- 表達(dá)式建立并處理數(shù)據(jù)對(duì)象
Python注釋
以 #
號(hào)開頭吧慢,至直行尾
數(shù)字
整型 int
整型數(shù)是不帶小數(shù)部分的數(shù)字涛漂。包括自然數(shù),0,及負(fù)數(shù)检诗。如:-5,10000,0
等匈仗。
整型數(shù)的字面值表示方式
- 十進(jìn)制表示。例如:
10,20,1000,99999999
- 二進(jìn)制表示(0b開頭,后跟0~1)逢慌。例如:
0b111,0b101,0b11111111
- 八進(jìn)制方式表示(0o開頭悠轩,后跟0~7)。例如:
0o177
- 十六進(jìn)制表示(0x開頭,后跟0~9, A~F,a-f)攻泼。例如:
0x11,0xFF
進(jìn)制轉(zhuǎn)換:
- 十進(jìn)制(逢十進(jìn)一)
- 二進(jìn)制(逢二進(jìn)一)
- 八進(jìn)制(逢八進(jìn)一)
- 十六進(jìn)制(逢十六進(jìn)一)
練習(xí)
- 計(jì)算0xFFFF表示多少火架?
# 65535
- 計(jì)算0b1001表示多少鉴象?
# 9
- 計(jì)算0o71表示多少?
# 57
- 把13轉(zhuǎn)為二進(jìn)制表示何鸡?
# 0b1101
- 把18轉(zhuǎn)為十六進(jìn)制表示纺弊?
# 0x12
浮點(diǎn)型 float
浮點(diǎn)型數(shù)是帶有小數(shù)部分的數(shù)字。
表示方式
- 小數(shù)形式骡男。例如:
3.14,3.1,3.,0.14,.14
- 科學(xué)計(jì)數(shù)法,格式:
小數(shù) e/E(正負(fù)號(hào)) 指數(shù)
淆游。例如:6.18E-1,2.9979e8
復(fù)數(shù) complex
分為兩部分:實(shí)部(real)和虛部(image),虛部以j或J結(jié)尾。
表示方式
1j, (2j), 1+1J, 3-4J, (-100+100J)
布爾類型數(shù) bool
用來表示真和假兩個(gè)狀態(tài)的類型隔盛。
表示方式
-
True
表示真(條件滿足或成立),值為1
犹菱。 -
Flase
表示假(條件不滿足或不成立),值為0
。
數(shù)值對(duì)象的構(gòu)造(創(chuàng)建)函數(shù)
-
float(obj)
用字符串或數(shù)字轉(zhuǎn)換為浮點(diǎn)數(shù)吮炕,如果不能出參數(shù)則返回0
-
int(x,base=10)
或int(x=0)
用數(shù)字或字符串轉(zhuǎn)換為整數(shù)腊脱,如果不給出參數(shù),則返回0
,base
是指字符串參數(shù)的進(jìn)制 -
complex(r=0.0, i=0.0)
用數(shù)字創(chuàng)建一個(gè)復(fù)數(shù)(實(shí)部為r
, 虛部為i
) -
bool(x)
用x
創(chuàng)建一個(gè)布爾值(True/False
)- 返回假值的情況
None
False
0
0.0
0j
- 空字符串
-
()
空元組 -
[]
空列表 -
{}
空字典 -
set()
空集合
- 返回假值的情況
字符串
作用
用來記錄文本(文字)信息
字符串的表示方法
在非注釋中龙亲,凡是用引號(hào)括起來的部分都是字符串
- 單引號(hào) `
- 雙引號(hào) "
- 三單引號(hào) '''
- 三雙引號(hào) """
空字符串的字面值表示方式
'' # 單引號(hào)
"" # 雙引號(hào)
'''''' # 三單引號(hào)
"""""" # 三雙引號(hào)
非空字符串的字面值表示方式
'hello' # 單引號(hào)
"hello" # 雙引號(hào)
'''hello''' # 三單引號(hào)
"""hello""" # 三雙引號(hào)
單引號(hào)和雙引號(hào)的區(qū)別
- 單引號(hào)內(nèi)的雙引號(hào)不算結(jié)束符
- 雙引號(hào)內(nèi)的單引號(hào)不算結(jié)束符
三引號(hào)字符串
作用
- 三引號(hào)字符串的換行會(huì)自動(dòng)轉(zhuǎn)換為換行符
\n
- 三引號(hào)內(nèi)可以包含單引號(hào)和雙引號(hào)
轉(zhuǎn)義序列代表特殊字符
字符串字面值中陕凹,用字符反斜杠 \
后跟一些字符代表一個(gè)字符
字符串中的轉(zhuǎn)義字符表
-
\'
一個(gè)單引號(hào) -
\"
一個(gè)雙引號(hào) -
\\
代表一個(gè)反斜杠 -
\n
換行 -
\r
返回光標(biāo)至行首 -
\f
換頁(yè) -
\t
水平制表符 -
\v
垂直制表符 -
\b
倒退 -
\0
空字符,字符值為0 -
\0oo
oo 為兩位八進(jìn)制表示的字符 -
\xXX
XX為兩位十六進(jìn)制表示的字符 -
\uXXXX
Unicode16的十六進(jìn)制表示的字符 -
\UXXXXXXXX
Unicode32的十六進(jìn)制表示的字符
字符串的運(yùn)算
+
,+=
用于字符串的拼接-
*
,*=
用于生成重復(fù)的字符串x = 'abcd' + 'efg' print(x) # abcdefg x += '123' print(x) # abcdefg123 x = '123' y = x * 2 # '123123' x *= 3 # '123123123' x = 3 x *= '123' # x = '123123123'
raw字符串
作用
讓轉(zhuǎn)義字符 \
無效
字面值格式
r'字符串內(nèi)容'
r"字符串內(nèi)容"
r'''字符串內(nèi)容'''
-
r"""字符串內(nèi)容"""
a = 'C:\newfile\test.py' print(a) # 'C:\newfile\test.py' print(len(a)) # 16 a = r'C:\newfile\test.py' print(a) # 18 print(len(a)) # 'C:\\newfile\\test.py'
字符串的比較運(yùn)算
小于
<
大于
>
等于
==
小于等于
<=
大于等于
>=
-
不等于
!=
'A' < 'B' # True 'B' < 'a' # True 'ABC' > 'AB' # True 'AD' < 'ABC' # False 'ABC' == 'abc' # False
字符串的索引操作
索引語(yǔ)法
字符串[整數(shù)表達(dá)式]
說明
Python序列都可以用索引(
index
)來訪問序列中的對(duì)象(元素)Python序列的正向索引是從
0
開始的,第二個(gè)索引為1
,最后一個(gè)索引為len(s)-1
-
Python序列的反向索引是從
-1
開始的,-1
代表最后一個(gè),-2
代表倒數(shù)第二個(gè)俱笛,第一個(gè)是-len(s)
s = 'ABCDE' print(s[0]) # A print(s[1]) # B print(s[4]) # E
空值 None
對(duì)象
表示不存在的特殊對(duì)象
作用
- 用來占位
- 用來變量解除綁定
表達(dá)式和運(yùn)算符
表達(dá)式 expression
由一個(gè)數(shù)字或數(shù)字和運(yùn)算符組成
作用
通常讓計(jì)算機(jī)做一些事情并返回結(jié)果
運(yùn)算符
算術(shù)運(yùn)算符
- 加法
+
- 減法
-
- 乘法
*
- 除法
/
- 除法得到的數(shù)是浮點(diǎn)數(shù)捆姜,不會(huì)丟棄小數(shù)部分
1/3 = 0.3333333333333333
4/2 = 2.0
- 求余
%
- 地板除
//
- 除的結(jié)果去掉小數(shù)部分向下取整
7//3=2
8//3=2
3.25//1.5=2.0
- 冪運(yùn)算
**
- 格式:
x ** y
,意為x
的y
次方 4 ** 2 = 16
3.0 ** 4.0 = 27
5.6 ** 1.418 = 11.506165654866916
運(yùn)算符的優(yōu)先級(jí)
基本輸入輸出函數(shù)
基本輸入函數(shù) input
作用
從標(biāo)準(zhǔn)輸入設(shè)備上讀取一個(gè)字符串(末尾的換行符會(huì)被刪除)
格式
input('提示字符串')
說明
返回輸入的字符串(僅python3)
基本輸出函數(shù) print
作用
將一系列的值以字符串形式輸出到標(biāo)準(zhǔn)輸出設(shè)備上,默認(rèn)為終端
格式
print(value, ..., sep=' ', end='\n')
-
sep
兩個(gè)值之間的分隔符迎膜,默認(rèn)為一個(gè)空格 -
end
輸出完畢后在流末尾自動(dòng)追加一個(gè)字符,默認(rèn)為換行符\n
變量 variable
用來綁定數(shù)據(jù)對(duì)象的標(biāo)識(shí)符
變量的命名規(guī)則
- 變量名必須為字母或下劃線開頭浆兰,后跟字母或下劃線或數(shù)字
- 不能使用Python的關(guān)鍵字命名
變量的命名示例
合法的變量名
a
,a1
,b
,bbb
,_aaa_
,_Abcdvara1b2c2
等
不合法的變量名
1a
,123
,$ABC
,+a
,-b
,#ab
,@ab
等
Python關(guān)鍵字
True
,False
,None
,is
,del
,if
,eli
等
賦值語(yǔ)句 statement
語(yǔ)法
變量名 = 表達(dá)式
變量名1 = 變量名2 = 表達(dá)式
變量名1 磕仅,變量名2,... = 序列
作用
用于創(chuàng)建變量并將變量綁定(或關(guān)聯(lián))在一個(gè)對(duì)象上
注意點(diǎn)
- 當(dāng)變量不存在時(shí)簸呈,創(chuàng)建該變量同時(shí)綁定在這個(gè)對(duì)象上
- 當(dāng)變量存在時(shí)榕订,改變此變量的綁定的對(duì)象
- 一個(gè)變量只能綁定一個(gè)對(duì)象
- 兩個(gè)變量可以同時(shí)綁定同一個(gè)對(duì)象
Python中關(guān)聯(lián)/綁定/引用的含義
- Python中變量沒有類型,關(guān)聯(lián)/綁定/引用都是指變量和一個(gè)對(duì)象的關(guān)聯(lián)關(guān)系
- 交互模式下查看變量的綁定關(guān)系:
help('__main__')
序列賦值
語(yǔ)法
變量名1,變量名2,... = 對(duì)象1,對(duì)象2...
變量名1,變量名2,... = [對(duì)象1,對(duì)象2...]
變量名1,變量名2,... = (對(duì)象1,對(duì)象2...)
經(jīng)典案例
問:已知有兩個(gè)變量:a = 10000
,b = 20000
,在不創(chuàng)建任何新的對(duì)象的情況下,如何讓a
和b
交換綁定的對(duì)象?
答: 序列賦值 a,b = b,a
a = 10000
b = 20000
print(a) # 10000
print(b) # 20000
a,b = b,a
print(a) # 20000
print(b) # 10000
is/is not
運(yùn)算符
語(yǔ)法
x is y
x is not y
-
is not
與is
相反
作用
判斷兩個(gè)對(duì)象是否綁定同一個(gè)對(duì)象,如果是同一個(gè)對(duì)象返回Ture
,否則返回False
a = 1000
b = 1000
a is b # False
c = 1
d = 1
c is d # True
為什么上述的結(jié)果不同呢蜕便?
小整數(shù)對(duì)象池
CPython中整數(shù)-5 ~ 256
永遠(yuǎn)保存在小整數(shù)池中,不會(huì)釋放并可以重復(fù)使用
id
函數(shù)與 del
語(yǔ)句
id
函數(shù)
作用
返回一個(gè)對(duì)象在內(nèi)存中的地址
格式
id(對(duì)象)
del
語(yǔ)句
作用
用于刪除變量劫恒,同時(shí)刪除與對(duì)象的綁定關(guān)系。如果可能則釋放對(duì)象
格式
del 變量名
Python的內(nèi)存管理和引用計(jì)數(shù)
每個(gè)對(duì)象都會(huì)記錄有幾個(gè)變量引用自身轿腺,當(dāng)引用的數(shù)量為0時(shí)两嘴,則對(duì)象被銷毀,此種自動(dòng)化內(nèi)存管理的方式叫引用計(jì)數(shù)族壳。
復(fù)合賦值算術(shù)運(yùn)算符
-
y += x
等同于y = y + x
-
y -= x
等同于y = y - x
-
y *= x
等同于y = y * x
-
y /= x
等同于y = y / x
-
y %= x
等同于y = y % x
-
y //= x
等同于y = y // x
-
y **= x
等同于y = y ** x
比較運(yùn)算符
- 小于
<
- 大于
>
- 等于
==
- 小于等于
<=
- 大于等于
>=
- 不等于
!=
語(yǔ)法
左表達(dá)式 < 右表達(dá)式
說明
比較運(yùn)算符返回布爾類型的值
10 < 20 # True
1 + 10 > 2 + 8 # True
10 < 20 <= 30 # True
內(nèi)建函數(shù)
內(nèi)建數(shù)值型函數(shù)
abs(x)
取x
的絕對(duì)值round(number[, ndigits])
對(duì)數(shù)值進(jìn)行四舍五入,ndigits
是小數(shù)向右取整的位數(shù),負(fù)數(shù)表示向左取整pow(x, y, z=None)
相當(dāng)于x ** y
或x ** y % z
divmod(x,y)
分別取商和余數(shù)-
sum(iterable[,start])
計(jì)算可迭代對(duì)象iterable
的和,結(jié)果再加上start
的值abs(-6) # 6 round(1.23456,4) # 1.2346 pow(2,3) # 8 pow(2,3,4) # 0 divmod(10,5) # (2,0) sum([1,2,3]) # 6 sum([1,2,3],1) # 7
其他函數(shù)
-
help()
查看幫助信息 -
dir()
查看對(duì)象中的屬性憔辫、方法等 -
ord()
得到一個(gè)字符所對(duì)應(yīng)的數(shù)字編碼 -
chr()
實(shí)現(xiàn)由數(shù)字編碼向字符的轉(zhuǎn)化 -
type()
查看對(duì)象的類型;不會(huì)認(rèn)為子類是一種父類類型 -
isinstance()
查看對(duì)象類型;會(huì)認(rèn)為子類是一種父類類型
語(yǔ)句 statement
語(yǔ)句是由一些表達(dá)式等組成,通常一條語(yǔ)句可以獨(dú)立執(zhí)行來完成一部分事情并形成結(jié)果
語(yǔ)法
- 一條語(yǔ)句建議寫在一行內(nèi)
- 多條語(yǔ)句寫在一行內(nèi)需要用分號(hào)分開
換行
- 顯示換行:
\
- 隱藏式換行:
- 所有的括號(hào)內(nèi)換行仿荆,稱為隱式換行
- 括號(hào):
(),[],{}
if
語(yǔ)句
if
語(yǔ)句基本語(yǔ)法
作用
讓程序根據(jù)條件選擇性的執(zhí)行某條語(yǔ)句或某些語(yǔ)句
說明
if
語(yǔ)句又叫條件語(yǔ)句贰您,也叫分支語(yǔ)句
語(yǔ)法
if 真值表達(dá)式1:
語(yǔ)句塊1
elif 真值表達(dá)式2:
語(yǔ)句塊2
elif 真值表達(dá)式3:
語(yǔ)句塊3
...
else:
語(yǔ)句塊4
語(yǔ)法說明
-
elif
子句可以有0個(gè),1個(gè)或多個(gè) -
else
子句可以有0個(gè)或1個(gè)且只能放在此if
語(yǔ)句的最后 -
if
語(yǔ)句內(nèi)部的語(yǔ)句通常要以4個(gè)空格的縮進(jìn)來表示包含關(guān)系坏平,相同的縮進(jìn)格式代表相同的所屬級(jí)別
if
語(yǔ)句的真值表達(dá)式
if 100:
print("真值")
# 等同于
if bool(100):
print("真值")
if
語(yǔ)句嵌套
-
if
語(yǔ)句本身是由多條子句組成的一條復(fù)合語(yǔ)句 -
if
語(yǔ)句可以作為語(yǔ)句嵌套到另一個(gè)語(yǔ)句的內(nèi)部
條件表達(dá)式
表達(dá)式1 if 真值表達(dá)式 else 表達(dá)式2
作用
如果真值表達(dá)式的布爾環(huán)境值為True
,則執(zhí)行表達(dá)式1并返回結(jié)果的引用,否則執(zhí)行表達(dá)式2并返回結(jié)果的引用
num = int(input('輸入一個(gè)數(shù):')) # -19
-num if num < 0 else num # 19
pass
語(yǔ)句
作用
- 通常用來填充語(yǔ)法空白
-
pass
語(yǔ)句又名空語(yǔ)句
語(yǔ)法
pass
布爾運(yùn)算
運(yùn)算符
布爾非操作 not
語(yǔ)法
not x
作用
對(duì)x
進(jìn)行布爾取值,如果bool(x)
為True
,則返回False
, 否則返回True
not True # False
not False # True
not 100 # False
布爾與操作 and
語(yǔ)法
x and y
锦亦,x
,y
代表表達(dá)式
作用
優(yōu)先返回假值對(duì)象
-
當(dāng)
bool(x)
的值為False
時(shí)舶替,返回x
,否則返回y
True and True # True True and False # False False and True # False False and False # False 100 and 200 # 200 0.0 and 200 # 0.0
布爾或操作 or
語(yǔ)法
x or y
作用
優(yōu)先返回真值對(duì)象
-
當(dāng)
x
為True
時(shí)返回x
,否則返回y
True or True # True True or False # True False or True # True False or False # False 100 or 200 # 100 100 or 0.0 # 100 0 or 200 # 200 0 or 0.0 # 0.0
正負(fù)號(hào)運(yùn)算符
語(yǔ)法
+ 表達(dá)式
- 表達(dá)式
in / not in
運(yùn)算符
作用
用于序列,字典杠园,集合中坎穿,用于判斷某個(gè)值是否存在于容器中,如果存在則返回True
, 否則返回False
格式
對(duì)象 in 容器
s = 'welcome to tarena!'
'to' in s # True
'weimingze' in s # False
切片 slice
作用
從字符串序列中取出一部分相應(yīng)的元素重新組成一個(gè)字符串
語(yǔ)法:
字符串[(開始索引b):(結(jié)束索引e)(:(步長(zhǎng)s))]
注: () 內(nèi)括起的部分代表可以省略
說明
- 開始索引是切片開始切下的位置
0
代表第一個(gè)元素,-1
代表最后一個(gè)元素 - 結(jié)束索引是切片的終止索引(但不包含終止索引)
- 步長(zhǎng)是切片每次獲取完當(dāng)前索引后移動(dòng)的方向和偏移量
沒有步長(zhǎng)返劲,相當(dāng)于取值完成后向后移動(dòng)一個(gè)索引的位置(默認(rèn)為
1
)當(dāng)步長(zhǎng)為正整數(shù)時(shí)玲昧,取正向切片:步長(zhǎng)默認(rèn)值為
1
, 開始索引默認(rèn)值為0
, 結(jié)束索引的默認(rèn)值為len(s)
-
當(dāng)步長(zhǎng)為負(fù)整數(shù)時(shí),取反向切片:反向切片時(shí)篮绿,默認(rèn)的起始位置為最后一個(gè)元素孵延,默認(rèn)終止位置為第一個(gè)元素的前一個(gè)位置
s = 'ABCDE' a = s[1:4] # a -> 'BCD' a = s[1:] # a -> 'BCDE' a = s[:2] # a -> 'AB' a = s[:] # a -> 'ABCDE' a = s[4:2] # a -> '' a = s[2:10000] # a -> 'CDE' 開始索引/結(jié)束索引可以越界 a = s[::2] # a -> 'ACE' a = s[1::2] # a -> 'BD' a = s[::-1] # a -> 'EDCBA' a = s[::-2] # a -> 'ECA' a = s[4:0:-2] # a -> 'EC'
Python3中常用的序列函數(shù):
len(seq)
返回序列的長(zhǎng)度max(x)
返回序列的最大值元素min(x)
返回序列的最小值元素sum(x)
返回序列中所有元素的和(元素必須是數(shù)值類型)any(x)
真值測(cè)試, 如果列表中其中一個(gè)值為真值則返回True,否則返回False-
all(x)
真值測(cè)試,如果列表中所有值為真值亲配,則返回True,只要有一個(gè)為假尘应,則返回Falses = "ABCD" print(len(s)) # 4 print(max(s)) # D print(min(s)) # A
字符串編碼轉(zhuǎn)換函數(shù)
-
ord(c)
返回一個(gè)字符串的Unicode編碼值 -
chr(i)
返回i這個(gè)值所對(duì)應(yīng)的字符
整數(shù)轉(zhuǎn)換為字符串函數(shù)
-
hex(i)
將整數(shù)轉(zhuǎn)換為十六進(jìn)制的字符串 -
oct(i)
將整數(shù)轉(zhuǎn)換為八進(jìn)制字符串 -
bin(i)
將整數(shù)轉(zhuǎn)換為二進(jìn)制字符串
字符串的構(gòu)造(創(chuàng)建)函數(shù)
-
str(obj='')
將對(duì)象轉(zhuǎn)換為字符串
字符串方法
常用的字符串方法
詳見1 [常用字符串方法](file:///C:/Users/iMing/Desktop/python_base_docs_html/str.html)
詳見2 Python中的字符串
字符串方法的調(diào)用語(yǔ)法
對(duì)象.方法名(方法傳參)
字符串格式化表達(dá)式
詳見 [格式化字符串](file:///C:/Users/iMing/Desktop/python_base_docs_html/str.html)
作用
生成一定格式的字符串
語(yǔ)法
- 格式字符串
%
參數(shù)值 - 格式字符串
%
(參數(shù)值1, 參數(shù)值2, ...) - 格式字符串中的
%
為占位符,占位符的位置將用參數(shù)值替換
占位符和類型碼之間的格式語(yǔ)法
% [格式語(yǔ)法] 類型碼
-
左對(duì)齊+
顯示正號(hào)0
補(bǔ)零寬度(整數(shù))
-
寬度.精度(整數(shù))
'%10d' % 123 # ' 123' '%-10d ' % 123 # '123 ' '%10s' % 'abc' # ' abc' '%-5s' % 'abc' # 'abc ' '%05d' % 123 # '00123' '%7.3f' % 3.1415926 # '003.142'