12-27 day4獲取字符躏吊,字符串相關運算,格式字符串帐萎,類型轉換


1.getchar --獲取字符

1.獲取單個字符

  • 字符串中的每一個字符都會對應一個唯一的下標(索引)用來表示字符在字符串中的位置
    下標是從0開始依次增加比伏,0對應的是第一個字符(0 -- 字符串長度-1);
    也可以從-1開始依次減少疆导,-1對應的是最后一個字符(-1 -- 字符串長度)
    例如:'hello' -> h->(0,-5 ) e->(1,-4) l->(3,-3) l->(4,-2) o->(4,-1)

  • a.語法:
    字符串[下標] - 獲取字符串中指定下標對應的字符

  • b.說明:

  • 字符串 - 只要結果是字符串的表達式都可以赁项,例如:字符串字面量、字符串變量
    [] - 固定寫法

  • 下標 - 需要獲取的字符對應的下標,注意:這兒的下標不能越界

result = 'how are you!'[0]  #獲取字符中下標是0的字符并賦值給變量result
print(result)   #h
print('how are you!'[-4])  #y

print('how are you!'[14]) #IndexError: string index out of range 下標越界

str1 = 'good good study悠菜!day day up!'
print(str1[10],str1[-2])  #s p

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

方法1.

  • a.語法:
    字符串[開始下標舰攒;結束下標;步長]

  • b.說明:
    -從開始下標開始獲取到結束下標前為止悔醋,每次下標值加上步長獲取下一個

  • 字符串 - 只要結果是字符串的表達式都可以摩窃,例如:字符串字面量、字符串變量
    [ 芬骄;] - 固定寫法

  • 開始下標猾愿、結束下標 - 下標值(這兒的下標可以越界)

  • 步長 - 必須是整數,正數和負數都行账阻,
    如果步長是正數匪蟀,是從開始下標開始從前往后獲取宰僧;
    如果步長是負數,是從開始下標開始從后往前獲取

  • c.注意:
    當步長為正观挎,要求開始下標對應的字符的位置必須在結束下標對應的字符的位置前面琴儿。否則結果為空
    當步長為負,要求開始下標對應的字符的位置必須在結束下標對應的字符的位置后面嘁捷。否則結果為空

  • 不管怎么取造成,結束下標一定取不到!

str1 = 'hello python!'
print(str1[0:-1:2])     #hlopto
print(str1[0:10:-2])    #null,結果為空
print(str1[-1:0:-2])    #!otpol
print(str1[-1:-10:2])   #null
print(str1[-1:-100:-2]) #!otpolh,結束下標越界
print(str1[100:-100:-2])#!otpolh,下標越界

#練習:獲取一個字符串中所有下標是奇數的字符(順序)
print(str1[1:100:2])   #el yhn

方法二:(省略步長)

字符串[開始下標:結束下標] -- 步長是1雄嚣,從開始下標到結束下標為止晒屎,一個一個的取

print('when i was young '[2:6]) #en i

方法三:(省略開始下標和結束下標)

  • a.省略開始下標
    字符串[:結束下標:步長]
    -當步長是正數,從字符串的第一個字符開始取到結束下標為止缓升;
    -當步長是負數鼓鲁,從字符串的最后一個字符開始取到結束下標為止;
  • b.省略結束下標
    字符串[開始下標::步長]
    -當步長是正數港谊,從開始下標開始取到字符串最后一個字符為止骇吭;
    -當步長是負數,從開始下標開始取到字符串第一個字符為止歧寺;
print('when i was young '[:6])   #when i
print('when i was young!'[:6:-1]) #!gnuoy sawprint('when i was young!'[:6:-1]print('when i was young!'[:6:-1])
print('when i was young!'[0:])  #when i was young!
print('when i was young!'[:]) #when i was young!
print('when i was young!'[::-1])   #!gnuoy saw i nehw  字符串倒序


2.字符串相關運算

1.字符串支持的運算符: +燥狰, *, >, <, ==, <=, >=, !=

  • a.Python中的字符串支持數學運算符中的 + *斜筐,以及所有的比較運算符

  • 加 + : 字符串1+字符串2 --將字符串1和字符串2拼接在一起產生一個新的字符串
    注意:字符串和數字不能混合相加龙致!

  • 乘 * : 字符串 * N --N是正整數;字符串重復N次產生一個新的字符串

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

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

str1 = 'abc'
print(str1 * 3)  #abcabcabc

  • c.比較是否相等
    == , 顷链!= 可以判斷兩個字符串是否相等或者不相等

  • d.字符串比較大心看:從第一個字符開始依次往后找,找到第一個不相等的字符對,判斷它們編碼值的大小像啼,
    誰的編碼值大俘闯,對應的字符串就大,不會再往后比較了

應用
1.判斷是否是小寫字母:
‘a’<=char<='z'(只有Python支持這種寫法忽冻。Pythonnb.) --> char>= ‘a’< and char<='z'

print('abc'=='abc')  #True
print('abc'=='bac')  #False

print('dcb' > 'abcde')  #True

2.判斷一個字符串中第三個字符是否是字母

str2 = 'sa1hif329'
char = str2[2] #取出第三個字符
print('是否是字母','a'<=char<='z' or 'A'<=char<='Z')  #是否是字母 False
print('是否是中文','\n4e00' <= char <= '\n9fa5')      #是否是中文 False

2. in 和not in 操作

字符串1 in 字符串2 -> 判斷字符串1是否是字符串2的子串
字符串1 not in 字符串2 -> 判斷字符串1是否不是字符串2的子串

print('abc' in 'helloabc')  #True
print('abc' in 'ahellobc')  #False ,順序必須相同
print('abc' not in 'helloabc')  #False
print('abc'not in 'ahellobc')  #True

3. len函數真朗、

len(序列) - 獲取序列長度,獲取序列中元素的個數
len(字符串) - 獲取字符串的長度僧诚,就是字符的個數

  • 注意:
    一個可以轉義的轉義字符長度是1遮婶;
    一個編碼字符長度是1;
    一個空格字符長度是1湖笨;
    手動在鍵盤上按一個tab一般是4個空格旗扑,長度是4;一個\t表示的tab長度是1

print(len('ashfov')) #6

str1=input('請輸入:')    #輸入abcd
last_char =str1[len(str1)-1]   #最后一個字符
print(last_char)           #d

str1='  abc'
str2='\tabc'
print(len(str1),len(str2)) #5 4  本機設置的一個tab是2個空格


3.formstring 格式字符串

1.什么是格式字符串

  • 在字符串中通過格式占位符來代替字符串中變化的部分慈省,然后在后面通過數據或者變量確定變化

2. 語法:

包含占位符的字符串%(值1臀防,值2,值3边败,···)

3 說明:

  • 占位符 -
    %s (字符串)
    %d (整數)
    %f (小數) (%.nf 保留小數點后n位小數)
    %c (字符)(可以將數字轉換成字符)

  • % -- 固定寫法

  • () -- 固定寫法袱衷,字符串中只有一個占位符的時候,這個()可以省略

  • 括號中的值 - 值和占位符要一一對應(個數笑窜、類型致燥、位置都要對應)

name = input('姓名:')
age = 18
sex = '男'
message = '我叫%s,今年%d,性別%s,月薪%.1f萬'%(name,age,sex,1.5)
print(message)
  • 練習:輸入一個字符串,用一個變量保存輸入的字符串的相關信息排截,XXX的長度是XX,最后一個字符是X
str1 = input('請輸入一個字符串:')
length = len(str1)
char = str1[len(str1)-1]
message ='%s的長度是%d,最后一個字符是%s'%(str1,length,char)
print(message)


4.typeconversion 類型轉換

1嫌蚤、基本語言

  • 語法:
    類型名(數據) - 將指定數據轉換成指定類型
  • 說明:
    類型名 -- 任何Python支持的,或者自定的類型都可以
    數據 -- 需要轉換的對象(類型不同要求可能不同)

2.轉換實例

int(數據) -> 將其他數據轉換成整型
float(數據) -> 將其他數據轉換成浮點型
bool(數據) -> 將其他數據轉換成bool型
str(數據) -> 將其他數據轉換成字符串

 age=input('年齡:')
 print(type(age),age)
 print('是否能進入網吧',int(age) >= 18)

1.轉換成整型

a = int(12.8) #12  浮點數可以轉換成整數断傲,直接保留整數部分
b = int(True)   #bool可以轉換成整數脱吱,True->1 ,Fasle->0
c = int('12')    #只有去掉字符串的引號后本身就是一個整數的字符串才能轉化成整型
print(a,b,c)

2.轉換成浮點型

a = float(100)   #所有的整數都可以轉換成浮點數,在后面加.0
b = float(True) #所有的bool都可以轉換成浮點數认罩,True->1.0  False->0.0
c = float('12.9') #去掉字符串的引號后本身就是一個數字的字符能轉化成浮點型
print(a,b,c)

3.轉換成布爾類型

  • Python中所有的數據都可以轉換成布爾
  • 所有為空急凰、為0的值都會轉換成False,其他全是True
a = bool(0)
b = bool(0.0)
c = bool('')
d = bool ([])
e = bool({})
f = bool(None)
print(a,b,c,d,e,f)  #False False False False False False

4.轉換成字符串類型

  • Python中所有的數據都可以轉換成字符串,而且轉換的時候就是單純的在最外面加引號

  • 練習:輸入3個數字猜年,求著3個數字的和

num1 = input('輸入3個數字')
num2 = input()
num3 = input()
print('三個數字的和是:',float(num1)+float(num2)+float(num3))

未完待續(xù)抡锈。。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末乔外,一起剝皮案震驚了整個濱河市床三,隨后出現的幾起案子,更是在濱河造成了極大的恐慌杨幼,老刑警劉巖撇簿,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聂渊,死亡現場離奇詭異,居然都是意外死亡四瘫,警方通過查閱死者的電腦和手機汉嗽,發(fā)現死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來找蜜,“玉大人饼暑,你說我怎么就攤上這事∠醋觯” “怎么了弓叛?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诚纸。 經常有香客問我撰筷,道長,這世上最難降的妖魔是什么畦徘? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任毕籽,我火速辦了婚禮,結果婚禮上井辆,老公的妹妹穿的比我還像新娘影钉。我一直安慰自己,他們只是感情好掘剪,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奈虾,像睡著了一般夺谁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肉微,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天匾鸥,我揣著相機與錄音,去河邊找鬼碉纳。 笑死勿负,一個胖子當著我的面吹牛,可吹牛的內容都是我干的劳曹。 我是一名探鬼主播奴愉,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铁孵!你這毒婦竟也來了锭硼?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜕劝,失蹤者是張志新(化名)和其女友劉穎檀头,沒想到半個月后轰异,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡暑始,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年搭独,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廊镜。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡牙肝,死狀恐怖,靈堂內的尸體忽然破棺而出期升,到底是詐尸還是另有隱情惊奇,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布播赁,位于F島的核電站颂郎,受9級特大地震影響,放射性物質發(fā)生泄漏容为。R本人自食惡果不足惜乓序,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坎背。 院中可真熱鬧替劈,春花似錦、人聲如沸得滤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懂更。三九已至眨业,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沮协,已是汗流浹背龄捡。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慷暂,地道東北人聘殖。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像行瑞,于是被迫代替她去往敵國和親奸腺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 1.什么是字符串 序列血久,有序洋机,不可變的。用單引號或者雙引號括起來的任意字符集洋魂。 2.字符串中的字符 a.普通字符:...
    發(fā)家致富靠養(yǎng)豬閱讀 634評論 1 7
  • 字符串 1.什么是字符串 序列:有序绷旗,不可變的喜鼓。用單引號或者雙引號括起來的任意字符(集)。 2.字符串中的字符 a...
    落幕丶丶閱讀 808評論 0 0
  • 一.認識字符串 什么是字符串(str)字符串是python中一種常用的有序但是不可變的容器類的數據類型衔肢,可以同時存...
    2ez4ddf閱讀 478評論 0 0
  • “我受傷了庄岖,為什么受傷的總是我”她在電話的那一頭抱怨到。 “怎么回事”角骤,我問到隅忿。 “我沒有完成任務,罰的”她...
    少年背抵黃昏說天黑有我閱讀 200評論 0 0
  • 三蘇祠邦尊,小船背桐,陽光
    走看看閱讀 229評論 0 0