title: python復(fù)習(xí)100天--第2天
date: 2020-02-21 15:00:24
tags:
- python
- 基礎(chǔ)
categories: python復(fù)習(xí)
top: 3
Python基本數(shù)據(jù)類型
數(shù)字
類型:int击吱、float、bool座云、complex
-
數(shù)字的四則運(yùn)算
eg:
print(1 + 2) # 整數(shù)相加得整數(shù):3 print(2.1 - 1.1) # 浮點數(shù)相減得浮點數(shù):1.0 print(1 * 2) # 整數(shù)相乘得整數(shù):2 print(2 / 1) # 整數(shù)相除得浮點數(shù):2.0 print(9 // 2) # 取整除法:4 print(9 % 2) # 求余除法:1 print(3 ** 3) # 求3的3次方:27
一般來說,同類型的數(shù)字進(jìn)行四則運(yùn)算會得到同類型的數(shù)字,但是除法不是。因為除法可能會出現(xiàn)小數(shù)婆赠,所以一般在進(jìn)行除法運(yùn)算的時候绵脯,Python會自動把整數(shù)變成浮點數(shù)之后佳励,再進(jìn)行運(yùn)算,所以蛆挫,整數(shù)相除是浮點數(shù)赃承。
-
數(shù)字的類型轉(zhuǎn)換。
eg:
print(1 + 1.1) # 整數(shù)加小數(shù)得小數(shù):2.1 print(1 + True) # 整數(shù)加布爾型得整數(shù):2 print(1 + (2 + 3j)) # 整數(shù)加復(fù)數(shù)得復(fù)數(shù):3+3j
python會自動把低精度的往高精度上轉(zhuǎn)換悴侵。如果是整數(shù)遇到了浮點數(shù)瞧剖,整數(shù)自動轉(zhuǎn)浮點數(shù)(浮點數(shù)能存儲的東西多);同樣的可免,如果是整數(shù)遇到了布爾型抓于,布爾型自動轉(zhuǎn)整數(shù)(整數(shù)儲存的數(shù)據(jù)比布爾型多)。整數(shù)與復(fù)數(shù)的轉(zhuǎn)換規(guī)則也是如此浇借。
# 布爾型的轉(zhuǎn)換規(guī)則 """ 布爾轉(zhuǎn)整數(shù) Ture -> 1 False -> 0 """ print(int(True)) # 布爾轉(zhuǎn)整數(shù):1 print(int(False)) # 布爾轉(zhuǎn)整數(shù):0 # int函數(shù)可以把其它數(shù)據(jù)類型轉(zhuǎn)成整數(shù) """ 整數(shù)轉(zhuǎn)布爾 非零-> True 0 -> False """ print(bool(10)) # 整數(shù)轉(zhuǎn)布爾:True print(bool(-10)) # 整數(shù)轉(zhuǎn)布爾:Ture print(bool(0)) # 整數(shù)轉(zhuǎn)布爾:False
注:int函數(shù)可將數(shù)據(jù)轉(zhuǎn)整數(shù)捉撮,float函數(shù)可以將數(shù)據(jù)轉(zhuǎn)浮點型,bool函數(shù)將數(shù)據(jù)轉(zhuǎn)布爾型妇垢,complex函數(shù)將數(shù)據(jù)轉(zhuǎn)復(fù)數(shù)巾遭。
字符串
字符串切片:上節(jié)已講肉康。具體可以看https://www.vbahome.cn
-
關(guān)于反斜杠轉(zhuǎn)義:如果不想讓它轉(zhuǎn)義,可以加一個r灼舍,代表raw吼和,原生不動。這樣反斜杠就不會轉(zhuǎn)義了骑素。
eg:
print(r'1\n2') # r代表不轉(zhuǎn)義炫乓,此處輸出:1\n2
-
常用字符串內(nèi)置函數(shù)
-
len:用于計算字符串的長度
eg:
print(len('你好瑪利亞')) # 輸出結(jié)果為5
-
-
常用字符串內(nèi)置方法
-
join: 可以使用特定的字符將一個序列拼(通常為元組和列表)接成一個字符串
eg:
list1 = ['你好', ',', '瑪利亞', '!'] # 后面會講list,這里只是一個示意 a = ''.join(list1) # 利用空字符串把列表拼接成一個字符串 print(a) # 輸出結(jié)果:你好,瑪利亞!
replace:用于查找特定的字符串并替換成新的字符串
a = '我愛你献丑,湖南' a = a.replace('湖南', '中國') # 將湖南替換為中國厢岂,并且重新賦值給a print(a) # 輸出結(jié)果: 我愛你,中國
-
find:查找某個字符串是否在該字符串內(nèi)阳距,默認(rèn)只返回第一個匹配的字符串的第一個字符所在位置.
a = 'Hello world,Hello China' result1 = a.find('Hello') # 找Hello的位置,結(jié)果: 0 print(result1)
-
split:以特定字符串進(jìn)行切割塔粒,常用于語句分詞,分詞后的結(jié)果是一個列表.
eg:
a = 'Hello world,Hello China' print(a.split(' ')) # 以空格進(jìn)行分詞 # 輸出結(jié)果:['Hello', 'world,Hello', 'China']
-
title: 將字符串標(biāo)題化筐摘,也就是所有單詞首字母大寫
eg:
a = 'hello world,hello china' print(a.title()) # 標(biāo)題化輸出 # 輸出結(jié)果:Hello World,Hello China
-
upper:將單詞的所有字母都變成大寫
eg:
a = 'hello world,hello china' print(a.upper()) # 小寫單詞轉(zhuǎn)大寫 # 輸出結(jié)果:HELLO WORLD,HELLO CHINA
-
lower: 將所有單詞大寫轉(zhuǎn)小寫
a = 'HELLO WORLD,HELLO CHINA' print(a.lower()) # 大寫單詞轉(zhuǎn)小寫 # 輸出結(jié)果:hello world,hello china
-
startwith: 是否以某個字符串開頭卒茬,返回值為布爾型
eg:
a = 'hello world,hello china' print(a.startswith('hello')) # 判斷是否以hello開頭 # 輸出結(jié)果:True
-
endswith: 是否以某個字符結(jié)尾,返回值為布爾型
eg:
a = 'hello world,hello china' print(a.endswith('china')) # 判斷是否以hello開頭 # 輸出結(jié)果:True
-
strip: 刪除兩邊多余的字符咖熟,默認(rèn)是刪除空格
a = ' hello world,hello china ' print(a.strip()) # 刪除兩邊的空格 print(a.strip().strip('a')) # 刪完空格再刪兩邊的字符a # 輸出結(jié)果: """ hello world,hello china hello world,hello chin """
-
encode:將字符串編碼圃酵,默認(rèn)是utf-8
eg:
a = ' hello world,hello china ' print(a.encode('utf-8')) # 默認(rèn)是utf-8,可以不填 # 輸出結(jié)果 """ b' hello world,hello china ' """
上面多了一個b,代表是二進(jìn)制格式.
-
decode:將二進(jìn)制解碼成字符串,默認(rèn)用utf-8進(jìn)行解碼
eg:
a = b' hello world,hello china ' b = b'\xe6\x88\x91\xe7\x88\xb1Python' print(a.decode()) # 默認(rèn)是utf-8,可以不填 print(b.decode('utf-8')) # 輸出結(jié)果 """ hello world,hello china 我愛Python """
-
-
字符串的復(fù)制
-
字符串常用*號代表復(fù)制,后面接數(shù)字代表復(fù)制多少次
eg:
a = 'hello' print(a*10) # 輸出結(jié)果 """ hellohellohellohellohellohellohellohellohellohello """
-
-
字符串轉(zhuǎn)數(shù)字
如果是數(shù)字構(gòu)成的字符串,可以將該字符串轉(zhuǎn)成浮點型數(shù)字
-
注意:字符串只能轉(zhuǎn)浮點型數(shù)字馍管,不能轉(zhuǎn)整數(shù)形
eg:
a = '1.0' b = '2' print(type(a)) print(type(b)) c = float(a) d = float(b) print(type(c)) print(type(d)) # 輸出結(jié)果 """ <class 'str'> <class 'str'> <class 'float'> <class 'float'> """
-
數(shù)字轉(zhuǎn)字符串
-
直接用str函數(shù)即可
eg:
a = 1 print(type(1)) b = str(1) print(type(b)) # 輸出結(jié)果 """ <class 'int'> <class 'str'> """
-
列表
list:代表多個有序數(shù)據(jù)的集合
列表是有序的, 每個列表元素都有一個“序號”郭赐,一般稱為索引
索引是從零開始,然后依次加1
-
想要獲取列表的元素,需要用中括號加索引的位置
eg:
a = [1, 2, 3, 4] print(a[1]) # 取第二個索引所在的元素值 # 輸出結(jié)果 """ 2 """
-
列表的創(chuàng)建方法
- 法一: 和上面一樣用中括號然后加逗號隔開
- 法二: 利用list函數(shù)生成列表
a = list() # 創(chuàng)建一個空列表 b = list('ashofsdo') # 將字符串變成列表,默認(rèn)一個字符串一個列表元素 print(a) print(b) print(type(a)) print(type(b)) # 輸出結(jié)果 """ [] ['a', 's', 'h', 'o', 'f', 's', 'd', 'o'] <class 'list'> <class 'list'> """
-
列表常搭配的函數(shù):range
- range函數(shù)用于生成一個數(shù)字范圍,一般以零開始,需要用list轉(zhuǎn)成列表
- range生成的數(shù)字范圍可迭代确沸,常用于循環(huán)(此處不需要過于理解)
eg:
a = range(10) # 生成一個從零開始到10結(jié)束的范圍,不包括10 a_list = list(a) # 將該范圍轉(zhuǎn)為列表 print(a) print(type(a)) print(a_list) print(type(a_list)) # 輸出結(jié)果 """ range(0, 10) <class 'range'> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'> """
- range可以自定義開頭位置捌锭,用逗號隔開
eg:
a = list(range(1, 10)) # 從1開始,到10結(jié)束,不包括10 print(a) # 輸出結(jié)果 """ [1, 2, 3, 4, 5, 6, 7, 8, 9] """
- range可以自定義步長,默認(rèn)是1,可以加一個逗號,第二個逗號右邊表示步長.
eg:
a = list(range(1, 30, 3)) # 從1開始,到30結(jié)束,不包括30,每隔3取一個 print(a) # 輸出結(jié)果 """ [1, 4, 7, 10, 13, 16, 19, 22, 25, 28] """
-
列表的切片
- 切片方法和字符串一樣的
- 切片后可以重新賦值(注意:只有字符串、列表,罗捎、字典可以重新賦值)
eg:
a = list(range(1, 10)) # 從1開始,到30結(jié)束,不包括30,每隔3取一個 print('原來的a為: \n', a) a[0] = 100 # 對a[0]重新賦值 print('重新賦值后的a為:\n', a) print(a[0:5]) # 取第一個到第5個值,不包括a[5],也就是不包括第6個值 print(a[0:7:2]) # 從第一個取到第7個,不包括a[7],每隔兩個取一個 print(a[-5: -1: 2]) # 從倒數(shù)第五個取到倒數(shù)第一個,不包括倒數(shù)第一個,每隔兩個取一個 # 輸出結(jié)果 """ 原來的a為: [1, 2, 3, 4, 5, 6, 7, 8, 9] 重新賦值后的a為: [100, 2, 3, 4, 5, 6, 7, 8, 9] [100, 2, 3, 4, 5] [100, 3, 5, 7] [5, 7] """
-
列表的常用函數(shù)
-
len:計算列表中元素的個數(shù)
eg:
a = list(range(10))
print(len(a))輸出結(jié)果
"""
10
"""- max:找到列表中的最大值 - min函數(shù)代表找到列表中的最小元素 eg: ```python a = list(range(10)) print(max(a)) print(min(a)) # 輸出結(jié)果 """ 9 0 """
-
-
列表的常用方法
-
append:末尾追加元素
eg:
a = list(range(10)) a.append(11) print(a) # 輸出結(jié)果 """ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11] """
-
copy函數(shù)观谦,常用于列表的復(fù)制,防止新列表更新后污染舊的列表桨菜。
eg:
a = list(range(10)) b = a.copy() # 復(fù)制列表a b[0] = 100 print(a) print(b) # 輸出結(jié)果 """
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""- insert: 在置頂?shù)奈恢貌迦朐? eg: ```python a = list(range(10)) a.insert(4, 100) # 在第五個索引后面插入100 print(a) # 輸出結(jié)果 """ [0, 1, 2, 3, 100, 4, 5, 6, 7, 8, 9] """
-
index: 找到某個元素所匹配的索引位置
eg:
a = ['張三', '李四', '王二小'] print(a.index('李四')) b = [2, 1, 5, 6, 9, 4] print(b.index(max(b))) # 先找到b的最大值豁状,再找到最大值對應(yīng)的索引 # 輸出結(jié)果 """ 1
4
"""- sort: 對列表進(jìn)行排序 eg: ```python b = [2, 1, 5, 6, 9, 4] b.sort() # 對b進(jìn)行排序 print(b) # 輸出結(jié)果 """ [1, 2, 4, 5, 6, 9] """
-
reverse:對列表進(jìn)行反轉(zhuǎn)
eg:
b = [2, 1, 5, 6, 9, 4] b.reverse() # 對b進(jìn)行反轉(zhuǎn) print(b) # 輸出結(jié)果 """ [4, 9, 6, 5, 1, 2] """
-
pop: 刪除元素,默認(rèn)刪除最后一個元素
eg:
b = [2, 1, 5, 6, 9, 4] print('原始的b列表長這樣:\n', b) b.pop() # 刪除最后一個元素 print('刪除最右邊的元素后\n', b) b.pop(0) # 刪除第一元素 print('刪除第一個元素后的樣子:') print(b) # 輸出結(jié)果 """ 原始的b列表長這樣: [2, 1, 5, 6, 9, 4] 刪除最右邊的元素后 [2, 1, 5, 6, 9] 刪除第一個元素后的樣子: [1, 5, 6, 9] """
-
remove函數(shù)倒得,用于刪除特定的元素泻红,pop是刪索引,注意兩者區(qū)別霞掺。
eg:
b = [2, 1, 5, 6, 9, 4] print('原始的b列表長這樣:\n', b) b.remove(5) # 刪除元素5 print('第一次刪除后\n', b) b.remove(6) # 刪除元素6 print('第二次刪除后:') print(b) # 輸出結(jié)果
"""
原始的b列表長這樣:
[2, 1, 5, 6, 9, 4]
第一次刪除后
[2, 1, 6, 9, 4]
第二次刪除后:
[2, 1, 9, 4]
""" -
方法和函數(shù)的區(qū)別
方法是一種特殊的函數(shù)
-
方法屬于某一個對象(數(shù)字谊路、列表、字符串都可以看成對象根悼,后面會仔細(xì)講)凶异,而函數(shù)可以單獨存在
eg:如列表的pop方法只有列表才可以用蜀撑,而max函數(shù)可以直接使用
方法使用:obeject.funciton(),函數(shù)的使用:funciton()
-
方法包含的參數(shù)中,一定有一個參數(shù)是對象本身
eg:如sort方法實際就是對它自身進(jìn)行排序,可以看成是list.sort(self)剩彬,self代表它本身.
博客首發(fā):https://www.vbahome.cn酷麦,歡迎關(guān)注。