2018-08-22 day3

作業(yè)

在做下面的每個練習(xí)時贮配,都編寫一個獨立的程序讳推,并將其保存為名稱類似于name_cases.py的文件

2-3 個性化消息: 將用戶的姓名存到一個變量中磺送,并向該用戶顯示一條消息躯泰。顯示的消息應(yīng)非常簡單栈戳,如“Hello Eric, would you like to learn some Python today?”厨剪。

name1='uuz'
message='Hello %s,would you like to learn some Python today?'%(name1)
print(message)

輸出顯示:
Hello uuz,would you like to learn some Python today?

2-4 調(diào)整名字的大小寫: 將一個人名存儲到一個變量中哄酝,再以小寫、大寫和首字母大寫的方式顯示這個人名祷膳。

name2='LeBron James'
print(name2.lower())
print(name2.upper())
print(name2.capitalize())

輸出顯示:
lebron james
LEBRON JAMES
Lebron james

2-5 名言: 找一句你欽佩的名人說的名言陶衅,將這個名人的姓名和他的名言打印出來。輸出應(yīng)類似于下面這樣(包括引號):Albert Einstein once said, “A person who never made a mistake never tried anything new.”

name3='William Shakespeare'
word='"To be or not to be,this is a question."'
print(name3,'once said,',word)

輸出顯示:
William Shakespeare once said, "To be or not to be,this is a question."

2-6 名言2: 重復(fù)練習(xí)2-5直晨,但將名人的姓名存儲在變量famous_person 中搀军,再創(chuàng)建要顯示的消息,并將其存儲在變量message 中勇皇,然后打印這條消息罩句。

famous_person='William Shakespeare'
message='"To be or not to be,this is a question."'
print(famous_person+' once said,'+message)

輸出顯示:
William Shakespeare once said, "To be or not to be,this is a question."

2-7 剔除人名中的空白: 存儲一個人名,并在其開頭和末尾都包含一些空白字符敛摘。務(wù)必至少使用字符組合"\t" 和"\n" 各一次门烂。 打印這個人名,以顯示其開頭和末尾的空白兄淫。然后屯远,分別使用剔除函數(shù)lstrip() 、rstrip() 和strip() 對人名進行處理捕虽,并將結(jié)果打印出來慨丐。

name5='\t\totaku\n\n'
print(name5)
print(name5.lstrip())
print(name5.rstrip())
print(name5.strip())
輸出顯示

總結(jié)

一.認識字符串

1.什么是字符串

a.用單引號或者雙引號括起來的字符集就是字符串
b.字符串中每個獨立的單元我們叫字符,
例如:字符串'abc123'中的'a','b','c','1','2','3'就是字符

2.轉(zhuǎn)義字符
說明:python中沒有字符類型泄私,如果要表示字符咖气,就是用一個長度是1的字符串表示
長度:指的就是字符串中字符的個數(shù),例如:'abc' - 長度是3挖滤,'abc123, 你好' -長度是10

a.通過\把一些特殊的字符轉(zhuǎn)換成一個具有特殊功能或者特殊意義的字符崩溪,就是轉(zhuǎn)義字符。
b.常見的轉(zhuǎn)義字符:

\n --   換行
\t --   制表符(相當(dāng)于tab鍵)
\\ --   \
\' --   '

在計算字符串長度的時候斩松,轉(zhuǎn)義字符的長度是1伶唯。

3.Unicode編碼

a.python中字符的編碼采用的是Unicode編碼
b.Unicode是采用兩個字節(jié)對一個字符進行編碼(2^15),能夠?qū)⑹澜缟纤械姆栠M行編碼
c.Unicode編碼中包含了ASCII碼

將字符轉(zhuǎn)換成指定的數(shù)值惧盹,這個過程就是編碼乳幸。(編碼的目的是方便計算機存儲)
將數(shù)值轉(zhuǎn)換成對應(yīng)的符號的過程就是反編碼(解碼)

1.將Unicode碼轉(zhuǎn)換成字符:chr(編碼)

print(chr(0xA001))

2.將字符轉(zhuǎn)換成Unicode編碼:ord(字符)

code1=ord('劉')
code2=ord('詩')      # 結(jié)果是十進制的
code3=ord('意')
print(hex(code1),hex(code2),hex(code3))

二.獲取字符

字符串實質(zhì)是一個不可變的序列瞪讼,序列內(nèi)容是字符。
一旦字符串確定粹断,那么里面的字符和字符位置就不可變了符欠,例如:'abc'

1.怎么獲取單個字符
python中的字符串,可以通過下標(biāo)(索引)來獲取指定位置上的字符:字符串[索引]

說明:
a.字符串:可以是字符串值瓶埋,也可以是字符串變量
b.[]:中括號是固定語法
c.索引:從0開始到字符串長度減1
-1 ~ -長度(-1對應(yīng)的最后一個字符希柿,-2對應(yīng)的是倒數(shù)第二個字符)

注意:索引不能越界,否則會報錯(產(chǎn)生異常)
str1='abcd' # a->0,b->1,c->2,d->3
2.獲取部分字符(獲取子串) —— 切片

字符串[下標(biāo)1:下標(biāo)2] : 從下標(biāo)1開始养筒,獲取到下標(biāo)2前的所有的字符
從下標(biāo)1開始曾撤,每次下標(biāo)值加1,一直加到下標(biāo)2前

str2='hello world'

print(str2[0:4])    # hell
print(str2[2:7])    # llo w
print(str2[2:-1])   # llo worl
print(str2[3:12])   # 切片時下標(biāo)可以越界晕粪,越界的時候就取臨界值
字符串[下標(biāo)1:下標(biāo)2:步進]

從下標(biāo)1開始獲取挤悉,每次下標(biāo)值增加步進值,每增加一次取一個字符巫湘,直到取到下標(biāo)2為止
注意:
a.步進如果是正數(shù)装悲,那么下標(biāo)1對應(yīng)的字符一定要在下標(biāo)2對應(yīng)的位置后面
b. 步進是負數(shù),那么下標(biāo)1對應(yīng)的位置一定要在下標(biāo)2對應(yīng)的位置的前面

str3='helloPython'
print(str3[0:5:2])  # hel   步進:3  hl
print(str3[-1:5:-1]) # nohty

下標(biāo)的省略

切片的時候尚氛,下標(biāo)1和下標(biāo)2是可以省略的

下標(biāo)1省略:默認從開頭開始獲取(開頭可能是字符串的第一個字符诀诊,也可能是字符串的最后一個)

str4='good good study,day day up'
print(str4[:4])
print(str4[:4:-1])

下標(biāo)2省略:從下標(biāo)1位置開始獲取,獲取到結(jié)束(結(jié)束可能是字符串的最后一個字符怠褐,也可能是字符串的第一個字符)

print(str4[1:])
print(str4[3::-1])

print(str4[:])      # good good study,day day up
print(str4[::-1])   # pu yad yad,yduts doog doog

str5='123456789'
print(str5[1::2])

三.字符串的相關(guān)運算

1. + 運算符
字符串1+字符串2:

python支持兩個字符串相加畏梆,其效果就是將兩個字符串拼接在一起產(chǎn)生一個新的字符串您宪。

print('abc'+'123')
str1='world'
newstr='hello'+' '+str1
print(newstr)
2.* 運算符

字符串*整數(shù):字符串重復(fù)多次

print('abc'*3)
3.所有的比較運算符
str1='abc'
print('abc'=='abc')
print(str!='ab')
比較大小

str1>str2; str1<str2
讓str1中的每一位的字符奈懒,分別和str2中每一位的字符依次比較。
直到不同為止宪巨,再看不同字符中誰的編碼值大或者小磷杏。

print('abcd'>'ac')
4.in 和 not in

str1 in str2:判斷str1是否在str2中(str2是否包含str1,;str1是否是str2的子串)

print('abc' in 'a1b2cdefg')
print('f' not in 'python')
5.獲取字符串長度
字符串的長度捏卓,指的是字符串中字符的長度

len()內(nèi)置函數(shù)

str3='project'
print(len(str3),len('abc 123\n'))
補充:空串
str4=''
str5=""
print(len(str5))

len1=len(str3)  # len1=7
index=len1 -1   # 6
print(str3[-1],str3[len(str3)-1])
6.阻止轉(zhuǎn)義
在字符串的最前面添加r/R可以阻止轉(zhuǎn)義
print('a\nb','a\nb\\')
print(len('a\nb\\'))    # 4

print(r'a\nb',R'a\nb\\')
print(len(r'a\nb\\'))   # 6

print('a\\nb\\\\')  # a\nb\\
print('\\\n\\')     # \換行\(zhòng)

print(r'\\\n\\')    # \\\n\\

練習(xí)
str1=r'\nabc123' 求:str1[3] b
str2='abc123\123' 求:str2[-5] 3

四.字符串相關(guān)的方法

python為字符串提供了很多的內(nèi)建函數(shù)

字符串.函數(shù)()
注意:這些所有的函數(shù)的功能都不會影響原來的字符串极祸,而是產(chǎn)生一個新的字符串

str1='hello python'

1.capitalize() 將字符串的第一個字符轉(zhuǎn)換為大寫

newstr=str1.capitalize()
print(newstr)

print('abc'.capitalize())

2.center(width,fillchar)
讓字符串變成width對應(yīng)的長度,原內(nèi)容居中怠晴,剩余的部分使用fillchar的值來填充

width-整數(shù)遥金; fillchar-任意字符
print('abc'.center(10,'*'))

3.rjust(width,fillchar)
讓字符串變成width對應(yīng)的長度,原內(nèi)容靠右蒜田,剩余的部分使用fillchar的值來填充

number='12'
new_id=number.rjust(4,'0')
print(new_id)

4.原字符串.count(str)
判斷str值在原字符串中出現(xiàn)的次數(shù)
str-> 字符串

print('abcabaa'.count('ab'))

5.str1.join(str2)
在str2中的每個字符串之間插入一個str1

print('-+'.join('abc'))

6.str1.replace(old,new)
將str1中old全部替換成new

new_str='abcdahulapuyeahj'.replace('a','+')

7.str1.isalnum()
在str1中至少有一個字符并且所有字符都是字母或數(shù)字則返回True,否則返回False

print('abc'.isalnum())

8.str1.isalpha()
如果str1至少有一個字符并且所有字符都是字母則返回True稿械,否則返回False

print('abc'.isalpha())
print('a12c'.isalpha())

9.str1.isdecimal()
如果str1只包含十進制數(shù)字則返回True,否則返回False

print('23'.isdecimal())
print('23a'.isdecimal())

10.str1.isdigit()
如果str1只包含數(shù)字則返回True,否則返回False

print('123'.isdigit())
print('a123'.isdigit())

11.str1.isnumeric()
如果str1中只包含數(shù)字字符,則返回True冲粤,否則返回False

print('123'.isnumeric())
print('123d'.isnumeric())

12.str1.isspace()
如果str1中只包含空格美莫,則返回True页眯,否則返回False

print(' '.isspace())
print('a b'.isspace())

13.str1.istitle();str1.title()
如果str1是標(biāo)題化的(見 title())則返回True否則返回 False
返回"標(biāo)題化"的str1,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())

print('The Sun'.istitle())
print('the sun'.title())
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厢呵,一起剝皮案震驚了整個濱河市窝撵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌襟铭,老刑警劉巖碌奉,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝌矛,居然都是意外死亡道批,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門入撒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隆豹,“玉大人,你說我怎么就攤上這事茅逮×模” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵献雅,是天一觀的道長碉考。 經(jīng)常有香客問我,道長挺身,這世上最難降的妖魔是什么侯谁? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮章钾,結(jié)果婚禮上墙贱,老公的妹妹穿的比我還像新娘。我一直安慰自己贱傀,他們只是感情好惨撇,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著府寒,像睡著了一般魁衙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上株搔,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天剖淀,我揣著相機與錄音,去河邊找鬼纤房。 笑死纵隔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帆卓。 我是一名探鬼主播巨朦,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼米丘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了糊啡?” 一聲冷哼從身側(cè)響起拄查,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棚蓄,沒想到半個月后堕扶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡梭依,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年稍算,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片役拴。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊探,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出河闰,到底是詐尸還是另有隱情科平,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布姜性,位于F島的核電站瞪慧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏部念。R本人自食惡果不足惜弃酌,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望儡炼。 院中可真熱鬧妓湘,春花似錦、人聲如沸射赛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楣责。三九已至,卻和暖如春聂沙,著一層夾襖步出監(jiān)牢的瞬間秆麸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工及汉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沮趣,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓坷随,卻偏偏與公主長得像房铭,于是被迫代替她去往敵國和親驻龟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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

  • 01.原碼缸匪、反碼翁狐、補碼 計算機在存儲數(shù)據(jù)的時候,都是以二進制的形式存儲在計算機中(存一個數(shù)的補碼)凌蔬,并且計算機只有...
    Ftr_閱讀 269評論 0 1
  • 一露懒、字符串 1.什么是字符串 用單引號或雙引號括起來的字符集就是字符串'jfcsiufcs',"ivisl " ...
    fanzl閱讀 269評論 0 0
  • A認識字符串 01什么是字符串 a.用單引號或者雙引號括起來的字符集就是字符串,例:'jiang2323%%42!...
    xaidc閱讀 123評論 0 0
  • 1.字符串 a.說明 python中沒有字符類型砂心,如果要表示字符懈词,就要用一個長度是1的字符串表示。長度:指的就是長...
    nothingpy閱讀 811評論 0 1
  • 經(jīng)過里面的學(xué)習(xí)和實踐辩诞,本人對一些技術(shù)和方法進行學(xué)習(xí)和研究坎弯。 越發(fā)覺得股票就像賭博,高手永遠不只是在于技術(shù)的高超译暂。更...
    4a112b18c09e閱讀 210評論 0 1