day6-python數(shù)字類型&列表

今天第二周诺核,給大家分享的是:

python數(shù)字類型和列表的知識披粟。

平時偶爾會發(fā)發(fā)pygame小游戲代碼碧绞,但是日常課程還是要做的祝钢。

一比规、數(shù)字類型

python中的數(shù)字類型: int(整型)、float(浮點型)拦英、bool(布爾)蜒什、complex(復(fù)數(shù))

1. int(整型)

所有整數(shù)對應(yīng)的類型。(注意:在python2.x有l(wèi)ong)

2.float(浮點型)

所有的小數(shù)對應(yīng)的類型, 支持科學計數(shù)法

print(3e4, 4e-2)

3. bool(布爾)

只有True和False兩個值疤估,其他 True 本質(zhì)就是數(shù)字 1灾常, False 本質(zhì)是數(shù)字 0 。

print(1+1, True + 1, False + 1)

4.complex(復(fù)數(shù))

包含實部和虛部的數(shù)就是復(fù)數(shù)铃拇,對應(yīng)的數(shù)據(jù)類型是 complex钞瀑。
python 中表示復(fù)數(shù)的時候,虛數(shù)單位是 j锚贱; j前面如果是1仔戈,1不能省

num1 = 10+2j
num2 = 2 - 1j
num3 = 20j
print(type(num1), type(num2))

python支持復(fù)數(shù)運算

print(num1 + num2)
print(num1 * num2)
"""
10    2
2j    -1j
-10j + 20 + 4j + 2 = 22-6j
"""

5. 數(shù)據(jù)類型轉(zhuǎn)換

python中所有數(shù)據(jù)類型的轉(zhuǎn)換方式: 類型名(數(shù)據(jù))

1)整型: int(數(shù)據(jù)) - 將制定的數(shù)據(jù)轉(zhuǎn)換成10進制的整數(shù)

所有的數(shù)字類型對應(yīng)的數(shù)據(jù)都可以轉(zhuǎn)換成整型(復(fù)數(shù)不行),部分字符串也可以轉(zhuǎn)換成整型
對于字符串來說拧廊,去掉引號以后本身是合法的制定進制的整數(shù)對應(yīng)的字符串才能轉(zhuǎn)換成對應(yīng)的整型

print(int(12.5), int(-12.9))    # 12, -12
print(int(True), int(False))    # 1, 0
print(int('123'))    # 123
print(int('+123'), int('-123'))    # 123 -123
print(int('123.25'))    # 報錯
print(int('abc'))    # 報錯
# int(數(shù)據(jù)监徘,進制數(shù))
print(int('0b1101', 2))
print(int('1101', 2))     # 13
print(int('1201', 2))   # 報錯
2) 浮點型:float(數(shù)據(jù))

整型和布爾都可以轉(zhuǎn)換成浮點型,部分字符串也可以轉(zhuǎn)換成浮點型(去掉引號后本身就是一個合法的浮點型或者整型數(shù)據(jù))吧碾。

print(float(10))     # 10.0
print(float(True))   # 1.0
print(float('100'))  # 100.0
print(float('12.5'))  # 12.5

# print(float('12.5a'))  # 報錯
print(float('3e4'))   # 30000.0
3)布爾:bool(數(shù)據(jù))

所有類型的所有的數(shù)據(jù)都可以轉(zhuǎn)換成布爾凰盔。
所有零值或者空值會轉(zhuǎn)換成False,其他都是True

二、 列表

容器型數(shù)據(jù)類型:可以同時保存多個數(shù)據(jù)的數(shù)據(jù)倦春。常見的容器型數(shù)據(jù)類型有:列表户敬、元組、字典睁本、集合尿庐、字符串、迭代器呢堰、生成器
容器中的每個獨立的數(shù)據(jù)叫元素

1. 什么是列表

列表是容器型數(shù)據(jù)類型抄瑟,將[]作為容器的標志,里面的多個數(shù)據(jù)(元素)用逗號隔開枉疼。比如: [120, 30, 40]
列表是可變的(列表中元素的個數(shù)和值可變);列表是有序的

列表中的元素: 可是任何類型的數(shù)據(jù)皮假;不同元素的類型可以不一樣

scores = [90, 89, 67, 90, 56, 88]
print(scores)

list1 = [90, 12.89, True, 'abc', [1, 2, 3]]
print(list1)

2. 獲取列表元素

1)獲取單個元素

語法:
列表[下標]

說明:
列表 - 任何結(jié)果是列表的表達式: 獨立的列表數(shù)據(jù)鞋拟、保存列表的變量、返回值是列表的函數(shù)調(diào)用表達式惹资、結(jié)果是列表的運算表達式
[] - 固定寫法
下標 - 想要獲取的元素對應(yīng)的下標
補充:什么是下標
下標又叫索引贺纲,是用來表示有序序列中元素的位置(順序)。
列表中的每個元素都有固定的下標用來表示這個元素在列表中的位置褪测,下標值的范圍是從0開始依次增加猴誊,其中0表示第一個元素...
列表中的每個元素有兩種下標值,一種是正的下標值(從0開始),另一種是負的下標值(從-1開始汰扭,依次減少稠肘,-1表示是最后一個元素)

注意: 下標不能越界

names = ['張飛', '劉備', '關(guān)羽']
print(names[1], names[-2])    # 劉備 劉備
print([1, 2, 3, 4][1])
print(names[10])    # IndexError: list index out of range
2)獲取部分元素 - 切片

語法:
列表[開始下標:結(jié)束下標:步長] - 從開始下標開始,每次下標值增加步長萝毛,取到結(jié)束下標前為止

說明:
列表 - 任何結(jié)果是列表的表達式: 獨立的列表數(shù)據(jù)项阴、保存列表的變量、返回值是列表的函數(shù)調(diào)用表達式笆包、結(jié)果是列表的運算表達式
[] - 固定寫法
開始下標环揽、結(jié)束下標 - 下標值,整數(shù)
步長 - 整數(shù)

如果步長是正,表示獲取元素的時候是從前往后取庵佣, 保證開始下標對應(yīng)的元素要在結(jié)束下標對應(yīng)的元素的前面歉胶,否則切片的結(jié)果是[];
如果步長是負巴粪,表示獲取元素的時候是從后往前取, 保證開始下標對應(yīng)的元素要在結(jié)束下標對應(yīng)的元素的后面通今,否則切片的結(jié)果是[]。

注意: 切片的時候下標可以越界

nums = [1, 2, 3, 4, 5, 6, 7, 8]
print(nums[1:4:1])    # range(1, 4, 1) -> 1, 2, 3

names = ['魯班7號', '亞索', '妖姬', '盲僧', '狗頭']
print(names[1:3:1])      # ['亞索', '妖姬']
print(names[-4:3:1])     # ['亞索', '妖姬']
print(names[1:-1:2])     # ['亞索', '盲僧']
print(names[4:1:1])    # []
print(names[-1:1:1])   # []
print(names[-1:1:-1])  # ['狗頭', '盲僧', '妖姬']
print(names[-1:0:-2])    # ['狗頭', '妖姬']
print(names[2:5:1])    # ['妖姬', '盲僧', '狗頭']
3)切片語法的省略寫法

a. 省略步長
列表[開始下標:結(jié)束下標] ---> 列表[開始下標:結(jié)束下標:1]

names = ['魯班7號', '亞索', '妖姬', '盲僧', '狗頭']
print(names[1:4])      # ['亞索', '妖姬', '盲僧']
print(names[-2:4])     # ['盲僧']
print(names[-1:4])     # []

b. 省略開始下標
列表[:結(jié)束下標:步長] / 列表[:結(jié)束下標]

步長為正肛根, 表示從第一個元素開始往后取
步長為負辫塌,表示從最后一個元素開始往前取

movies = ['肖生克的救贖', '鄉(xiāng)村老尸', '霸王別姬', '綠里奇跡', '辛德勒的名單', '盜夢空間']
print(movies[:-1])    # ['肖生克的救贖', '鄉(xiāng)村老尸', '霸王別姬', '綠里奇跡', '辛德勒的名單']
print(movies[:2:-1])   # ['盜夢空間', '辛德勒的名單', '綠里奇跡']
print(movies[:0:-2])  # ['盜夢空間', '綠里奇跡', '鄉(xiāng)村老尸']

c. 省略結(jié)束下標
列表[開始下標::步長] / 列表[開始下標:]

步長為正,從前往后取到最后一個元素為止
步長為負派哲,從后往前取到第一個元素為止

print(movies[-3:])    # ['綠里奇跡', '辛德勒的名單', '盜夢空間']
print(movies[-1::2])  # ['盜夢空間']

d. 同時省略開始下標和結(jié)束下標
列表[::步長] / 列表[:]

步長為正臼氨,從第一個元素取到最后一個元素
步長為負,從最后一個元素取到第一個元素

movies = ['肖生克的救贖', '鄉(xiāng)村老尸', '霸王別姬', '綠里奇跡', '辛德勒的名單', '盜夢空間']
print(movies[::-1])    # ['盜夢空間', '辛德勒的名單', '綠里奇跡', '霸王別姬', '鄉(xiāng)村老尸', '肖生克的救贖']
print(movies[:])     # ['肖生克的救贖', '鄉(xiāng)村老尸', '霸王別姬', '綠里奇跡', '辛德勒的名單', '盜夢空間']
print(movies[::2])   # ['肖生克的救贖', '霸王別姬', '辛德勒的名單']
4)遍歷列表 - 將列表中的元素一個一個的取出來
方法一:直接法
for 變量 in 列表:
    循環(huán)體
    
方法二:通過下標間接獲取
for 下標 in 下標對應(yīng)的數(shù)字序列:
    列表[下標]
    循環(huán)體

movies = ['肖生克的救贖', '鄉(xiāng)村老尸', '霸王別姬', '綠里奇跡', '辛德勒的名單', '盜夢空間']
for m in movies:
    print(m)

print('===================================')

len(列表) - 返回列表中元素的個數(shù)

for index in range(len(movies)):
    print(movies[index])

練習1:用一個列表保存一個班所有學生的分數(shù)芭届,統(tǒng)計不及格學生的人數(shù)
練習2:用一個列表保存一個班所有學生的分數(shù)储矩,計算班級學生的平均分

scores = [89, 45, 60, 23, 68, 9, 76]
count = 0
for score in scores:
    if score < 60:
        count += 1
print('不及格學生人數(shù):', count)

sum1 = 0
for score in scores:
    sum1 += score
print('平均分:', sum1 / len(scores))

三、列表的增刪改&判斷

1.增 - 添加元素

1)append - 追加

列表.append(元素) - 在指定列表的最后添加指定的元素

list1 = [10, 20, 30]
print(list1)
list1.append(100)
print(list1)
2)insert - 插入

列表.insert(下標, 元素) - 在指定列表指定下標對應(yīng)的元素前插入指定的元素

list1 = [10, 20, 30]
list1.insert(1, 100)
print(list1)

練習:不斷輸入學生的成績褂乍,并且把所有輸入的成績保存在一個列表中持隧。(輸入-1表示結(jié)束)

請輸入成績: 56
請輸入成績: 90
請輸入成績: 89
請輸入成績: -1

[56, 90, 89]

scores = []
while True:
    score = int(input('請輸入成績:'))
    if score == -1:
        break
    else:
        # scores.append(score)
        scores.insert(0, score)
print(scores)

2. 刪 - 刪除元素

1) del語句

del 列表[下標] - 刪除列表中指定下標對應(yīng)的元素(下標不能越界)

teleplays = ['甄嬛傳', '大明王朝', '瑯琊榜', '慶余年', '還珠格格', '請回答1988']
del teleplays[2]
print(teleplays)

del teleplays[-4]
print(teleplays)
2) remove

列表.remove(元素) - 刪除列表中指定的元素(如果指定的元素不存在,程序會報錯;如果指定的元素存在多個逃片,只刪最前面的那一個)

teleplays.remove('西游記')   # ValueError: list.remove(x): x not in list

teleplays = ['甄嬛傳', '大明王朝', '瑯琊榜', '慶余年', '還珠格格', '請回答1988', '甄嬛傳']
teleplays.remove('甄嬛傳')
print(teleplays)

3) pop

列表.pop() - 取出列表中的最后一個元素屡拨,并且返回被取出的元素
列表.pop(下標) - 取出列表中指定下標對應(yīng)的元素,并且返回被取出的元素

teleplays = ['甄嬛傳', '大明王朝', '瑯琊榜', '慶余年', '還珠格格', '請回答1988', '甄嬛傳']
t = teleplays.pop(1)
print(teleplays)
print(t)

t = teleplays.pop()
print(teleplays, t)

3.改 - 修改元素的值

a. 列表[下標] = 新元素 - 將列表中指定下標對應(yīng)的元素修改成新的元素 (下標不能越界)

anime_list = ['火影忍者', '海賊王', '死神', '天線寶寶', '死亡筆記']
anime_list[-2] = '海綿寶寶'
print(anime_list)

練習: 將列表[89, 45, -55, 30, -78, 90, -34, 87, 10, 59, 100, -19]中所有的負數(shù)都改成0
[89, 45, 0, 30, 0, 90, 0, 87, 10, 59, 100, 0]

nums = [89, 45, -55, 30, -78, 90, -34, 87, 10, 59, 100, -19]
for index in range(len(nums)):
    if nums[index] < 0:
        nums[index] = 0
print(nums)

b. 列表1[開始下標:結(jié)束下標] = 列表2 - 將列表1中開始下標到結(jié)束下標選中的所有元素替換成列表2中所有的元素

nums = [10, 20, 30, 40, 50]
nums[1:3] = [100, 200, 300]    # [10, 100, 200, 300, 40, 50]
print(nums)

4. in 和 not in

元素 in 列表   -  判斷指定元素是否在指定列表中
元素 in not 列表   -   判斷指定元素是否不在指定列表中
print(10 in nums)     # True
print(20 not in nums)     # True

好了,今天內(nèi)容到此結(jié)束洁仗,咱們明天見~

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市性锭,隨后出現(xiàn)的幾起案子赠潦,更是在濱河造成了極大的恐慌,老刑警劉巖草冈,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件她奥,死亡現(xiàn)場離奇詭異,居然都是意外死亡怎棱,警方通過查閱死者的電腦和手機哩俭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拳恋,“玉大人凡资,你說我怎么就攤上這事∶耍” “怎么了隙赁?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梆暖。 經(jīng)常有香客問我伞访,道長,這世上最難降的妖魔是什么轰驳? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任厚掷,我火速辦了婚禮,結(jié)果婚禮上级解,老公的妹妹穿的比我還像新娘冒黑。我一直安慰自己,他們只是感情好蠕趁,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布薛闪。 她就那樣靜靜地躺著,像睡著了一般俺陋。 火紅的嫁衣襯著肌膚如雪豁延。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天腊状,我揣著相機與錄音诱咏,去河邊找鬼。 笑死缴挖,一個胖子當著我的面吹牛袋狞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼苟鸯,長吁一口氣:“原來是場噩夢啊……” “哼同蜻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起早处,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤湾蔓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后砌梆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體默责,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年咸包,在試婚紗的時候發(fā)現(xiàn)自己被綠了桃序。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡烂瘫,死狀恐怖媒熊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情忱反,我是刑警寧澤泛释,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站温算,受9級特大地震影響怜校,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜注竿,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一茄茁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巩割,春花似錦裙顽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闻丑,卻和暖如春漩怎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗦嗡。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工勋锤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侥祭。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓叁执,卻偏偏與公主長得像茄厘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谈宛,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351