第二章

變量和簡(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í)符
\color{red}{注意:}
①標(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ù)
\color{red}{注意:}
①如果開發(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吴侦!
  1. 查找屋休、替換相關(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í)


運(yùn)算符有不同的優(yōu)先級(jí),優(yōu)先級(jí)高的會(huì)先計(jì)算媒咳。按優(yōu)先級(jí)從高到低排列
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粹排,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涩澡,更是在濱河造成了極大的恐慌恨搓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筏养,死亡現(xiàn)場(chǎng)離奇詭異斧抱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)渐溶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門辉浦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人茎辐,你說(shuō)我怎么就攤上這事宪郊。” “怎么了拖陆?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵弛槐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我依啰,道長(zhǎng)乎串,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任速警,我火速辦了婚禮叹誉,結(jié)果婚禮上鸯两,老公的妹妹穿的比我還像新娘。我一直安慰自己长豁,他們只是感情好钧唐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匠襟,像睡著了一般钝侠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酸舍,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天机错,我揣著相機(jī)與錄音,去河邊找鬼父腕。 笑死弱匪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的璧亮。 我是一名探鬼主播萧诫,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼枝嘶!你這毒婦竟也來(lái)了帘饶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤群扶,失蹤者是張志新(化名)和其女友劉穎及刻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竞阐,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缴饭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了骆莹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颗搂。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖幕垦,靈堂內(nèi)的尸體忽然破棺而出丢氢,到底是詐尸還是另有隱情,我是刑警寧澤先改,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布疚察,位于F島的核電站,受9級(jí)特大地震影響仇奶,放射性物質(zhì)發(fā)生泄漏貌嫡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衅枫。 院中可真熱鬧嫁艇,春花似錦朗伶、人聲如沸弦撩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)益楼。三九已至,卻和暖如春点晴,著一層夾襖步出監(jiān)牢的瞬間感凤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工粒督, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陪竿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓屠橄,卻偏偏與公主長(zhǎng)得像族跛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锐墙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 變量:在程序中存儲(chǔ)數(shù)據(jù)項(xiàng)的地方(用序列號(hào)指定內(nèi)存地址)是可以變化的礁哄,所以叫做變量(variable)名詞:字節(jié) 字...
    全無(wú)閱讀 509評(píng)論 0 3
  • -------------------------純手打總結(jié),轉(zhuǎn)載請(qǐng)注明出處溪北,愛您~ 2.1常用內(nèi)置對(duì)象 * 對(duì)象...
    Vera要一直學(xué)習(xí)閱讀 2,100評(píng)論 0 0
  • Python3 基本數(shù)據(jù)類型 Python 中的變量不需要聲明桐绒。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)...
    帥氣的Lucky閱讀 666評(píng)論 0 0
  • python編程系統(tǒng)學(xué)習(xí)指路:快速學(xué)習(xí) | python編程:從入門到實(shí)踐 | Windows 1. 變量 mes...
    DOGBRO閱讀 386評(píng)論 0 0
  • 《六項(xiàng)精進(jìn)》打卡第114天 姓名:閔慧賢 公司:上海晉名實(shí)業(yè)有限公司 組別:謙虛三組 【知~學(xué)習(xí)】 背誦《六項(xiàng)精進(jìn)...
    閔慧賢閱讀 87評(píng)論 0 0