day4獲取字符峦睡、字符串相關(guān)運(yùn)算、格式字符串和類(lèi)型轉(zhuǎn)換

一完箩、獲取字符

1.獲取單個(gè)字符

字符串中的每一個(gè)字符都會(huì)對(duì)應(yīng)一個(gè)唯一的下標(biāo)(索引)用來(lái)表示字符在字符串中的位置.
下標(biāo)是從0開(kāi)始依次增加的赐俗,0對(duì)應(yīng)的是第一個(gè)字符;(0~字符串長(zhǎng)度-1)
也可以是從-1開(kāi)始依次減小弊知,-1代表最后一個(gè)字符(-1~-字符串長(zhǎng)度)

例如:'hello' -> h->(0,-5), e->(1-4),l ->(2,-3), l->(3,-2), o->(4,-1)
'\tpytho\u4e00n' -> p->(1, -7)

a. 獲取單個(gè)字符的語(yǔ)法:
字符串[下標(biāo)] - 獲取字符串中指定下標(biāo)對(duì)應(yīng)的字符
b.說(shuō)明
字符串 - 只要結(jié)果是字符串的表達(dá)式都可以阻逮,例如:字符串字面量, 字符串變量
[] - 固定寫(xiě)法
下標(biāo) - 需要獲取的字符對(duì)應(yīng)的下標(biāo)秩彤;注意叔扼,這兒的下標(biāo)不能越界

result = 'how are you!'[0]     # 獲取字符串‘how are you事哭!’中下標(biāo)是0的字符,并且賦給變量result
print(result)

print('how are you!'[-4])
# print('how are you!'[12])     # IndexError: string index out of range

str1 = 'good good study! day day up!'
print(str1[10])

2.獲取部分字符(字符串切片)

方法一:
a.語(yǔ)法:
字符串[開(kāi)始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)] - 從開(kāi)始下標(biāo)開(kāi)始瓜富,獲取到結(jié)束下標(biāo)前為止鳍咱。每次下標(biāo)值加上步長(zhǎng)去獲取下一個(gè)
b.說(shuō)明:
字符串 - 只要結(jié)果是字符串的表達(dá)式都可以,例如:字符串字面量与柑, 字符串變量
[] - 固定寫(xiě)法
開(kāi)始下標(biāo)谤辜、結(jié)束下標(biāo) - 下標(biāo)值(這兒的下標(biāo)可以越界)
步長(zhǎng) - 必須是整數(shù)(正數(shù)和負(fù)數(shù)都行),如果步長(zhǎng)是正數(shù)价捧,是從開(kāi)始下標(biāo)開(kāi)始從前往后獲瘸竽睢; 如果步長(zhǎng)是負(fù)數(shù)结蟋,是從開(kāi)始下標(biāo)開(kāi)始從后往前獲雀小;

c.注意:
當(dāng)步長(zhǎng)為正嵌屎,要求開(kāi)始下標(biāo)對(duì)應(yīng)的字符的位置必須在結(jié)束下標(biāo)的字符的位置的前面推正,否則結(jié)果是空串!
當(dāng)步長(zhǎng)為負(fù)宝惰,要求開(kāi)始下標(biāo)對(duì)應(yīng)的字符的位置必須在結(jié)束下標(biāo)的字符的位置的后面植榕,否則結(jié)果是空串!

不管怎么取尼夺,結(jié)束下標(biāo)一定取不到内贮!

str1 = 'helllo python!'
print('結(jié)果1', str1[0:-1:2])     # 從前往后取
print('結(jié)果2', str1[-1:0:-2])     # 從后往前取

print('結(jié)果3', str1[-1:-100:-1])     # 結(jié)束下標(biāo)越界
print('結(jié)果4', str1[100:-100:-1])     # 下標(biāo)越界
練習(xí):獲取一個(gè)字符串中所有下標(biāo)是奇數(shù)的字符(順序)

print(str1[1:100:2])

方法二:(省略步長(zhǎng))
字符串[開(kāi)始下標(biāo):結(jié)束下標(biāo)] - 步長(zhǎng)是1;從開(kāi)始下標(biāo)開(kāi)始到結(jié)束下標(biāo)前為止汞斧,一個(gè)一個(gè)的纫褂簟!

print('shen i was young!'[2:6])

方法三:(省略開(kāi)始下標(biāo)和結(jié)束下標(biāo))
a.省略開(kāi)始下標(biāo)
字符串[:結(jié)束下標(biāo):步長(zhǎng)] - 當(dāng)步長(zhǎng)是正數(shù)粘勒,從字符串的第一個(gè)字符開(kāi)始取到結(jié)束下標(biāo)前為止;當(dāng)步長(zhǎng)是負(fù)數(shù)竞端,從字符串的最后一個(gè)字符開(kāi)始取到結(jié)束下標(biāo)前為止.

b.省略結(jié)束下標(biāo)
字符串[開(kāi)始下標(biāo)::步長(zhǎng)] - 當(dāng)步長(zhǎng)是正數(shù),從開(kāi)始下標(biāo)開(kāi)始取到字符串最后一個(gè)字符為止: 當(dāng)步長(zhǎng)是負(fù)數(shù)庙睡,從開(kāi)始下標(biāo)開(kāi)始取到字符串第一個(gè)字符為止.

str3 = 'shen i was young'
print(str3[:6], str3[:6:-1])
print(str3[2:], str3[2::-1])
print(str3[:])
print(str3[::-1])   # 讓字符串倒序



二事富、字符串相關(guān)運(yùn)算

1.字符串支持的運(yùn)算符: +, *乘陪, >, <, == , != , >= ,<=

python中的字符串支持?jǐn)?shù)學(xué)運(yùn)算符中的+和统台,以及所有的比較運(yùn)算符
a.+ : 字符串1 + 字符串2 - 將字符串1和字符串2拼接在一起產(chǎn)生一個(gè)新的字符串
注意:字符串不能和數(shù)字不能混合相加!
b.
: 字符串 * N - N是正整數(shù)啡邑;字符串重復(fù)N次產(chǎn)生一個(gè)新的字符串

new_str = 'abc' + '123'
print(new_str)

name = '張三'
message = '吃飯了嗎?'
print(name+message)

c.比較是否相等
==贱勃, != 可以判斷兩個(gè)字符串是否相等或者不相等

d.字符比較大小:從第一個(gè)字符開(kāi)始依次往后找,找到第一個(gè)不相等的字符對(duì)贵扰,判斷它們的編碼值的大小仇穗, 誰(shuí)的編碼值打,對(duì)應(yīng)的字符串就大戚绕;不會(huì)再往后比較了纹坐!
應(yīng)用:
1.判斷是否是小寫(xiě)字母:'a'<=char<='z'
2.判斷是否是大寫(xiě)字母:'A'<=char<='Z'
3.判斷是否是字母: 'a'<=char<='z' or 'A'<=char<='Z'

判斷一個(gè)字符串中第三個(gè)字符是否是字母

str1 = 'shk23.ssy23'
char = str1[2]     # 將第3個(gè)字符取出
print('是否是字母:', 'a' <= char <= 'z' or 'A' <= char <= 'Z')
print('是否是中文:', '\u4e00' <= char <= '\u9fa5')

2.in和not in操作

字符串1 in 字符串2 -> 判斷字符串2中是否包含字符串1(判斷字符串1是否是字符串2的字串)
字符串1 not in 字符串2 -> 判斷字符串2中是否不包含字符串1(判斷字符串1是否不是字符串2的字串)

print('abc' in 'hello abc')     # True
print('abc' in 'ahello bc')     # False

print('abc' not in 'hello abc')     # False
print('abc' not in 'ahello bc')     # True

3.len函數(shù)

len(序列) - 獲取序列長(zhǎng)度, 獲取序列中元素的個(gè)數(shù)
len(字符串) - 獲取字符串的長(zhǎng)度(字符的個(gè)數(shù)) -- 結(jié)果是一個(gè)整數(shù)

注意:
一個(gè)可以轉(zhuǎn)移的轉(zhuǎn)義字符的長(zhǎng)度是1舞丛!
一個(gè)編碼字符的長(zhǎng)度是1耘子!
一個(gè)空格字符的長(zhǎng)度是1!
手動(dòng)在鍵盤(pán)上按一個(gè)tab球切,一般是4個(gè)空格拴还,長(zhǎng)度是4;一個(gè)\t來(lái)表示的tab,長(zhǎng)度是1

print(len('abc'))

str1 = input('請(qǐng)輸入:')
last_char = str1[len(str1)-1]
print(last_char)

str1 = '    abc'
str2 = '\tabc'
print(str1)
print(str2)
print(len(str1), len(str2))



三欧聘、格式字符串

1.什么是格式字符串:

在字符串中通過(guò)格式占位符來(lái)代替字符串中變化的部分,然后在后面通過(guò)數(shù)據(jù)或者變量確定變化

語(yǔ)法:
包含占位符的字符串 % (值1端盆, 值2怀骤, 值3.....)
說(shuō)明:
占位符 - %s (字符串)
%d (整數(shù))
%f (小數(shù)) (%.nf 保留小數(shù)點(diǎn)后n位小數(shù))
%c (字符) (可以將數(shù)字轉(zhuǎn)換成字符)
% - 固定寫(xiě)法
() - 固定寫(xiě)法,字符串中只有一個(gè)占位符的時(shí)候焕妙,這個(gè)()可以省略
括號(hào)中的值 - 值和占位符要一一對(duì)應(yīng)(個(gè)數(shù)蒋伦、類(lèi)型、位置都要對(duì)應(yīng))

name = input('姓名:')
age = 18
sex = '男'
message = '我叫%s焚鹊,今年%d痕届,性別:%s,月薪%.1f萬(wàn) 字符:%c' % (name, age, sex, 1.5, 97)
print(message)
練習(xí):輸入一個(gè)字符串末患,用一個(gè)變量保存輸入的字符串的相關(guān)信息;XXX的長(zhǎng)度是XX研叫,最后一個(gè)字符是X

例如:輸入abc -> abc的長(zhǎng)度是3,最后一個(gè)字符是c

input_str = input('輸入一個(gè)字符串')
message = '%s的長(zhǎng)度是%d,最后一個(gè)字符是%c' % (input_str, len(input_str), input_str[-1])
print(message)



類(lèi)型轉(zhuǎn)換

1.基本語(yǔ)法

語(yǔ)法:
類(lèi)型名(數(shù)據(jù)) - 將指定數(shù)據(jù)轉(zhuǎn)換從指定類(lèi)型

說(shuō)明:
類(lèi)型名 - 任何python支持的璧针,或者自定的類(lèi)型都可以
數(shù)據(jù) - 需要轉(zhuǎn)換的對(duì)象(類(lèi)型不同要求可能不一樣)

2.轉(zhuǎn)換實(shí)例

int(數(shù)據(jù)) -> 將其他數(shù)據(jù)轉(zhuǎn)換成整型
float(數(shù)據(jù)) -> 將其他數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)型
bool(數(shù)據(jù)) —> 將其他類(lèi)型轉(zhuǎn)換成布爾
str(數(shù)據(jù)) —> 將其他數(shù)據(jù)轉(zhuǎn)換成字符串

age = input('年齡:')
print(type(age), age)
print('是否能進(jìn)入網(wǎng)吧:', int(age) >= 18)

1.轉(zhuǎn)換成整型

a = int(12.9)       # 浮點(diǎn)數(shù)可以轉(zhuǎn)換成整數(shù)嚷炉,直接保留整數(shù)部分
b = int(True)       # 布爾可以轉(zhuǎn)化成整數(shù),True    ->  1;False ->  0
c = int('12')       # 只有去掉字符串的引號(hào)后本身就是一個(gè)整數(shù)的字符串才能轉(zhuǎn)換成整數(shù)
print(a, b, c)

2.轉(zhuǎn)換成浮點(diǎn)型

a = float(100)      # 所有整數(shù)都可以轉(zhuǎn)換成浮點(diǎn)數(shù)探橱,在后面加.0
b = float(True)     # 布爾可以轉(zhuǎn)化成浮點(diǎn)數(shù)申屹,True    ->  1.0;False ->  0.0
c = float('12')     # 去掉引號(hào)后本身就是一個(gè)數(shù)字的字符串能轉(zhuǎn)換成浮點(diǎn)型
print(a, b, c)

3.轉(zhuǎn)換成布爾類(lèi)型

python中所有的數(shù)據(jù)都可以轉(zhuǎn)換成布爾
所有為空為0的值都會(huì)轉(zhuǎn)換成False,其他都是True

a = bool(0)
b = bool(0)
c = bool('')
print(a, b, c)

4.轉(zhuǎn)換成字符串類(lèi)型

python中所有的數(shù)據(jù)都可以轉(zhuǎn)換成字符串隧膏,而且轉(zhuǎn)換的時(shí)候就是單純的在最外面加引號(hào)

a = str(100)
print(a)

練習(xí):輸入三個(gè)數(shù)字哗讥,求三個(gè)數(shù)的和

num1 = input('請(qǐng)輸入第一個(gè)數(shù)字:')
num2 = input('請(qǐng)輸入第二個(gè)數(shù)字:')
num3 = input('請(qǐng)輸入第三個(gè)數(shù)字:')
print('三個(gè)數(shù)字的和為:', float(num1)+ float(num2)+float(num3))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胞枕,隨后出現(xiàn)的幾起案子杆煞,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件索绪,死亡現(xiàn)場(chǎng)離奇詭異湖员,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瑞驱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)娘摔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人唤反,你說(shuō)我怎么就攤上這事凳寺。” “怎么了彤侍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵肠缨,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盏阶,道長(zhǎng)晒奕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任名斟,我火速辦了婚禮脑慧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砰盐。我一直安慰自己闷袒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布岩梳。 她就那樣靜靜地躺著囊骤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冀值。 梳的紋絲不亂的頭發(fā)上也物,一...
    開(kāi)封第一講書(shū)人閱讀 49,837評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音列疗,去河邊找鬼焦除。 笑死,一個(gè)胖子當(dāng)著我的面吹牛作彤,可吹牛的內(nèi)容都是我干的膘魄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼竭讳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼创葡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起绢慢,我...
    開(kāi)封第一講書(shū)人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灿渴,失蹤者是張志新(化名)和其女友劉穎洛波,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骚露,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹬挤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棘幸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焰扳。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖误续,靈堂內(nèi)的尸體忽然破棺而出吨悍,到底是詐尸還是另有隱情,我是刑警寧澤蹋嵌,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布育瓜,位于F島的核電站,受9級(jí)特大地震影響栽烂,放射性物質(zhì)發(fā)生泄漏躏仇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一腺办、第九天 我趴在偏房一處隱蔽的房頂上張望焰手。 院中可真熱鬧,春花似錦菇晃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至灿意,卻和暖如春估灿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缤剧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工馅袁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荒辕。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓汗销,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抵窒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弛针,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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