變量和簡(jiǎn)單類型
- 單行注釋和多行注釋
- Python是弱類型語(yǔ)言
- Python變量的特征
- Python變量命名規(guī)則
- Python關(guān)鍵字和內(nèi)置函數(shù)
- Python支持的各種數(shù)值類型
- Python字符串入門
- 拼接字符串的方法
- repr和字符串
- 使用input和raw_input 獲取用戶輸入
- 長(zhǎng)字符串和原始字符
- 字符串格式化
- 字符串的相關(guān)方法
- Python的賦值運(yùn)算符
- Python的算術(shù)運(yùn)算符
- Python的位運(yùn)算符
- Python的擴(kuò)展后的賦值運(yùn)算符
- Python的索引運(yùn)算符
- Python的比較運(yùn)算符
- Python的邏輯運(yùn)算符
- Python的三目運(yùn)算符
- Python的in運(yùn)算符
單行注釋和多行注釋
#這是單行注釋
'''
這是
多行
注釋
'''
變量
Python 使用等號(hào)“=”作為賦值運(yùn)算符 ,例如
a = 20
這個(gè)過(guò)程就被稱為賦值:將 20 賦值給變量a
Python是弱類型語(yǔ)言
Python 門弱類型語(yǔ)言 洽议,弱類型包含兩方面的含義
①所有的變量無(wú)須聲明即可使用,或者說(shuō)對(duì)從未用過(guò)的變量賦值就是聲明了應(yīng)變量;
②變量的數(shù)據(jù)類型可以隨時(shí)改變,同一個(gè)變量可以一會(huì)兒是數(shù)值型靴庆,一會(huì)兒是字符串型橡淑。
a = 20
#這時(shí)a是int類型
a = 'r'
type(a)
#<class ’str’ > a又變成str類型
使用 print 函數(shù)輸出變量
print()函數(shù)可以輸出一個(gè)或多個(gè)變量
user_name = 'Char'
user_age = 8
#同時(shí)輸出多個(gè)變量和字符串
print ('讀者名 ', user_name ,'年齡 :', user_age)
#讀者名: Char 年齡: 8
如果讀者希望改變默認(rèn)的分隔符掠哥,可使用sep進(jìn)行設(shè)置
print('讀者名:', user_name, '年齡:', user_age, sep='$')
#讀者名:$Char$年齡:$8
在默認(rèn)情況下, print函數(shù)輸出之后自動(dòng)換行秃诵,這是因?yàn)?print函數(shù)的end參數(shù)的默認(rèn)值是“\n ”续搀,這個(gè)就代表了換行,如果希望 print函數(shù)輸出之后不會(huì)換行菠净,將end參數(shù)修改為" "
user_name = 'Char'
user_age = 8
print('讀者名:', user_name, end= ' ')
print('年齡:', user_age)
#讀者名: Char 年齡: 8
#沒有換行
print('讀者名:', user_name)
print('年齡:', user_age)
#讀者名: Char
#年齡: 8
#自動(dòng)換行
file參數(shù)指定print函數(shù)的輸出目標(biāo)目代, file參數(shù)的默認(rèn)值為sys.stdout,該默認(rèn)值代表了系統(tǒng)標(biāo)準(zhǔn)輸出嗤练,也就是屏幕榛了,因此 print()函數(shù)默認(rèn)輸出到屏幕。如果改變file參數(shù)值輸出將到特定文件中
f = open( 'first/novel/threekingdom.txt', 'w', encoding = 'utf-8')
print('滄海月明珠有淚', file=f)
print('藍(lán)回日暖玉生煙', file=f)
f.close()
#打開.txt文件確認(rèn)煞抬,文件內(nèi)如下兩行文字
# 滄海月明珠有淚
# 藍(lán)回日暖玉生煙
變量的命名規(guī)則
Python是區(qū)分大小寫的 霜大,因此abc,Abe 是兩個(gè)不同的標(biāo)識(shí)符
①標(biāo)識(shí)符可以由字母革答、數(shù)字战坤、下畫線組成,其中數(shù)字不能開頭
②標(biāo)識(shí)符不能是Python的關(guān)鍵字残拐,但可以包含關(guān)鍵字途茫。
③標(biāo)識(shí)符不能包含空格
abc_xyz # 合法。
HelloWorld # 合法溪食。
abc # 合法
xyz#abc # 不合法囊卜,標(biāo)識(shí)符中不允許出現(xiàn)“#”號(hào)。
7abc # 不合法栅组,標(biāo)識(shí)符不允許數(shù)字開頭雀瓢。
Python的關(guān)鍵字和內(nèi)置函數(shù)
①如果開發(fā)者使用關(guān)鍵字作為變量名, Python解釋器會(huì)報(bào)錯(cuò)玉掸。
②如果開發(fā)者使用內(nèi)置函數(shù)的名字作為變量名刃麸, Python解釋器不會(huì)報(bào)錯(cuò),只是該內(nèi)置函數(shù)
就被這個(gè)變量覆蓋了司浪,該內(nèi)置函數(shù)就不能使用了泊业。
#導(dǎo)入 keyword 模塊
import keyword
#顯示所有關(guān)鍵字
keyword.kwlist
數(shù)值類型
- 整型
Python的整型支持各種整數(shù)值
#定義變量 ,賦值為 56
a = 56
print(a)
#為 賦值一個(gè)大整數(shù)
a = 9999999999999999999999
print(a)
# type ()函數(shù)用于返回變量的類型
print (type (a))
#<class 'int'>
Python的整型支持None值(空值)
a = None
print(a)
#None
print(type(a))
#<class 'NoneType'>
Python的整型數(shù)值有四種表示形式:
十進(jìn)制形式:最普通的整數(shù)就是十進(jìn)制形式的整數(shù)
二進(jìn)制形式:以0b或0B開頭的整數(shù)就是二進(jìn)制形式的整數(shù)
八進(jìn)制形式:以0o或0O開頭的整數(shù)就是八進(jìn)制形式的整數(shù)
十六進(jìn)制形式:以0x或0X開頭的整數(shù)就是十六進(jìn)制形式的整數(shù)啊易,其中1015分別以af來(lái)表示
valuel1 = 0x13
valuel2 = 0XaF
print('valuel1的值為:', valuel1)
#valuel1的值為: 19
print('valuel2的值為:', valuel2)
#valuel2的值為: 175
bin_val = 0b111
print('bin_val的值為:', bin_val)
#bin_val的值為: 7
oct_val = 0o54
print('oct_val的值為:', oct_val)
#oct_val的值為: 44
為了提高數(shù)值(包括浮點(diǎn)型)的可讀性吁伺, Python 3.x允許為數(shù)值(包括浮點(diǎn)型)增加下畫線作為分隔符
one_million = 1_000_000
print(one_million)
#1000000
- 浮點(diǎn)型
Python的浮點(diǎn)型有兩種形式
①十進(jìn)制形式:這種形式就是平常簡(jiǎn)單的浮點(diǎn)數(shù),如:3.14认罩,浮點(diǎn)數(shù)必須包含一個(gè)小數(shù)點(diǎn),否則會(huì)被當(dāng)成整數(shù)類型處理
②科學(xué)計(jì)數(shù)形式:如:5.12e2(5.12*10^2)只有浮點(diǎn)型數(shù)值才可以用科學(xué)計(jì)數(shù)形式表達(dá)
另外续捂,Python不允許除以0垦垂,不管是整型值還是浮點(diǎn)型值
afl = 5.2345556
print(afl)
#5.2345556
af2 = 25.2345
print(af2)
#25.2345
f1= 5.12e2
print(f1)
#512.0
f2 = 5e3
print(f2, type(f2))
#5000.0 <class 'float'>
- 復(fù)數(shù)
Python支持復(fù)數(shù),復(fù)數(shù)的虛部用j或者J來(lái)表示
(如果需要在程序中對(duì)復(fù)數(shù)進(jìn)行計(jì)算牙瓢,可導(dǎo)入cmath庫(kù)劫拗,該庫(kù)包含各種支持復(fù)數(shù)運(yùn)算的函數(shù))
a1 = 3 + 0.2j
print(a1, type(a1))
#(3+0.2j) <class 'complex'>
a2 = 4 - 0.1j
print(a1 + a2)
#(7+0.1j)
import cmath
a3 = cmath.sqrt(-1)
print(a3)
#1j
- 字符串入門
1.字符串和轉(zhuǎn)義字符
字符串的意思就是‘一串字符’,比如‘hello word’是一個(gè)字符串矾克,‘how old are you’也是一個(gè)字符串页慷,Python要求字符串必須用‘’或“”括起來(lái)。
如果字符串內(nèi)容本身包含了單引號(hào)或雙引號(hào)胁附,此時(shí)就需要進(jìn)行特殊處理
①使用不同的引號(hào)將字符串括起來(lái)
②對(duì)引號(hào)進(jìn)行轉(zhuǎn)義
str3 = 'I'm a coder'
上面的字符串中包含了單引號(hào)酒繁,此時(shí)python會(huì)將字符串的單引號(hào)與第一個(gè)單引號(hào)號(hào)配對(duì),這樣就會(huì)把I當(dāng)成字符串捉蚤,而后面的m a coder 就變成了多余的內(nèi)容猴贰,從而導(dǎo)致語(yǔ)法錯(cuò)誤蹬音。
為了避免上述情況
str3 = “I'm a coder”
上面代碼使用雙引號(hào)將字符串括起來(lái),此時(shí)Python就會(huì)把字符串中的單引號(hào)當(dāng)成字符串內(nèi)容郎哭,而不是和字符串開始的引號(hào)配對(duì)
也可以使用單引號(hào)將字有串括起來(lái)
str4 = '"Spring is here,let us jam菇存!"夸研,said woodchuck'
或者使用轉(zhuǎn)義字符
str5 = '"we are scared, Let\' s hide in the shade ", says the bird '
2.拼接字符串
如果直接將兩個(gè)字符串緊挨著謝在一起,Python就會(huì)自動(dòng)拼接他們
str = "hey,"'charlie'
print(str)
#hey,charlie
上面的這種寫法只是字符串的特殊方法依鸥,不能用于真正的字符串拼接亥至,Python使用加號(hào)來(lái)實(shí)現(xiàn)字符串拼接
s1 = 'python'
s2 = ' is funny'
s = s1 + s2
print(s)
# python is funny
3.repr 和字符串
Python不允許數(shù)字和字符串直接拼接,必須要把數(shù)字轉(zhuǎn)化成字符串
須先將數(shù)值轉(zhuǎn)換成字符串
為了將數(shù)值轉(zhuǎn)換成字符串,使用 str()或 repr() 函數(shù)
x = '這本書的價(jià)格是:'
y = str(98)
print(x+y)
# 這本書的價(jià)格是:98
y = repr(98)
print(x+y)
# 這本書的價(jià)格是:98
str是Python內(nèi)置的類型抬闯,repr是個(gè)函數(shù)井辆。
repr 可以以Python 表達(dá)式的形式來(lái)表示值。
st = ' I will play my fife '
print(st)
print(repr(st))
# I will play my fife
# ' I will play my fife '
通過(guò)上面的輸出可以看出溶握,如果直接打印輸出字符串杯缺,只能看到字符串的內(nèi)容,沒有引號(hào)睡榆,而使用repr對(duì)字符串進(jìn)行處理后輸出萍肆,將可以看到帶引號(hào)的字符串,這就是字符串的Python的表達(dá)式形式
4.使用input和raw_input(Python2.X)
input將輸入的內(nèi)容放入字符串胀屿,因此不論輸入任何內(nèi)容塘揣,都返回一個(gè)字符串
s = input("輸入一個(gè)數(shù)字:")
#8
print(s)
print(type(s))
# 8
# <class 'str'>
5.長(zhǎng)字符串
前面介紹多行注釋時(shí)提到使用''' ''' 引號(hào)(單引號(hào)、雙引號(hào)都行)來(lái)包含多行注釋內(nèi)容宿崭,其實(shí)這是長(zhǎng)字符串寫法亲铡,只是由于在長(zhǎng)字符串中可以放置任何內(nèi)容,包括放置單引號(hào)葡兑、雙引號(hào)都可以奖蔓,如果所定義的長(zhǎng)字符串沒有賦值給任何變量,那么這個(gè)字符串就相當(dāng)于被解釋器忽略了讹堤,也就相當(dāng)于注釋掉了吆鹤。
s = '''
a,
b,
ggg
gggg
ggg
'''
print(s)
# a,
# b,
# ggg
# gggg
# ggg
Python 還允許使用轉(zhuǎn)義字符\ 換行符進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義之后的換行符不會(huì)“中斷”字符串
s = 'The quick brown fox\
jumps over the lazy'
print(s)
# The quick brown foxjumps over the lazy
6.原始字符串
因?yàn)榉葱本€有特殊意義洲守,當(dāng)字符串中出現(xiàn)反斜線時(shí)就需要轉(zhuǎn)義疑务,如:G:\publish\coes\02\2.4,就要寫成G:\publish\coes\02\2.4,這樣寫比較麻煩,
我們以“r ”為原始字符串開頭 原始字符串就不會(huì)把反斜線當(dāng)成特殊字符處理了
s = r'G:\publish\coes\02\2.4'
print(s)
#G:\publish\coes\02\2.4
如果原始字符串中包含引號(hào)梗醇,程序同樣需要對(duì)引號(hào)進(jìn)行轉(zhuǎn)義知允,但是不能使用 \ 來(lái)轉(zhuǎn)義
s = r' "Let \' s go", said Charlie'
print(s)
# "Let \' s go"叙谨, said Charlie
使用 \ 轉(zhuǎn)義的輸出是直接把 \打印出來(lái)了
7.bytes
字符串(str)由多個(gè)字符組成廊镜, 以字符為單位進(jìn)行操作, byte 是由多個(gè)字節(jié)組成唉俗,以字節(jié)為單位進(jìn)行操作
bytes和str 除操作的數(shù)據(jù)單元不同之外嗤朴,它們支持的所有方法都基本相同, bytes 也是不可變序列
bytes 保存的就是原始的字節(jié)(二進(jìn)制格式)數(shù)據(jù)虫溜,因此 bytes 對(duì)象可用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù) 雹姊,也可用于存儲(chǔ)各種二進(jìn)制格式的文件
- 如果字符串內(nèi)容都是 ASCII 字符,則可以通過(guò)直接在字符串之前添加來(lái)構(gòu)建字節(jié)串值
- 調(diào)用 bytes函數(shù)(其實(shí)是 bytes 構(gòu)造方法)將字符串按指定字符集轉(zhuǎn)換成字節(jié)串
- 如果不指定字符集衡楞,默認(rèn)使用 UTF 字符集吱雏。
創(chuàng)建一個(gè)空的bytes值
b2 = b''
print(b2)
print(type(b2))
# b''
# <class 'bytes'>
通過(guò)前綴b指定hello為bytes類型的值
b2 = b'hello'
print(b2)
print(type(b2))
# b'hello'
# <class 'bytes'>
調(diào)用bytes方法將字符串改成bytes類型的值
b3 = bytes('今天是星期二', encoding ='UTF-8')
print(type(b3))
# <class 'bytes'>
利用字符串的 encode 方法編碼成 bytes 敦姻,默認(rèn)使用 UTF-8 字符集
b4 = '今天是星期二'.encode('UTF-8')
print(b4)
#b'\xe4\xbb\x8a\xe5\xa4\xa9\xe6\x98\xaf\xe6\x98\x9f\xe6\x9c\x9f\xe4\xba\x8c'
(將 bytes 對(duì)象解碼成字符串 默認(rèn)使用 UTF 進(jìn)行解碼)
在Python3中,str類型的對(duì)象都是Unicode歧杏,因此對(duì)于str類型的對(duì)象只有encode方法镰惦,沒有decode方法(若運(yùn)行,會(huì)報(bào)錯(cuò))犬绒。
- 深入使用字符串
1.轉(zhuǎn)義字符
中間沒有空格
轉(zhuǎn)義字符 | 說(shuō)明 |
---|---|
\b | 退格 |
\n | 換行 |
\t | 制表 |
\r | 回車 |
\ ' | 單引號(hào) |
\ '' | 雙引號(hào) |
\ \ | 反斜杠 |
s = 'Hello\nCharle\nGood\nMorning'
print(s)
# Hello
# Charle
# Good
# Morning
s2 = '商品名 \t\t 單價(jià)\t\t數(shù)量\t\t總價(jià)'
s3 = '瘋狂Java講義\t l08 \t\t2 \t\t216'
print(s2)
print(s3)
# 商品名 單價(jià) 數(shù)量 總價(jià)
# 瘋狂Java講義 l08 2 216
2.字符串格式化
使用%對(duì)各類型的數(shù)據(jù)進(jìn)行格式化輸出
price = 108
print('the book’s price is %s' % price)
# the book’s price is 108
此代碼分為三部分:
第一部分是格式旺入,字符串(它相當(dāng)于字符串模板),該格式化字符串中包含一個(gè)%s 占位符凯力,它會(huì)被第三部分的變量或表達(dá)式的值代替茵瘾,第二部分部分固定使用%作為分隔符。
格式化字符串中的%s被稱為轉(zhuǎn)換說(shuō)明符
如果格式化字符串包含多個(gè)占位符咐鹤,第三部分也應(yīng)該對(duì)應(yīng)地提供多個(gè)變量拗秘,并且使用圓括號(hào)將這些變量括起來(lái)
name = 'Dive'
age = 45
print('%s的年齡是%s'%(name, age))
#Dive的年齡是45
也可以使用如下方法(3.6以上版本)
print(f'{name}的年齡是{age}')
轉(zhuǎn)換說(shuō)明符
注意:二進(jìn)制是0b開頭,八進(jìn)制是0o開頭祈惶,十六進(jìn)制是0x開頭
轉(zhuǎn)換說(shuō)明符 | 說(shuō)明 |
---|---|
i/d | 將整數(shù)雕旨、浮點(diǎn)數(shù)轉(zhuǎn)換成十進(jìn)制表示,并將其格式化到指定位置 |
o | 將整數(shù)捧请、浮點(diǎn)數(shù)轉(zhuǎn)換成八進(jìn)制表示凡涩,并將其格式化到指定位置 |
x | 將整數(shù)、浮點(diǎn)數(shù)轉(zhuǎn)換成十六進(jìn)制表示血久,并將其格式化到指定位置 |
e | 將整數(shù)突照、浮點(diǎn)數(shù)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法表示帮非,并將其格式化到指定位置(小寫e) |
E | 將整數(shù)氧吐、浮點(diǎn)數(shù)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法表示,并將其格式化到指定位置(小寫E) |
f | 將整數(shù)末盔、浮點(diǎn)數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)表示筑舅,并將其格式化到指定位置(默認(rèn)小數(shù)點(diǎn)后保留6位) |
F | 將整數(shù)、浮點(diǎn)數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)表示陨舱,并將其格式化到指定位置(默認(rèn)小數(shù)點(diǎn)后保留6位) |
g | 自動(dòng)調(diào)整將整數(shù)翠拣、浮點(diǎn)數(shù)轉(zhuǎn)換成浮點(diǎn)型或科學(xué)計(jì)數(shù)法表示(超過(guò)6位使用科學(xué)計(jì)數(shù)法),并將其格式化到指定位置(如果是科學(xué)計(jì)數(shù)這是e) |
G | 自動(dòng)調(diào)整將整數(shù)游盲、浮點(diǎn)數(shù)轉(zhuǎn)換成浮點(diǎn)型或科學(xué)計(jì)數(shù)法表示(超過(guò)6位使用科學(xué)計(jì)數(shù)法)误墓,并將其格式化到指定位置(如果是科學(xué)計(jì)數(shù)這是E) |
print("將二進(jìn)制轉(zhuǎn)換成十進(jìn)制::%d" % 0b1010)
#10
print("將八進(jìn)制轉(zhuǎn)換成十進(jìn)制::%d" % 0o10)
#8
print("將十六進(jìn)制進(jìn)制轉(zhuǎn)換成十進(jìn)制::%d" % 0x10)
#16
print("將十進(jìn)制進(jìn)制進(jìn)制轉(zhuǎn)換成八進(jìn)制::%o" % 10)
#12
# 科學(xué)計(jì)數(shù)法表示
print("%e" % 18889999)
#1.889000e+07
print("保留三位小數(shù):%.3f" % 3.14159265)
#3.142
3.序列相關(guān)方法
python字符串的索引從0開始,0益缎,1谜慌,2......后面依此類推。
s = 'Hello莺奔,Charle欣范!Good Morning!'
print(s[0])
#H
print(s[-1])
#!
print(s[:4])
#Hell
print(s[:-5])
#Hello恼琼,Charle妨蛹!Good Mor
print(s[::-1])
# !gninroM dooG晴竞!elrahC蛙卤,olleH
4.大小寫相關(guān)方法
dir:列出指定類或模塊包含的全部?jī)?nèi)容(包括函數(shù)、方法颓鲜、類表窘、變量等)。
help:查看某個(gè)函數(shù)或方法的幫助文檔甜滨。
str類中與大小寫相關(guān)的常用方法如下:
~ title:將每個(gè)單詞 首字母改為大寫
~ lower:將整個(gè)字符串改為小寫
~ upper:將整個(gè)字符串改為大寫
s = 'hello乐严,charle!good morning衣摩!'
print(s.title())
s1=s.upper()
print(s1)
print(s1.lower())
# Hello昂验,Charle!Good Morning艾扮!
# HELLO既琴,CHARLE!GOOD MORNING泡嘴!
# hello甫恩,charle!good morning酌予!
5.刪除空白
str 還提供了如下常用的方法來(lái)刪除空白磺箕。
~ stri:刪除字符串前后空白。
~ strip:刪除字符串前面(左邊)的空白抛虫。
~ rstrip: 刪除字符串后面(右邊)的空白松靡。
需要說(shuō)明的是:Python的str是不可變的(不可變的意思是指,字符串一旦形成建椰,它所包含的
字符序列就不能發(fā)生任何改變)雕欺,因此這個(gè)方法只是返回字符串前面或后面空白被刪除之后的副本,并沒有真正改變字符串本身
s = ' hello棉姐,charle屠列!good morning! '
print(s.lstrip())
#hello伞矩,charle笛洛!good morning!
print(s.rstrip())
# hello扭吁,charle撞蜂!good morning盲镶!
print(s.strip())
#hello,charle蝌诡!good morning溉贿!
print(s)
# hello,charle浦旱!good morning宇色!
最后輸出s后可以看出s并沒有改變
也可以指定刪除內(nèi)容
s = 'hello,charle颁湖!good morning'
print(s.lstrip('hell'))
#o宣蠕,charle!good morning甥捺!
print(s.rstrip('ning'))
#hello抢蚀,charle!good mor镰禾!
print(s)
#hello皿曲,charle!good morning吴侦!
- 查找屋休、替換相關(guān)方法
str提供了如下常用的執(zhí)行查找 、替換等操作的方法:
~ startswith判斷字符串是否以指定子串開頭备韧。
~ endswith判斷字符串是否以指定子串結(jié)尾
~ find查找指定子串在字符串中出現(xiàn)的位置劫樟,如果沒有找到指定子串 ,則返回 -1
~ index查找指定子串在字符串中出現(xiàn)的位置织堂,如果沒有找到指定子串叠艳,則引發(fā) ValueError錯(cuò)誤。
~ place使用指定子串替換字符串中的目標(biāo)子串
~ translate使用指定的翻譯映射表對(duì)字符串執(zhí)行替換捧挺。
s = 'crazyit.org is a good site'
print(s.startswith('cra'))
#判斷是否以cra開頭
# True
print(s.endswith('te'))
#判斷是否以te結(jié)尾
# True
print(s.find('is'))
#查找is出現(xiàn)的位置
#12
print(s.index('org'))
#從索引開始查找org出現(xiàn)的位置
#8
print(s.find('org', 9))
#從索引9處開始查找org出現(xiàn)的位置
# -1
#print(s.index('org', 9))
#substring not found
print(s.replace('is','***'))
#crazyit.org *** a good site
print(s.replace('it', 'xxx', 1))
#將字符串中一個(gè)it改寫成xxx
#crazyxxx.org is a good site
table ={97:945, 116:964}
print(s.translate(table))
#定義翻譯映射表 a(97)->α(945) t(116)->τ(964)
# crαzyiτ.org is α good siτe
使用translate時(shí)要記住字符編碼虑绵,我們也可以用maketrans方法尿瞭,該方法無(wú)需記住字符編碼就可返回映射表
print(s.maketrans('at','ατ'))
#{97: 945, 116: 964}
7.分割闽烙、連接方法
split: 將字符串按指定分割符分割成多個(gè)短語(yǔ)
join:將多個(gè)短語(yǔ)連接成字符串
s = 'crazyit.org is a good site'
print(s.split(' '))
#等同于s.split() 按空格分割
#['crazyit.org', 'is', 'a', 'good', 'site']
print(s.split(' ', 2))
#等同于s.split(None, 2)
#按兩個(gè)空格分隔
#['crazyit.org', 'is', 'a good site']
print('*'.join(s))
#c*r*a*z*y*i*t*.*o*r*g* *i*s* *a* *g*o*o*d* *s*i*t*e
- 運(yùn)算符
1.賦值運(yùn)算符
Python 使用“=”作為賦值運(yùn)算符
st = 'python'
pi = 3.14
T = True
除此之外,也可使用賦值運(yùn)算利將一個(gè)變量的值賦給另一個(gè)變量
st = pi
print(st)
# 3.14
Python 賦值表達(dá)式是有值的声搁,賦值表達(dá)式的值就是被賦的值
a = b = c = 20
賦值運(yùn)算符還 用于將表達(dá)式的值賦給變量
d1 = 12.34
# 將表達(dá)式的值賦給 d1
d2 = d1 + 5
# 輸出 d2 的值
print(d2)
# 17.34
2.算術(shù)運(yùn)算符
Python 支持所有的基本算術(shù)運(yùn)算符黑竞,這些算術(shù)運(yùn)算符用于執(zhí)行基本的數(shù)學(xué)運(yùn)算
num1 = 9 + 2
print("加:%d" % num1)
num2 = 9 - 2
print("減:%d" % num2)
num3 = 9 * 2
print("乘:%d" % num3)
num4 = 9 / 2
print("除:%d" % num4)
# 取整除
num5 = 9 // 2
print("取整除:%d" % num5)
# 取余數(shù)
num6 = 9 % 2
print("取余數(shù):%d" % num6)
# 取次冪
num7 = 9 ** 2
print("取次冪:%d" % num7)
3.位運(yùn)算符
運(yùn)算符 | 說(shuō)明 |
---|---|
& | 按位與 |
| | 按位或 |
^ | 按位異或 |
~ | 按位取反 |
<< | 左位移運(yùn)算符 |
>> | 右位移運(yùn)算符 |
按位與
運(yùn)算符"&"是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相與疏旨。只有對(duì)應(yīng)的兩個(gè)二進(jìn)位均為1時(shí)很魂,結(jié)果位才為1,否則為0檐涝。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)遏匆。
例如:9&5可寫算式如下:
00001001 (9的二進(jìn)制補(bǔ)碼)
&00000101 (5的二進(jìn)制補(bǔ)碼)
00000001 (1的二進(jìn)制補(bǔ)碼)
可見9&5=1法挨。
按位與運(yùn)算通常用來(lái)對(duì)某些位清0或保留某些位。例如把a(bǔ) 的高八位清 0 幅聘,保留低八位凡纳,可作a&255運(yùn)算(255 的二進(jìn)制數(shù)為0000000011111111)。按位或
運(yùn)算符“|”是雙目運(yùn)算符帝蒿。其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相或荐糜。只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1葛超。參與運(yùn)算的兩個(gè)數(shù)均以補(bǔ)碼出現(xiàn)暴氏。
例如:9|5可寫算式如下:
00001001
|00000101
00001101 (十進(jìn)制為13)
可見9|5=13按位異或
運(yùn)算符“”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相異或绣张,當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí)答渔,結(jié)果為1。參與運(yùn)算數(shù)仍以補(bǔ)碼出現(xiàn)侥涵,例如95可寫成算式如下:
00001001
^00000101
00001100 (十進(jìn)制為12)求反
運(yùn)算符為單目運(yùn)算符研儒,具有右結(jié)合性。其功能是對(duì)參與運(yùn)算的數(shù)的各二進(jìn)位按位求反独令。例如9的運(yùn)算為:
~(0000000000001001)
結(jié)果為:1111111111110110左移
運(yùn)算符“<<”是雙目運(yùn)算符端朵。其功能把“<< ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù)燃箭,高位丟棄冲呢,低位補(bǔ)0。例如:
a<<4
指把a(bǔ)的各二進(jìn)位向左移動(dòng)4位招狸。如a=00000011(十進(jìn)制3)敬拓,左移4位后為00110000(十進(jìn)制48)。右移
運(yùn)算符“>>”是雙目運(yùn)算符裙戏。其功能是把“>>”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位乘凸,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)。例如:
設(shè) a=15累榜,
a>>2
表示把000001111右移為00000011(十進(jìn)制3)营勤。
注意:對(duì)于有符號(hào)數(shù),在右移時(shí)壹罚,符號(hào)位將隨同移動(dòng)葛作。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0猖凛,而為負(fù)數(shù)時(shí)赂蠢,符號(hào)位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的規(guī)定辨泳。Turbo C和很多系統(tǒng)規(guī)定為補(bǔ)1虱岂。
4.索引運(yùn)算符
索引運(yùn)算符就是方括號(hào)玖院,在方括號(hào)中既可使用單個(gè)索引值,也可使用索引范圍第岖。實(shí)際上司恳,在使用索引范圍時(shí),還可指定步長(zhǎng)绍傲。
a = 'asdfghknuukl'
print(a[2:9:2])
# dgku
print(a[2:11:3])
# dhu
5.比較運(yùn)算符
Python 支持的比較運(yùn)算符如下:
(>)大于扔傅,如果運(yùn)算符前面的值大于后面的值,則返回 True烫饼;否則返回 False猎塞。
(>=)大于或等于,如果運(yùn)算符前面的值大于或等于后面的值杠纵,則返回 True荠耽;否則返回 False。
(<)小于比藻,如果運(yùn)算符前面的值小于后面的值铝量,則返回 True;否則返回 False银亲。
(<=)小于或等于慢叨,如果運(yùn)算符前面的值小于或等于后面的值,則返回 True务蝠;否則返回 False拍谐。
(==)等于,如果運(yùn)算符前面的值等于后面的值馏段,則返回 True轩拨;否則返回 False。
(!=)不等于院喜,如果運(yùn)算符前面的值不等于后面的值亡蓉,則返回 True;否則返回 False喷舀。
(is)判斷兩個(gè)變量所引用的對(duì)象是否相同砍濒,如果相同則返回 True。
(is not)判斷兩個(gè)變量所引用的對(duì)象是否不相同元咙,如果不相同則返回 True梯影。
# 輸出True
print("5是否大于 4:", 5 > 4)
# 輸出False
print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)
# 輸出True
print("20是否大于等于20.0:", 20 >= 20.0)
# 輸出True
print("5和5.0是否相等:", 5 == 5.0)
# 輸出False
print("True和False是否相等:", True == False)
6.邏輯運(yùn)算符
邏輯運(yùn)算符 | 含義 | 基本格式 | 說(shuō)明 |
---|---|---|---|
and | 邏輯與運(yùn)算巫员,等價(jià)于數(shù)學(xué)中的“且” | a and b | 當(dāng) a 和 b 兩個(gè)表達(dá)式都為真時(shí)庶香,a and b 的結(jié)果才為真,否則為假简识。 |
or | 邏輯或運(yùn)算赶掖,等價(jià)于數(shù)學(xué)中的“或” | a or b | 當(dāng) a 和 b 兩個(gè)表達(dá)式都為假時(shí)感猛,a or b 的結(jié)果才是假,否則為真奢赂。 |
not | 邏輯非運(yùn)算陪白,等價(jià)于數(shù)學(xué)中的“非” | not a | 如果 a 為真,那么 not a 的結(jié)果為假膳灶;如果 a 為假咱士,那么 not a 的結(jié)果為真。相當(dāng)于對(duì) a 取反轧钓。 |
print(not False)
# 5>3 返回 True 20.0 大于 10 序厉,因此結(jié)果返回 True
print(5 > 3 and 20.0 > 10)
# 4>=5 返回 False 返回 True ,求或后返回 True
print(4 >= 5 or 'C' > 'a')
7.三目運(yùn)算符
x = 3
y = 6
#一般的寫法
if (x == y):
print("兩數(shù)相同毕箍!")
elif(x > y):
print("較大的數(shù)為:",x)
else:
print("較大的數(shù)為:",y)
# 三目運(yùn)算符寫法
print(x if(x>y) else y)
8.in運(yùn)算符
in 運(yùn)算符可判斷某個(gè)成員是否在序列中弛房,例如判斷某個(gè)字符是否在某個(gè)字符串中。in 的反義詞是 not in而柑,判斷的結(jié)果都是 bool 型值文捶。
print('on' in 'python.org')
# 輸出:True
print('on' not in 'python.org')
# 輸出:False
print('linux' not in 'python.org')
# 輸出:True
9.運(yùn)算符的結(jié)合性和優(yōu)先級(jí)