python數據類型

第二節課

今天主要講了數據類型

分爲str字符串、int整數、字典、列表、集合、元組

# ########################################## str 字符串 ###############################################

#1、字符串首字母大寫capitalize

# name = 'liuming'

# v = name.capitalize() #設置生成一個新的值

# print(name) #字符串本身不會變

# print(v)    #新的值變化


# 2、字符串所有大寫變小寫casefold

# name = 'LiuMing'

# v =name.casefold()

# print(v)


#3、所有大寫變小寫

# name = "LiuMing"

# v=name.lower()

# print(v)


#4、設置長度,並文本居中

#參數1:表示中長度

#參數2:空白處填充的字段(長度只能爲1)

# name = 'liuming'

# v = name.center(15,'-')

# print(v)


#5、表示轉入值在字符串中出現的次數

#參數1:要查找的值(子序列)

#參數2:起始位置(索引)

#參數3:結束位置(索引)

# name = 'alexliumangnishausaisha'

# v = name.count('a')

# print(v)

# v = name.count('li',12)  #起始位置

# print(v)

# v = name.count('a',0,18) #結束位置

# print(v)


#6、是否以xx結尾

# name = 'liuming'

# v = name.endswith('ng')  #正確返回True,錯誤返回False

# print(v)


#7、是否以xx開頭

# name = 'liuming'

# v = name.startswith('lb') #正確返回True,錯誤返回False

# print(v)


#8、轉換成字節

# name ='劉銘'

# v1 = name.encode(encoding='utf-8')  #指定編碼

# v2 = name.encode(encoding='gbk')    #指定編碼

# print(v1,v2)


#9、找到製表符\t進行替換(包含開頭的值),根據製表符,自動生成表格(\n換行製表)

# name = 'liu\tming\tal\nex\twu\tpei'

# v = name.expandtabs(30)   #指定寬度

# print(v)


#10、找到指定子序列的索引位置:不存在返回-1

# name = 'liumingalex'  #不存在返回-1

# v = name.find('q')

# print(v)

# v = name.index('o')    #不存在則報錯

# print(v)


#11、字符串格式化

# i = '我叫:%s;年齡:%s;性別:%s'

# v = i%('劉銘',19,'男')           #使用佔位符格式化字符串

# print(v)

# i = '我叫:{0};年齡:{1};性別:{2}'

# v = i.format('劉銘',19,'男')     #使用format格式化字符串(字符串位置)

# print(v)

# i = '我叫:{name};年齡:{age};性別:{gender}'

# v = i.format_map({'name':'劉銘','age':19,'gender':'那'})   #使用字典格式化字符串

# print(v)


#12、是否是數字、漢字

# name = 'alex8漢字'

# v =name.isalnum()  #允許有數字

# print(v)

# v2 =name.isalpha() #不允許有數字

# print(v2)


#13、判斷是否是數字

# num ='②123二'

# v1 = num.isdecimal()    #可以識別'123'

# v2 = num.isdigit()      #可以識別'123','②'

# v3 = num.isnumeric()    #可以識別'123','②',二

# print(v1,v2,v3)


#14、是否是標識符

# n = 'name'

# v = n.isidentifier()

# print(v)


#15是否全部是小寫

# name = 'LMSlns'

# v =name.islower()   #是否全部是小寫

# print(v)

# v = name.isupper()   #是否全部是大寫

# print(v)


#16、全部變大寫

# name = 'liuming'

# v = name.upper() #字符串全部變大寫,lower()全部變小寫

# print(v)


#17、是否包含隱藏的xx

# name = '二狗二狗二狗\nsbsbsbs'

# v = name.isprintable()

# print(v)


#18、是否全部是空格

# name = '  '

# v =name.isspace()

# print(v)


#19、元素拼接(元素字符串)*****

# name = 'alex'

# v = '_'.join(name)   #指定拼接字符

# print(v)

# name_list = ['alex','liuming','liukang']

# v ='說'.join(name_list)

# print(v)


#20、左右填充

#中center左rjust右ljust

# name = 'alex'

# v =name.center(12,'-')

# print(v)

# v =name.rjust(12,'*')

# print(v)

# v =name.ljust(13,'$')

# print(v)


#21、對應關係+翻譯

# m = str.maketrans('aeojj','12344')          #對應關係

# name = "asdkahkjfhkjsh123hkj;asdsfjjjcnnn"#講對應關係的字母翻譯爲數字

# v = name.translate(m)

# print(v)


#22、分割保留分割的元素

# name = '劉銘SB李SB進'

# v = name.partition('SB')

# print(v)


#23、替換

# name = '劉銘SB李SB進'

# v =name.replace('SB','hehe')   #把SB改成hehe

# print(v)

# v = name.replace('SB','heh',1)  #把第一個SB改成heh

# print(v)



#24.移除空白,\n\t,自定義

# name = 'alex\t\n'

# v =name.strip()

# print(v)


#25.大小寫轉換

# name = 'AlesX'

# v = name.swapcase()

# print(v)


#26.填充

# name = 'alex'

# v = name.zfill(45)   #指定填充的個數

# print(v)


#



####字符串總結

name= 'liuming\t'

name.capitalize()       #字符串首字母大寫

name.casefold()         #所有大寫變小寫

name.lower()            #所有大寫變小寫

name.center(20,'-')     #文本居中,20指定寬度,-指定填充

name.count('u',1,6)     #查找值,u爲要查找的值,1字符串位置開頭,6字符串結尾

name.startswith('li')   #查詢以xx開頭

name.endswith('ng')     #查詢以xx結尾

name.expandtabs(20)     #找到製表符\t進行替換製作表格(包含前面的值)

name.format_map({'name':'alex'}) #字符串格式化,根據字典

name.format('liuming')  #字符串格式化

name.isalnum()          #允許有數字

name.isalpha()          #不允許有數字

name.isdecimal()        #是否有數字可以識別123

name.isdigit()          #是否有數字可以識別123,②

name.isnumeric()        #是否有數字可以識別123,二,②

name.isidentifier()     #是否是標識符

name.islower()          #是否全部是小寫

name.isupper()          #是否全部是大寫

name.upper()            #全部變大寫

name.lower()            #全部變小寫

name.isprintable()      #是否包含隱藏的xx

name.isspace()          #是否全部是空格

'_'.join(name)          #元素拼接

name.rjust(20,'-')      #左填充,20指定寬度,-填充的東西

name.ljust(20,'-')      #右填充,20指定寬度,-填充的東西

#對應關係+翻譯

m = str.maketrans('aeojj','12344')          #對應關係

name = "asdkahkjfhkjsh123hkj;asdsfjjjcnnn"#講對應關係的字母翻譯爲數字

v = name.translate(m)                         #講對應關係的字母翻譯爲數字

name.partition('um')    #分割,保留分割的元素,根據um分割

name.replace('um','SB',1) #替換,um替換爲SB,1指定位置替換

name.strip()            #移除空白\t\n

name.swapcase()         #大小寫轉換

name.zfill(20)          #填充0 ,20指定寬度

len(name)               #測寬度


# ########################################## int 整數 ###############################################

#1.當前整數的二進制表示,最少位數

# age = 4  # 001

# print(age.bit_length())

# #獲取當前數據的字節表示

# age = 15

# v1 =age.to_bytes(10,byteorder='big')        #10進制,從右往左

# v2 =age.to_bytes(10,byteorder='little')     #10進制,從左

# print(v1,v2)


# ########################################## bool 布爾值 ##########################################

# v = 0         #True

# v = "" -->    #空內容:False

# v = []-->     #空內容:False


# ########################################## list 列表 ##########################################

#列表爲可變類型

user_list = ['劉銘','李','金','王五','李']

#1.追加

# user_list.append('趙四')      #在最後追加趙四

# print(user_list)


#2.清空

# user_list.clear()             #清空表格內容

# print(user_list)


#3.拷貝(淺拷貝)

# v = user_list.copy()          #拷貝到v

# print(v)

# print(user_list)


#4.計數

# v = user_list.count('李')       #計算列表中有幾個李

# print(v)

# print(user_list)


#5.擴展原列表

# user_list.extend(['裏護額','alex']) #寫新表擴展到之前表格裏

# print(user_list)


#6.查找元素索引,找不到報錯

# v =user_list.index('李')

# print(v)


#7.刪除並獲取元素 索引

# v =user_list.pop(1)   #刪除位置爲1的值

# print(v)

# print(user_list)


#8.刪除

# user_list.remove('李')

# print(user_list)


#9.翻轉(倒序)

# user_list.reverse()

# print(user_list)


#10.排序

# nums =[11,33,22,44,1,2]

# nums.sort()   #排序從小到大

# print(nums)

# nums.sort(reverse=True)   #排序從大到小

# print(nums)


######  額外:

# user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']

# user_list[0]

# user_list[1:5:2]   #索引

# del user_list[3]   #刪除

# for i in user_list:

#     print(i)

# user_list[1] = '姜日天'

# user_list = ['李泉','劉一','李泉','劉康','豆豆',['日天','日地','泰迪'],'小龍']

# li = ['eric','alex','tony']

#

# v = len(li)    #長度

# print(v)

#

# li.append('seven')   #添加

# print(li)

#

# li.insert(0,'Tony')  # 插入

# print(li)

#

# li[1] = 'Kelly'      #根據索引替換

#

# li.remove('eric')    #刪除

# print(list)

#

# v = li.pop(1)        #刪除並獲取元素

# print(v)

# print(li)

#

# del li[2]            #刪除表



# del li[0:2] # 0 =<x < 2

# print(li)


# li.reverse()          #翻轉

# print(li)


# for i in li:          #循環表

#     print(i)





# ######################################### 強插:range,enumrate #########################################

# 1. 請輸出1-10

# 2.7: 立即生成所有數字

# range(1,11) # 生成1-10


# 3.x: 不會立即生成,只有循環迭代時,才一個一個生成

# for i in range(1,11): #使用for循環生成1-10

#     print(i)


# for i in range(1,11,2): # 生成1-10,2爲不長生成 1 3 5 7

#     print(i)


# for i in range(10,0,-1): #

#     print(i)


# 1. 3.x 不會立生成,迭代之後才一個一個創建;

"""

    - 2.7:

        range()

        xrange()  不會立生成,迭代之後才一個一個創建;

    - 3.x

        range()  不會立生成,迭代之後才一個一個創建;

"""

# 2. range: 三個參數

#

# li = ['eric','alex','tony']

# # range,len,li循環

# for i in range(0,len(li)):

#     ele = li[i]

#     print(ele)



# li = ['eric','alex','tony']

# for i in li:

#     print(i)


# for i in range(0,len(li)):

#     print(i+1,li[i])



# enumerate額外生成一列有序的數字

# li = ['eric','alex','tony']

# for i,ele in enumerate(li,1):

#     print(i,ele)

#

# v = input('請輸入商品序號:')

# v = int(v)

# item = li[v-1]

# print(item)


# #######列表總結

# user_list = ['李泉','劉一','劉康','豆豆','小龍']

# user_list.append('劉i')                 #追加

# user_list.clear()                       #清空表

# v =user_list.copy()                     #淺拷貝

# v =user_list.count('劉一')              #計數

# user_list.extend(['是的','阿斯頓'])     #擴展原列表

# v =user_list.index('豆豆')              #查找索引,找不到報錯

# v =user_list.pop('1')                   #刪除並獲取元素

# user_list.remove('豆豆')                #刪除

# user_list.reverse()                     #翻轉

# user_list.sort()                        #排序從小到大

# user_list.sort(reverse=True)            #排序從大到小

# user_list[1:5:2]                        #索引從1-5,2不常

# del user_list[2]                        #刪除

# v= len(user_list)                       #統計長度

# user_list.insert(1,'tony')               #插入


# ######################################### dict:字典: 可變類型 #########################################


# 1. 清空、

# dic = {'k1':'v1','k2':'v2'}

# dic.clear()

# print(dic)


# 2. 淺拷貝

# dic = {'k1':'v1','k2':'v2'}

# v = dic.copy()

# print(v)


# 3. 根據key獲取指定的value;不存在不報錯

# dic = {'k1':'v1','k2':'v2'}

# v = dic.get('k1111',1111)

# print(v)

# v = dic['k1111']

# print(v)


# 4. 刪除並獲取對應的value值

# dic = {'k1':'v1','k2':'v2'}

# v = dic.pop('k1')

# print(dic)

# print(v)


# 5. 隨機刪除鍵值對,並獲取到刪除的鍵值

# dic = {'k1':'v1','k2':'v2'}

# v = dic.popitem()

# print(dic)

# print(v)


# k,v = dic.popitem() # ('k2', 'v2')

# print(dic)

# print(k,v)


# v = dic.popitem() # ('k2', 'v2')

# print(dic)

# print(v[0],v[1])


# 6. 增加,如果存在則不做操作

# dic = {'k1':'v1','k2':'v2'}

# dic.setdefault('k3','v3')

# print(dic)

# dic.setdefault('k1','1111111')

# print(dic)

# 7. 批量增加或修改

# dic = {'k1':'v1','k2':'v2'}

# dic.update({'k3':'v3','k1':'v24'})

# print(dic)



# dic = dict.fromkeys(['k1','k2','k3'],123)

# print(dic)

# dic = dict.fromkeys(['k1','k2','k3'],123)

# dic['k1'] = 'asdfjasldkf'

# print(dic)


# dic = dict.fromkeys(['k1','k2','k3'],[1,])

# {

#    k1: 123123213, # [1,2]

#    k2: 123123213, # [1,]

#    k3: 123123213, # [1,]

# }

# dic['k1'].append(222)

# print(dic)

# ########## 額外:

# - 字典可以嵌套

# - 字典key: 必須是不可變類型

# dic = {

#     'k1': 'v1',

#     'k2': [1,2,3,],

#     (1,2): 'lllll',

#     1: 'fffffffff',

#     111: 'asdf',

# }

# print(dic)

# key:

#     - 不可變

#     - True,1


# dic = {'k1':'v1'}

# del dic['k1']


# 布爾值:

# 1 True

# 0 False

#

# bool(1111)


# #####字典總結

dic ={'k1':'v1','k2':'v2'}

dic.clear()             #清空

v=dic.copy()            #淺拷貝

v=dic.get('keee',111)   #根據key獲取指定的value,不存在不報錯

dic.pop('k1')           #刪除並獲取刪除的鍵值

dic.setdefault('k3','v3')#增加,如果存在則不做操作

dic.update({'k3':'v3','k4':'v4'})#批量增加或修改

del dic['k1']           #刪除


# ##################################### set,集合,不可重複的列表;可變類型 #####################################

# s1 = {"alex",'eric','tony','李泉','李泉11'}

# s2 = {"alex",'eric','tony','劉一'}


# 1.s1中存在,s2中不存在

# v = s1.difference(s2)

# print(v)

# #### s1中存在,s2中不存在,然後對s1清空,然後在重新複製

# s1.difference_update(s2)

# print(s1)


# 2.s2中存在,s1中不存在

# v = s2.difference(s1)

# print(v)


# 3.s2中存在,s1中不存在

# s1中存在,s2中不存在

# v = s1.symmetric_difference(s2)

# print(v)

# 4. 交集

# v = s1.intersection(s2)

# print(v)

# 5. 並集

# v = s1.union(s2)

# print(v)


# 6. 移除

# s1 = {"alex",'eric','tony','李泉','李泉11'}

# s1.discard('alex')

# print(s1)


# s1 = {"alex",'eric','tony','李泉','李泉11'}

# s1.update({'alex','123123','fff'})

# print(s1)

# ##### 額外:


# s1 = {"alex",'eric','tony','李泉','李泉11'}

# for i in s1:

#     print(i)


# s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}

# for i in s1:

#     print(i)







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章