2018-08-22 Day3

01.原碼改化、反碼临梗、補碼

計算機在存儲數(shù)據(jù)的時候,都是以二進制的形式存儲在計算機中(存一個數(shù)的補碼),并且計算機只有加法運算今瀑。

1.原碼:數(shù)據(jù)的二進制形式

正數(shù)的原碼:符號位的值是0,后面是數(shù)值大小
負(fù)數(shù)的原碼:符號位的值是1点把,后面是去掉符號的數(shù)值大小
10----> 1010 原碼:00001010
-10----> 原碼:10001010

2.反碼:

正數(shù)的反碼:反碼和原碼一樣
負(fù)數(shù)的反碼:符號不變橘荠,后面的每一位的值取反(0變1,1變0)
10 ----->反碼:00001010
-10 ---->反碼:11110101

3.補碼:

正數(shù)的補碼:補碼和原碼一樣
負(fù)數(shù)的補碼:反碼+1
10 ---->補碼:00001010
-10 ---->補碼:11110110

02.認(rèn)識字符串:

1.字符串定義:

a.在Python中,用單引號或雙引號括起的字符集就是字符串郎逃。
例如:'hfsig5325~!%^$手動閥'哥童,"ss a56"
b.字符串中的每個獨立的單元我們叫字符。
例如:字符串'abc123'中的'a','b','c','1','2','3'就是字符

name='海賊王'
poem='one'

說明:python中沒有字符類型褒翰,如果要表示字符贮懈,就是用一個長度是1的字符串表示。例如:'a','1',
長度:指的就是字符串中字符的個數(shù)优训,例如:'abc'-長度是3朵你,'ABC123, 你好'-長度是:10

2.轉(zhuǎn)義字符

a.通過\將一些特殊的字符轉(zhuǎn)換成一個具有特殊功能或者特殊意義的字符揣非,就是轉(zhuǎn)義字符抡医。
b.常見的準(zhǔn)義字符:
\n ---換行
\t ---制表符(相當(dāng)于tab鍵)
\\ ---\
\' ---'
在計算字符串長度的時候,轉(zhuǎn)義字符的長度是1

poem='海闊憑魚躍早敬,\n天高任鳥飛'
#海闊憑魚躍
#天高任鳥飛
print(poem)
str1='abc\\bcd' 
print(str1)  #abc\bcd
str2='abc\'123' 
print(str2) #abc'123
str3="abc\"123" 
print(str3) #abc"123
str4='abc"123'
print(str4) #abc"123

3.Unicode編碼

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

a.python中字符的編碼采用的是Unicode編碼
b.Unicode是采用兩個字節(jié)對他一個字符進行編碼(2^15)可將世界上所有的符號進行編碼
c.Unicode包含ASCII碼

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

print(chr(0xAC00)) #?
print(chr(0x4E60)) #習(xí)

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

print(ord('廖'),ord('鴻'),ord('業(yè)')) #24278 40511 19994
code1=ord('廖')
code2=ord('鴻')
code3=ord('業(yè)')
print(hex(code1),hex(code2),hex(code3)) #0x5ed6 0x9e3f 0x4e1a

03.獲取字符:

字符串實質(zhì)是一個不可變的序列水孩,序列內(nèi)容是字符镰矿。一旦字符串確定,里面的字符和字符位置就不了變俘种。例如:'abc'

1.怎么獲取單個字符:

python中的字符串秤标,可以通過下標(biāo)(索引)來獲取指定位置上的字符:字符串[索引]

說明:
a.字符串:可以是字符串值,也可以是字符串變量
b.[]:中括號使用固定語法
c.索引:從0開始到字符串長度減1宙刘;-1~-長度(-1對應(yīng)的是最后一個字符)
注意:索引不能越界抛杨,否則會報錯(產(chǎn)生異常)

str1='acbd'#a->0 ,c->1 ,b->2, d->3
print(str1[0]) #a
# print(str1[4])  #IndexError:string index out of range

name='海賊王'
print(name[2]) #王
print(name[-3],name[-2],name[-1]) #海 賊 王
# print(name[-4])  #IndexError:string index out of range

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:6]) #hell
print(str2[2:7]) #llo w
#print(str2[-2:1])注意:下標(biāo)1對應(yīng)的位置玉罐,一定要在下標(biāo)2對應(yīng)的位置前
print(str2[2:-1]) #llo worl
print(str2[3:12])#切片是下標(biāo)可以越界,越界的時候就取臨界值

3. 字符串[下標(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)的位置的前面琅束; 步進如果是負(fù)數(shù)扭屁,那么下標(biāo)1對應(yīng)的字符的位置一定要在下標(biāo)2對應(yīng)的位置的后面。
b.下標(biāo)2對應(yīng)的字符是取不到的涩禀。

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

4.下標(biāo)的省略

切片時料滥,下標(biāo)1和下標(biāo)2是可以省略的。

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

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

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

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

練習(xí):要求將一個字符串中的所有奇數(shù)位上的字符或取出來(位數(shù)從0開始算)

str5='clchcyc'
print(str5[1::2]) #lhy

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

1. + 運算符

python支持兩個字符串相加,其結(jié)果為兩字符串拼接一起屿岂,成新的字符串践宴。
注意:如果+的一邊是字符串,那么另外一個也必須是字符串爷怀,左右類型需對應(yīng)阻肩。

print('lhy'+'8899') #lhy8899
str1 = 'world'
newstr = 'hello'+' '+str1
print(newstr) #hello world
 #print(10+'abc') #IndentationError: unexpected indent

2. * 運算符

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

print('abc'*3)  #abcabcabc

3.所有的比較運算符

str1='abc'
print('abc'==str1) #True
print(str1 !='ab') #True

4.比較大小

str1>str2; st1<str2
讓str1中的每一位的字符,分別和str2中每一位的字符依次比較霉撵。
直到不同為止磺浙,再看不同字符中誰的編碼值大或小

print('abcd'>'ac')# 一一對應(yīng) 比較大小False
print('廖'>'鴻'>'業(yè)') #False
print(ord('廖'),ord('鴻'),ord('業(yè)'))  #24278 40511 19994

5.in和not in

str1 in str2:判斷str1是否在str2中(str2是否包含str1洪囤,str1是否為str2的子串)
結(jié)果是布爾值

print('abc' in 'abcdefg') #True
print('f' not in 'python') #True

6.獲取字符串長度

字符串的長度指的是字符串中字符的個數(shù)
len()內(nèi)置函數(shù)---->計算字符串中字符的個數(shù)

str3='CCTVcctv'
print(len(str3),len('abc 123\n')) #8 8

7.空串

str4 = ''
str5 = ""
print(len(str4),len(str5)) #0 0
print(str3[-1],str3[len(str3)-1]) #v v

8.阻止轉(zhuǎn)義

在字符串最前面添加r/R可以阻止轉(zhuǎn)義

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

練習(xí)

str1= r'\nabc123' 求str1[3]
str2= 'abc123\123' 求:str2[-5]

str1= r'\nabc123'
print(str1[3]) #b
str2= 'abc123\\123'
print(str2[-5]) #3

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

python為字符串提供了很多的內(nèi)建函數(shù)
使用方法:字符串.函數(shù)()
注意:這些所有函數(shù)的功能都不會影響原來的字符串,而是產(chǎn)生新的字符串

1.capitalize()

把字符串的第一個字符大寫撕氧,并且其余字母小寫展示瘤缩。

str1= 'cctv'
# 1.capitalize()將字符串的第一個字母大寫
newstr=str1.capitalize()
print(newstr) #Cctv
print('abc'.capitalize()) #Abc

2.center(width,fillchar)

字符串在指定的寬度width內(nèi)居中,剩余的部分用字符fillchar的值來填充
width-整數(shù)伦泥;fillchar-任意字符

print('abc'.center(10,'¥')) #¥¥¥abc¥¥¥¥

3.rjust(width,fillchar)

字符串在指定的寬度width內(nèi)居右剥啤,剩余的部分用字符fillchar的值來填充
1 2 3 4 5 55 77 ---->001 002 003 004 005 055 077
1--->001 11--->011

number='1'
new_id=number.rjust(3,'0')
print(new_id)  #001

4.count(str)

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

print('abcaaa'.count('a'))  #4

5.str1.join(str2)

在str2中的每個字符串之間插入一個str1

print('+-'.join('abc')) #a+-b+-c

6.str1.replace(old,new)

將str1中的old全部替換成new

new_str='abcdahulapuyeahj'.replace('a','+')
print(new_str) #+bcd+hul+puye+hj

7.

a.lower(str) : 轉(zhuǎn)換 str 中所有大寫字符為小寫.。
b.upper(str) : 轉(zhuǎn)換 str 中的小寫字母為大寫不脯。

name1='FTrl'
print(name1.lower(),name1.upper()) #ftrl FTRL

8.

Python中有三個去除頭尾字符府怯、空白符的函數(shù),它們依次為:
strip:用來去除頭尾字符防楷、空白符(包括\n牺丙、\r、\t复局、' '冲簿,即:換行、回車亿昏、制表符峦剔、空格)
lstrip:用來去除開頭字符、空白符(包括\n角钩、\r吝沫、\t、' '递礼,即:換行惨险、回車、制表符宰衙、空格)
rstrip:用來去除結(jié)尾字符平道、空白符(包括\n、\r供炼、\t一屋、' ',即:換行袋哼、回車冀墨、制表符、空格)

注意:這些函數(shù)都只會刪除頭和尾的字符涛贯,中間的不會刪除诽嘉。

Day3 作業(yè)

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

name = 'ftr'
str='are you ok?'
print('hello'+' '+name+'~'+' '+str) #hello ftr~ are you ok?
a='hello '
name = 'ftr '
str='are you ok?'
print('%s%s%s'%(a,name,str)) #hello ftr are you ok?

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

name1='FTrl'
print(name1.lower(),name1.upper(),name1.capitalize()) #ftrl FTRL Ftrl

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

print('Tagore once said, “We read the world wrong and say that it deceives us.”')

2-6 名言2: 重復(fù)練習(xí)2-5踏烙,但將名人的姓名存儲在變量famous_person 中,再創(chuàng)建要顯示的消息历等,并將其存儲在變量message 中讨惩,然后打印這條消息。

famous_person='Tagore'
message='“We read the world wrong and say that it deceives us.”'
print(famous_person+' once said, '+message)

2-7 剔除人名中的空白: 存儲一個人名寒屯,并在其開頭和末尾都包含一些空白字符荐捻。務(wù)必至少使用字符組合"\t" 和"\n" 各一次。 打印這個人名寡夹,以顯示其開頭和末尾的空白靴患。然后,分別使用剔除函數(shù)lstrip() 要出、rstrip() 和strip() 對人名進行處理,并將結(jié)果打印出來农渊。

name2='  \n  FTrl  \t  '
print(name2)
print(name2.lstrip()) #用來去除開頭字符患蹂、空白符
print(name2.rstrip()) #用來去除結(jié)尾字符、空白符
print(name2.strip())  #用來去除頭尾字符砸紊、空白符

結(jié)果為:(https://upload-images.jianshu.io/upload_images/13693238-3d0464c5efa42ec3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

總結(jié):

課堂知識已掌握传于,但還需多鞏固。

最后編輯于
?著作權(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