自學(xué)計(jì)劃 - python 小白基礎(chǔ)教程 - 第三課:字符串和數(shù)字

目錄

簡(jiǎn)介
第一課:python 的介紹
第二課:變量與操作符
第三課:字符串和數(shù)字
第四課:條件執(zhí)行語(yǔ)句
第五課:列表與元組
第六課:循環(huán)語(yǔ)句
第七課:集合
第八課:字典
第九課:函數(shù)
第十課:面向?qū)ο?/a>
第十一課:文件的操作
第十二課:學(xué)生管理系統(tǒng)

字符串的索引

我們?cè)谥耙呀?jīng)接觸過(guò)字符串缺猛,它在 python 是str類型±恚現(xiàn)在讓我我們來(lái)更深入地了解一下问裕。

一個(gè)字符串是一系列字符的組合,因此我們可以通過(guò)方括號(hào)操作符號(hào)加上序號(hào)來(lái)獲取單個(gè)字符。

words = '小明愛吃瓜'
print(words[1])

咦,第一個(gè)字符不是嗎稠歉?為什么這里打印了,我的 python 壞掉了嗎蹂窖?

你的 python 沒(méi)有壞掉轧抗,因?yàn)樵诮^大多數(shù)包括 python 的程序語(yǔ)言中,計(jì)數(shù)都是從 0 開始的瞬测。

index

這意味著我們使用序號(hào)0才能拿到字横媚。

words = '小明愛吃瓜'
print(words[1])

我們?nèi)∽詈笠粋€(gè)字符豈不是要先數(shù)下字符串有多少個(gè)字符,如果字符串是一篇論文月趟,我們不是要數(shù)到腦殼疼灯蝴?

這樣子的話讓 python 幫我們數(shù)吧,內(nèi)建的len函數(shù)可以幫我們數(shù)出字符串的長(zhǎng)度孝宗。由于序號(hào)從 0 開始穷躁,長(zhǎng)度減 1 就是我們最后一個(gè)字符的序號(hào)。

words = '小明愛吃瓜'
length = len(words)
print('長(zhǎng)度:', length)
print('最后一個(gè)元素是:', words[length-1])
長(zhǎng)度: 5
最后一個(gè)元素是: 瓜

拿最后一個(gè)字符除了數(shù)長(zhǎng)度之外我們還有更好的辦法因妇,就是用 -1 作為序號(hào)问潭。

因?yàn)?python 里同時(shí)有另一種取值方式,那就是 -1 作為最后一個(gè)元素的序號(hào)婚被,往前逐個(gè)遞減狡忙。

index
words = '小明愛吃瓜'
print('最后一個(gè)元素是:', words[-1])
最后一個(gè)元素是: 瓜

字符串切片

字符串中的一部分叫作切片,例如"愛吃"相對(duì)于"小明愛吃瓜"址芯。我們同樣可以用方括號(hào)操作符去獲取字符串的切片, 獲取方式為 [a:b]灾茁。其中 a 為起始序號(hào),b 為結(jié)束序號(hào)谷炸。
注意的是獲取的切片包含 a 不包含 b北专。

例如要獲取"愛吃"

words = '小明愛吃瓜'
sliced = words[2:4]

print(sliced)
愛吃

當(dāng)我們將 a 置為空時(shí)旬陡,切片結(jié)果為 b 之前不包含 b的所有字符拓颓。當(dāng)我們將 b置為空時(shí),切片的結(jié)果就為 a 之后并包含 a 的所有字符描孟。

words = '小明愛吃瓜'
print(words[:4])
print(words[2:])
小明愛吃
愛吃瓜

當(dāng) a 等于 b 時(shí)返回結(jié)果為空字符串录粱,當(dāng) ab 都置空時(shí)返回當(dāng)前字符串的拷貝對(duì)象腻格。

words = '小明愛吃瓜'
print(words[2:2])
print(words[:])

輸出


小明愛吃瓜

in 操作符

in 操作符可以左右各接收一個(gè)字符串,判斷左邊的字符串是否被包含在右邊的字符串中啥繁,返回結(jié)果是一個(gè) bool 對(duì)象菜职。

words = '小明愛吃瓜'
print('小明' in words)
print('小紅' in words)

輸出

True
False

字符串相關(guān)函數(shù)

我們依舊可以用dir查看字符串中有哪些可用的函數(shù),并且使用 help 查看其幫助文檔旗闽。

words = '小明愛吃瓜'
print(dir(words))
print(help(words.upper))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Help on built-in function upper:

upper() method of builtins.str instance
    Return a copy of the string converted to uppercase.

我們介紹幾個(gè)常用的方法酬核。首先是upper,將字符串的字母轉(zhuǎn)換成大寫适室。

words = 'happy'
print(words.upper())
HAPPY

很顯示嫡意,對(duì)應(yīng)的 lower 就是小寫。

words = 'HAPPY'
print(words.lower())
happy

isdigit 的用法是判斷字符串是否是書面意思上的數(shù)字捣辆。

words = '10'
print(words.isdigit())
words = '10ab'
print(words.isdigit())
help(str.isdigit)
True
False
Help on method_descriptor:

isdigit(self, /)
    Return True if the string is a digit string, False otherwise.

    A string is a digit string if all characters in the string are digits and there
    is at least one character in the string.

很多內(nèi)置函數(shù)的學(xué)習(xí)可以用 help 函數(shù)去查看和了解蔬螟。建議同學(xué)們可以經(jīng)常使用,這里就不過(guò)多贅述了汽畴。

數(shù)字類型

常見的數(shù)字類型包括 int(整型)和 float (浮點(diǎn)型)旧巾。在之前我們已經(jīng)用 str 類型來(lái)表示我們生活中的一些常見內(nèi)容了,比如姓名忍些、地址鲁猩、小說(shuō)等我們都用 str 類型進(jìn)行保存。

我們還需要一些類型罢坝,來(lái)表示我們的體重廓握、年齡、商品的價(jià)格等數(shù)據(jù),并且能對(duì)他們進(jìn)行數(shù)學(xué)上的運(yùn)算嘁酿。這時(shí)就需要intfloat類型隙券。為什么需要定義兩種類型呢?

因?yàn)閷?duì)于 int(整型)的數(shù)據(jù)闹司,它可以用來(lái)表達(dá)次數(shù)的概念娱仔。我去了兩次北京,而不能說(shuō)我去了 2.5 次北京开仰。因此在使用上整數(shù)與帶小數(shù)的數(shù)字必須有所區(qū)分,所以把數(shù)字分成 intfloat兩個(gè)類型薪铜。

int 整型

當(dāng)我們給變量賦值一個(gè)不帶小數(shù)點(diǎn)的數(shù)字時(shí)众弓,這個(gè)變量就默認(rèn)為int(整型)。

n = 12
print(type(n))
<class 'int'>

注意隔箍,兩個(gè)整型經(jīng)過(guò)除法運(yùn)算后谓娃,不管結(jié)果是不是書面意義上的整數(shù),其都為 float (浮點(diǎn)型)蜒滩。

n = 4 / 2
print(type(n))
<class 'float'>

float 浮點(diǎn)型

一個(gè)數(shù)字只要帶有 . 都為浮點(diǎn)型滨达。

f1 = 1.5
f2 = 1.
f3 = .5
print(f1, type(f1))
print(f2, type(f2))
print(f3, type(f3))
1.5 <class 'float'>
1.0 <class 'float'>
0.5 <class 'float'>

練習(xí)

1.定義姓名奶稠、年齡、身高三個(gè)變量來(lái)保存關(guān)于你自身的數(shù)據(jù)捡遍,你能說(shuō)出他們分別屬于什么類型嗎锌订?
2.打印出你姓名中的姓,假設(shè)你是慕容XX復(fù)姓的話又該如何画株?

解析

1.定義姓名辆飘、年齡、身高三個(gè)變量來(lái)保存關(guān)于你自身的數(shù)據(jù)谓传,你能說(shuō)出他們分別屬于什么類型嗎蜈项?

name = '小明'
age = 18
height = 1.8

print('name 的類型是:', type(name))
print('age 的類型是:', type(age))
print('height 的類型是:', type(height))
name 的類型是: <class 'str'>
age 的類型是: <class 'int'>
height 的類型是: <class 'float'>

2.打印出你姓名中的姓,假設(shè)你是慕容XX復(fù)姓的話又該如何续挟?

name = '王小明'
print('姓:', name[0])
name = '慕容小明'
print('姓:', name[:2])
姓: 王
姓: 慕容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末紧卒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诗祸,更是在濱河造成了極大的恐慌跑芳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贬媒,死亡現(xiàn)場(chǎng)離奇詭異聋亡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)际乘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門坡倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人脖含,你說(shuō)我怎么就攤上這事罪塔。” “怎么了养葵?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵征堪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我关拒,道長(zhǎng)佃蚜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任着绊,我火速辦了婚禮谐算,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘归露。我一直安慰自己洲脂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布剧包。 她就那樣靜靜地躺著恐锦,像睡著了一般往果。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上一铅,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天陕贮,我揣著相機(jī)與錄音,去河邊找鬼馅闽。 笑死飘蚯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的福也。 我是一名探鬼主播局骤,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼暴凑!你這毒婦竟也來(lái)了峦甩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤现喳,失蹤者是張志新(化名)和其女友劉穎凯傲,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗦篱,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冰单,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灸促。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诫欠。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浴栽,靈堂內(nèi)的尸體忽然破棺而出荒叼,到底是詐尸還是另有隱情,我是刑警寧澤典鸡,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布被廓,位于F島的核電站,受9級(jí)特大地震影響萝玷,放射性物質(zhì)發(fā)生泄漏嫁乘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一球碉、第九天 我趴在偏房一處隱蔽的房頂上張望蜓斧。 院中可真熱鬧,春花似錦汁尺、人聲如沸法精。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)搂蜓。三九已至,卻和暖如春辽装,著一層夾襖步出監(jiān)牢的瞬間帮碰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工拾积, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留殉挽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓拓巧,卻偏偏與公主長(zhǎng)得像斯碌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肛度,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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