數(shù)據(jù)類型

數(shù)據(jù)類型

1.Number[整型,浮點型,復(fù)數(shù)]

2.String:字符串

3.Boolean:布爾值[True,False]

4.None:空值

5.List:列表

6.Set:集合

7.Tuple:元組

8.Dict: 字典

可變數(shù)據(jù)類型:Dict\Set\List

不可變數(shù)據(jù)類型: Boolean\Tuple\String\Number

以內(nèi)存的值是否可以修改,來判定是否可變

Boolean布爾值

使用場景: 主要用于分支和循環(huán)語句中

True:1? False:0

b1 = True

b2 = False

print(type(b1))

None空值:

None:python中一種特殊數(shù)據(jù)類型,和0區(qū)分

n = None

print(type(n))

Number數(shù)字

1.分類

1.整型

可正可負(fù),處理任意大小的整數(shù)

2.浮點型

注意:四舍五入的誤差

3.復(fù)數(shù)

a+bj

2.數(shù)字類型轉(zhuǎn)換

int()

float()

complex(x,y)[x是實數(shù),y是虛數(shù)]

3.功能

3.1數(shù)學(xué)功能

import math

# 求絕對值

a1 = -10

print(abs(a1))

# 獲取最大值

m = [10,8,12,-2]

print(max(m))

# 獲取最小值

print(min(m))

# 向上取整

upInt = 18.1

print(math.ceil(upInt))

# 向下取整

downInt = 18.3

print(math.floor(downInt))

# 開平方

sartInt = 100

print(math.sqrt(sartInt))

# 平方

powInt = pow(10,2)

print(powInt)

擴(kuò)展:

# 遵循銀行家舍入

# 46舍入,5看情況,如果5后不全為0,如果5后全為0,看5前邊是奇還是偶,如果是奇則進(jìn),如果是偶則舍棄

print(round(4.51))

print(round(3.62))

3.2隨機(jī)數(shù)

import random

# 隨機(jī)抽取

l = [3,5,7,10,-2,10.5]

s = "hello"

print(random.choice(s))

# 打亂列表順序,shuffle就是沒有返回值,直接把列表更新

m_random = [1,2,3,4,5,6,7,8,9,10]

random.shuffle(m_random)

# 隨機(jī)產(chǎn)生一個0-1的數(shù),0-1之間這么一小數(shù)

print(random.random())

# 隨機(jī)產(chǎn)生一個0-10之間的整數(shù)

1. print(random.choice(range(1,10)))

2. print(random.randint(1,10))

# random.randrange(start,end,step)

"""

start:開始值,默認(rèn)為0

end: 結(jié)束值,不包含范圍內(nèi)

step: 步長

"""

字符串

# 首字母變大寫

s = "hello world"

print(s.title())

# 截取 包起始位置的值,不包含尾部

print(s[0:5])

# 截取e,從2--最后,記住第一個位置下標(biāo)為0

print(s[1:])

# 全部輸出

print(s[:])

#? 重復(fù)輸出

print(s * 2)

# 倒敘輸出

print(s[::-1])

字符串索引規(guī)律

從左往右,步長遞增: 0

從右往左, 步長遞減: -1

# 去除空格

s = " hello.py "

print(s.lstrip()) #l去除左邊空格

print(s.rstrip()) #r去除右邊空格

print(s.strip())? #strip去除左右兩邊的空格

轉(zhuǎn)義

需要在字符中使用特殊字符時,python用反斜杠()轉(zhuǎn)義字符。如下表:

\(在行尾時)續(xù)行符\\反斜杠符號

'單引號"雙引號

\n換行\(zhòng)t水平制表符(4個空格)

續(xù)行符

myStr = 'abcde\

f'

格式化輸出

%d? %s? %f? 占位符

print("num = %d, str19 = %s, f = %.3f" % (num, str19, f))

#%? '%%'輸出一個單一的'%'

print("%-10.2f"%22.11111,'modeng') #10 為10個長度 用做左對齊

# 輸出結(jié)果: ? ?? 22.11 modeng

print("%10.2f"%22.11111,'modeng')? #10 為10個長度 用做右對齊

# 輸出結(jié)果: 22.11 ? ?? modeng

使用format進(jìn)行格式化

print("字符串{} 浮點數(shù){} 整數(shù){}".format('asd',11.1,8))

常見函數(shù)

isnumeric() [nu:'mer?k]如果字符串中只包含數(shù)字字符,則返回 True,否則返回 False

splitStr.join(Str)以指定字符串作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串

center(self,width,fillchar)以原始字符串為中心生成新字符串

ljust(width,[str])返回一個原字符串左對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認(rèn)為空格。

rjust(width,[str])返回一個原字符串右對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認(rèn)為空格。

lstrip()/rstrip()/strip截掉字符串左/右邊的空格或指定字符/倆側(cè)

max(str)/min(str)返回字符串 str 中最大/小的字母。

chr(x)將一個整數(shù)轉(zhuǎn)換為一個字符

ord(x)將一個字符轉(zhuǎn)換為它的整數(shù)值

myStr.replace(old,new[,max])把 將字符串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。

find(str,beg=0,end=len)/index(str)查找某個字符出現(xiàn)的位置? 從左側(cè)開始查找 查到返回索引值 查不到返回-1 /查到返回索引 查不到報錯

rfind(str,beg=0,end=len)/rindex(str)查找某個字符出現(xiàn)的位置? 從右側(cè)開始查找 查到返回索引值 查不到返回-1 /右查到返回索引 查不到報錯

split(str=''[,num])num=string.count(str)) 以 str 為分隔符拆分字符串為列表,如果 num 有指定值,則僅截取 num 個子字符串

swapcase()將字符串中大寫轉(zhuǎn)換為小寫,小寫轉(zhuǎn)換為大寫

upper()轉(zhuǎn)換字符串中的小寫字母為大寫

lower()轉(zhuǎn)換字符串中的寫字母為小寫

splitlines(True)以回車換行為條件分割,參數(shù)用來設(shè)置是否保留換行

案例

# 判斷一以什么結(jié)尾

# 擴(kuò)展s字符串來源可以改成鍵盤輸入

s = "hello.py"

if s[-3:] == ".py":

print("你們是最棒的")

else:

print("我們還需要加強(qiáng)練習(xí)")

列表

1.概述

引出:存儲一個數(shù)據(jù)可以采用變量

問題:需要同時存儲多個數(shù)據(jù),該怎么做?

#需求:有5個人的年齡,求平均年齡

age1 = 10

age2 = 32

age3 = 43

age4 = 18

age5 = 90

average = (age1 + age2 + age3 + age4 + age5) / 5

解決:容器【Python提供了一種數(shù)據(jù)結(jié)構(gòu)list,可以同時存儲多個數(shù)據(jù)】

本質(zhì):一種有序的集合

2.創(chuàng)建列表

語法:列表名 = [列表選項一,列表選項二,列表選項三.....]

說明:使用[]表示列表,列表名其實就是標(biāo)識符

? ? ? 將列表中的列表選項被稱為元素

? ? ? 列表中的元素分別被編了號,這些編號被稱為索引【下標(biāo),角標(biāo)】,從0開始編號

3.列表中元素的訪問

3.1取值

語法:列表名[索引]

list4 = [100,200,400,300,800]

num = list4[2]

print(num)

print(list4[2])

3.2替換

語法:列表名[索引] = 新的元素值

list4[2] = 888

print(num)

print(list4[2])

4.列表操作

#1.列表組合

#直接使用加號

list1 = [43,65,76,6]

list2 = [45,77,90,11,2,4,66]

print(list1 + list2)

?

#2.列表重復(fù)

#直接使用乘號

print(list1 * 4)

?

#3.判斷指定元素是否存在于列表中

#成員運算符:in ? ?? not in

#運算的結(jié)果為布爾值

list3 = ["hello",False,189,"good"]

print(189 in list3) #True

print(180 not in list3)? #True

?

#4.列表的截取【分片,切片】

#語法:列表名[開始下標(biāo):結(jié)束下標(biāo)],表示獲取從開始下標(biāo)到結(jié)束下標(biāo)之間的元素,結(jié)果為一個新的列表

#注意:包頭不包尾【前閉后開區(qū)間】 ? [開始下標(biāo),結(jié)束下標(biāo))

list4 = ["hello",False,189,"good",436,54,3,45]

print(list4[2:4])

?

#獲取從指定下標(biāo)到結(jié)尾的列表,包含指定下標(biāo)

print(list4[3:])

?

#獲取從開頭到指定下標(biāo)的列表,不包含指定下標(biāo)

print(list4[:6])

5.列表內(nèi)置功能

語法:列表名.功能()

#一、添加元素

#1.append ? 在列表結(jié)尾添加元素或者新的列表【追加】

list11 = [1,2,3,4,5]

print(list11)

#追加元素

list11.append(100)

print(list11)

#追加列表【將容器和元素一起添加進(jìn)去】

list11.append([547,76,87])

print(list11)

?

#2.extend ?? 在列表的末尾一次性追加另一個列表中的元素

list12 = [1,2,3,4,5,100]

list12.extend([547,76,87]) #只將元素添加進(jìn)去

print(list12)

?

#3.insert? 在指定索引處插入一個元素,不覆蓋原來的元素,原有的元素向后順延

#注意:告訴編譯器,需要在什么位置插入什么元素

list13 = [1,2,3,4,5]

print(list13)

#插入元素

list13.insert(2,555)

print(list13)

#插入列表

list13.insert(4,[22,33])

print(list13)

?

#二、移除元素

#4.pop ? 移除列表中指定下標(biāo)的元素

list14 = [1,2,3,4,5,100]

print(list14)

#默認(rèn)移除最后一個元素

list14.pop()

print(list14)

#移除指定下標(biāo)的元素

list14.pop(3)

print(list14)

?

#5.remove? 移除元素

list15 = [11,23,354,45,5,100]

#如果元素不存在,則出現(xiàn)錯誤:ValueError: list.remove(x): x not in list

#list15.remove(3)

list15.remove(5)

print(list15)

?

#6.clear ? 清空列表

list16 = [11,23,354,45,5,100]

list16.clear()

print(list16)

?

#三、獲取

#7.index ? 從列表中查詢第一個匹配的元素的下標(biāo)

list17 = [11,23,354,45,5,100,100,23,354]

print(list17)

#在整個列表中查詢

print(list17.index(23))

#只在部分列表中查詢【包頭不包尾】

#注意:2和7表示開始下標(biāo)和結(jié)束下標(biāo),列表下標(biāo)范圍

#print(list17.index(23,2,7))

?

#獲取相關(guān)信息,語法:功能()

#8.len 獲取列表中元素的個數(shù)【獲取列表的長度】

list18 = [11,23,354,45,5,100,100,23,354]

#注意:len直接使用

print(len(list18))

?

#9.max? 獲取列表中的最大值

print(max(list18))

?

#10.min? 獲取列表中的最小值

print(min(list18))

?

#11.count? 查看元素在列表中出現(xiàn)的次數(shù)

print(list18.count(23))

?

#四、反轉(zhuǎn)

#12.reverse? 將列表實現(xiàn)倒序

list18.reverse()

print(list18)

?

#五、排序

#sort和sorted

#13.sorted

list19 = [11,23,354,45,5,100,100,23,354]

#默認(rèn)實現(xiàn)升序排序

list1 = sorted(list19)

print(list1)

#可以實現(xiàn)降序排序

list2 = sorted(list19,reverse=True)

print(list2)

?

#通過key關(guān)鍵字來實現(xiàn)排序:根據(jù)字符串的長度排序

list20 = ["zoo","manager","hello","jack","international"]

list3 = sorted(list20,key=len)

print(list3)

?

#14.sort

list19.sort()? #升序

print(list19)

list19.sort(reverse=True)? #降序

print(list19)

?

#六、拷貝【面試題】

#淺拷貝:引用拷貝

list21 = [1,2,3,4,5]

list22 = list21

print(list21)

print(list22)

list22[2] = 100

print(list21) #[1, 2, 100, 4, 5]

print(list22) #[1, 2, 100, 4, 5]

?

#拷貝內(nèi)容

#15.copy([淺拷貝]shallow copy)

list23 = [1,2,3,4,5]

list24 = list23.copy()

print(list23)

print(list24)

list24[2] = 666

print(list23) #[1, 2, 3, 4, 5]

print(list24) #[1,2,666,4,5]

?

#16.deepcopy([彩蛋][面試分量比較重][深拷貝]deep copy)

import copy

list_remove = [1,2,3,[0,1],5,6,7,4]

deep_list_remove = copy.deepcopy(list_remove)

deep_list_remove[3][0] = 333

print(deep_list_remove)

print(list_remove)

本質(zhì):真正獲取一個對象的復(fù)制實體,而非引用——[記住]

6.多維 列表

實質(zhì)上還是一個簡單列表,只不過列表的元素仍然是一個列表

代碼演示:

multiList = [[11,22,33],[100,100],[438,4,4,3,21]]

取值

multiList[0] ? ? ? # [1,2,3]

multiList[0][0] ?? # 1

沒錢? ? 零買1根? ? ? ? ? ? ? ? ? ? 一個變量

稍微有錢 ? 一包 ? ? ? ? ? ? 一維列表【20個變量】

條 ? ? 10包 ? ? ? ? ? ? 二維列表【10個一維列表】

6.常見函數(shù)

len()計算列表的長度

list.count()統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)

append向列表中添加一個值

list.extend()在列表末尾一次性追加另一個序列中的多個值(用新列表擴(kuò)展原來的列表)

list.index()從列表中找出某個值第一個匹配項的索引位置

list.insert(index,obj)將對象插入列表

list.pop()移除列表中的一個元素(默認(rèn)最后一個元素),并且返回該元素的值

list.remove()移除列表中某個值的第一個匹配項

list.reverse()反向列表中元素

list.sort()對原列表進(jìn)行排序

list.clear()清空列表

list.copy()復(fù)制列表

copy.deepcopy()深拷貝 拷貝對象及其子對象

copy.copy()淺拷貝 只拷貝父對象,不會拷貝對象的內(nèi)部的子對象

元組(粗略看)

1.概念

元組本質(zhì)上也是有序的集合,和列表非常相似

區(qū)別:

a.列表使用[]表示,元組使用()表示

b.列表可以修改元素值,但是,元組不可以

注意:元組一旦被初始化之后,就不能發(fā)生改變

2.創(chuàng)建元組

語法:元組名 = (元組元素1,元組元素2,元組元素3....)

#語法:元組名 = (元組元素1,元組元素2,元組元素3....)

#1.創(chuàng)建空元組

tuple1 = ()

print(tuple1)

?

#2.創(chuàng)建一個帶有元素的元組

tuple2 = (22,23,14,87)

print(tuple2)

?

#3.元組中也可以存儲不同類型的數(shù)據(jù)

tuple3 = ("hello",True,10.24,10)

print(tuple3)

?

#4.創(chuàng)建只有一個元素的元組(強(qiáng)調(diào))

num = 56

tuple4 = (56,) #只有1個元素的時候必須加一個逗號,來消除歧義

3.元組元素的訪問

語法:列表名[索引]

? ? ? 元組名[索引]

tuple1 = (22,23,14,87)

#注意:和列表相同,元素的下標(biāo)也是從0開始的

print(tuple1[1])

#print(tuple1[4])? #IndexError: tuple index out of range? 下標(biāo)越界

?

#獲取元組中的最后一個元素

print(tuple1[-1])

print(tuple1[-2])

print(tuple1[-3])

print(tuple1[-4])? #第一個元素

#print(tuple1[-5]) ? #IndexError: tuple index out of range

?

#修改元組的元素值

#tuple1[1] = 100

?

tuple2 = (22,23,14,87,[66,77])

#修改列表的元素值

tuple2[4][0] = 888

print(tuple2)

4.元組的操作

#1.元組的連接:+

tuple1 = (2,4,54,6)

tuple2 = (4,6565,87)

print(tuple1 + tuple2)

?

#2.元組元素的重復(fù):*

print(tuple1 * 3)

?

#注意:元組的連接和重復(fù)最終得到的是一個新的元組

?

#3.判斷指定元素是否在元組中:in

print(45 in tuple1)

?

#4.元組元素的截取【切片】

#元組名[開始下標(biāo),結(jié)束下標(biāo)],注意:包含開始下標(biāo),但是不包含結(jié)束下標(biāo)

tuple3 = (2,4,54,6,45,100,56,90)

print(tuple3[1:4])

#從指定下標(biāo)開始截取到結(jié)尾,指定下標(biāo)包含在內(nèi)

print(tuple3[3:])

#從開頭截取到指定位置,不包含指定下標(biāo)

print(tuple3[:5])

5.元組功能

#1.獲取元組的長度或者計算元組中元素的個數(shù)

#len

tuple1 = (23,4,46,5787)

len = len(tuple1)

print(len)

?

#遍歷元組

for index in range(0,len):

print(tuple1[index])

?

?

#2.獲取元組中元素的最值

#max ? min

max = max(tuple1)

print(max)

min = min(tuple1)

print(min)

?

#3.列表和元組之間的相互轉(zhuǎn)換

#列表-----》元組

list1 = [23,4,65,76]

print(list1)

new_tuple = tuple(list1)

print(new_tuple)

?

#元組-----》列表

list2 = list(tuple1)

print(list2)

?

#自己實現(xiàn)求元組中最大值

max = tuple1[0]

?

for index in range(0,len(tuple1)):

if tuple1[index] > max:

? #給max重新賦值

? max = tuple1[index]

6.二維元組

tuple1 = ((1,2,3),(22,33),(100,200,300,400))

print(tuple1[0][1])

7.tuple和list之間的區(qū)別(重點)

1.元組中的元素是無法修改的【在項目中如果使用多線程環(huán)境,更多的傾向于操作不變的數(shù)據(jù)】

v1 = (11,22,33)

v1[0] = 666

TypeError: 'tuple' object does not support item assignment

2.元組在占用空間和創(chuàng)建時間上相對而言優(yōu)于列表

import sys

l = [1,3,4,5,6,7,8,9,20]

t = (1,3,4,5,6,7,8,9,20)

print(sys.getsizeof(l),sys.getsizeof(t))

import timeit

print(timeit.timeit(stmt="[1,3,4,5,6,7,8,9,20]"),timeit.timeit(stmt="(1,3,4,5,6,7,8,9,20)"))

字典(詳細(xì))

1.概述

思考問題:存儲多個學(xué)生的成績

一種存儲數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),但是字典的無序的【在內(nèi)存中元素的順序和存放的順序不一定相同】

字典采用的鍵-值【key-value】的形式存儲數(shù)據(jù)

優(yōu)點:具有極快的查找速度,根據(jù)hash函數(shù)映射到指定位置?。?!

key --散列函數(shù)--> hash值,存儲到指定地址,做到快速尋址

2.key的特點

a.字典中的key是唯一的

b.key必須是不可變的實體

? ? 例如:字符串,整數(shù),元組都是不可變的

? ? ? ? ? ? list可變的,不能作為字典中的key

dictA = {(1,2,3):"five",(1,2,3):6}

dictB = {[1,2,3]:"five",(1,2,3):6}

error: TypeError: unhashable type: 'list'

3.字典的創(chuàng)建

語法:字典名 = {鍵1:值1,鍵2:值2,鍵3:值3......}

4.元素訪問

#存儲多個學(xué)生的成績

dict1 = {"jack":78,"hanmeimei":99,"lilei":60}

print(dict1)

?

#元素訪問

#1.獲取 語法:字典名[key]

print(dict1["hanmeimei"])

#print(dict1["tom"]) #KeyError: 'tom'

?

#2.字典名.get()

result = dict1.get("lilei")

print(result)

?

#添加:當(dāng)指定的鍵不存在的時候,則表示添加

dict1["tom"]? = 70

print(dict1)

#但是,如果鍵已經(jīng)存在,則表示修改value

dict1["jack"]? = 50

print(dict1)

?

#刪除 pop

#注意:通過鍵,直接刪除整個鍵值對

dict1.pop("jack")

print(dict1)

?

#遍歷

dict2 = {"jack":78,"hanmeimei":99,"lilei":60}

?

#方式一:只獲取鍵

for key in dict2:

value = dict2[key]

print(key,value)

?

#方式二:只獲取值

#values,得到的結(jié)果是一個列表,當(dāng)做列表處理

print(dict2.values())

?

for value in dict2.values():

print(value)

?

?

#方式三:同時獲取鍵和值

#items,得到的結(jié)果是一個列表,列表中的元素是元組

print(dict2.items())? #[('jack', 78), ('hanmeimei', 99), ('lilei', 60)]

?

for key,value? in dict2.items():

print(key,value)

?

#方式四

for index,key in enumerate(dict2):

value = dict2[key]

print(index,key,value)

?

#獲取鍵值對

print(len(dict1))

5.案例

1. 統(tǒng)計每個字符在列表中出現(xiàn)次數(shù)

l = [1,2,3,4,5,6,7,8,9,2,2,2]

dict = {}

for item in l:

if item in dict:

dict[item] += 1

else:

dict[item] = 1

警惕: 避免bool&數(shù)值同時出現(xiàn)在字典的key中

?

字典的鍵可以使用布爾類型的,True 默認(rèn)代表 1,F(xiàn)alse 默認(rèn)代表 0,如果包含 0 或 1 就無法使用布爾類型:

test = {0:"1", 1:"2", True:"3", False:"4"}

print(test)

{0: '4', 1: '3'}

?

選擇題:

? ? A: {0: '4', 1: '3'}

? ? B: {True: '4', False: '3'}

? ? C: {0:"1", 1:"2", True:"3", False:"4"}

? ? D: {0:"1", 1:"2"}

?

沒有 0 或 1 的情況下:

test = {"a":"1", "b" :"2", True:"3", False:"4"}

print(test)

{'a': '1', True: '3', 'b': '2', False: '4'}

?

集合

1.概述

一個無序不重復(fù)元素的序列

1. 全集: 所有元素的集合.例如實數(shù)集,所有實數(shù)組成的集合就是全集

2. 子集subset和超集superset: 一個集合A所有的元素都在另一個集合B內(nèi),A是B的子集,B是A的超集

3. 真子集和真超集: A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集

4. 并集: 多個集合合并的解構(gòu)

5. 交集: 多個集合的公共部分

6. 差集: 集合中除去和其他集合公共部分

2.集合創(chuàng)建

s = {1,2,3,4,5,6,7,8,9,10}

l = [1,2,3,4,5,6,7,8,9,10]

s = set(l)

注意: 空集合創(chuàng)建只能set(),而不是{},為啥呢?思考一下哈~~

3.集合操作

# set可以進(jìn)行集合運算

a = set('abk')

b = set('bal')

print(a)

print(a - b) ? ? # a和b的差集

print(a | b) ? ? # a和b的并集

print(a & b) ? ? # a和b的交集

print(a ^ b) ? ? # a和b中不同時存在的元素

4.案例

a = [1, 2, 3, 43, 31, 2] ? ? ? ?  # 新建一個列表

b = set(a) ? ? ? ? ? ? ? ? ? ? ? ? # 將列表轉(zhuǎn)為集合

print(b) ? ? ? ? ? ? ? ? ? ? ? ? ? # {1,2,3,43,31}

常見轉(zhuǎn)換函數(shù)

函數(shù)描述

int(x [,base])將x轉(zhuǎn)換為一個整數(shù)

float(x)將x轉(zhuǎn)換到一個浮點數(shù)

complex(x [,y])將 x 和 y 轉(zhuǎn)換到一個復(fù)數(shù),實數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達(dá)式。

str(x)將對象 x 轉(zhuǎn)換為字符串

eval(str)用來計算在字符串中的有效Python表達(dá)式,并返回一個對象

tuple(s)將序列 s 轉(zhuǎn)換為一個元組

list(s)將序列 s 轉(zhuǎn)換為一個列表

set(s)轉(zhuǎn)換為可變集合

dict(d)創(chuàng)建一個字典。d 必須是一個序列 (key,value)元組。

bool轉(zhuǎn)換為bool值

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容