Day2-数据类型、字符编码、购物车
生活随笔
收集整理的這篇文章主要介紹了
Day2-数据类型、字符编码、购物车
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、引子
1、什么是數據?
x=10,10是我們要存儲的數據。
2、為何數據要分不同的類型?
數據是用來表示狀態的,不同的狀態就應該用不同的類型的數據去表示。
3、存在哪些數據類型
- 數字(整形,長整形,浮點型,復數)
- 字符串
- 列表
- 元組
- 字典
- 集合
4、按照以下幾個點展開數據類型的學習
#一:基本使用 1 用途 2 定義方式 3 常用操作+內置的方法#二:該類型總結 1 存一個值or存多個值只能存一個值可以存多個值,值都可以是什么類型 2 有序or無序能按位置取值,就是有序;否則無序 3 可變or不可變!!!可變:值變,id不變??勺?/span>==不可hash!!!不可變:值變,id就變。不可變==可hash
?二、數字
1、整型與浮點型
#一:int(無內置方法) #作用:年齡,級別,等級,身份證號 x=10 #x=int(10) print(id(x),type(x),x)#二:float #作用:工資,身高,體重 salary=3.1 #salary=float(3.1) print(id(salary),type(salary),salary)數字無長度!
2、其他數字類型(了解)
#長整形(了解) 在python2中(python3中沒有長整形的概念): >>> num=2L>>> type(num)<type 'long'>#復數(了解) >>> x=1-2j>>> x.real1.0>>> x.imag-2.0 View Code3、實操
int與float為不可變類型: >>> x=123 >>> id(x) 4297640800 >>> x=12345 >>> id(x) 4320497584>>> x=3.14 >>> id(x) 4300280000 >>> x=9.11 >>> id(x) 4300280120>>> x=123 >>> y=123 >>> id(x) 4297640800 >>> id(y) 4297640800>>> x=1234567890 >>> y=1234567890 >>> id(x) 4320497488 >>> id(y) 4320497584is身份判斷,判斷id是否相等 identify >>> x==y True >>> x is y False也就是說,值相等,id可以不一樣:申請兩個內存空間,放同樣的值; 如果id一樣,那么它們用的是同一個內存空間,所以類型、值全部一樣。 >>> x=123 >>> y=x >>> x is y True >>> x==y True >>> 但,當數據量比較小的時候:小到沒必要把時間耗費在申請內存空間上。 >>> x=123 >>> y=123 >>> id(x) 4297640800 >>> id(y) 4297640800字符串同理: >>> x='abcdefg' >>> y='abcdefg' >>> id(x) 4320792392 >>> id(y) 4320792392 >>> x='Today is Monday' >>> y='Today is Monday' >>> id(x) 4320819568 >>> id(y) 4320819632
三、字符串;
#作用:名字,性別,國籍,地址等描述信息#定義:在單引號\雙引號\三引號內,由一串字符組成 name='guoxq'#優先掌握的操作: 按索引取值(正向取+反向取) :只能取 切片(顧頭不顧尾,步長) 長度len 成員運算in和not in移除空白strip 切分split1、實操
#用途:名字,性別,地址 name='guoxq' #name=str('guoxq') # print(id(name),type(name),name)#優先掌握的操作: # 按索引取值(正向取+反向取) :只能取 # print(name[0],type(name[0])) # print(name[-2]) # name[0]='E' #字符串不支持插入字符# 切片(顧頭不顧尾,步長) # print(name[1:3]) # msg='hello world' # print(msg[1:7]) # print(msg[1:7:2])# msg='abcdefg' #bdf # # print(msg[1:6:2]) # # print(msg[::2]) # print(msg[6::-1]) #了解 # print(msg[5:0:-1]) #顧頭不顧尾,所以取不到a# print(msg[5::-1]) #去掉零,就可以取全 # 長度len # msg='ab c ' # print(len(msg))# 成員運算in和not in # msg='hello alex' # print('a' in msg) # print('alex' in msg) # print('ae' not in msg)# 移除空白strip # password=' alex3714 ' # password=password.strip() # print(password) # print(password.strip())# msg='***egon***********' # print(msg.strip('*')) # msg='***eg**on***********' # print(msg.strip('*'))# 切分split user_info='root:x:0:0::/root:/bin/bash' # print(user_info[0:4]) # print(user_info.split(':')[0]) #取第0個值 # print(user_info.split(':',1)) #切一次# cmd='put a.txt' # print(cmd.split())# filepath='put /a/b/c/d/a.txt' # print(filepath.split()) # filepath='/a/b/c/d/a.txt'
# print(filepath.split('/')[-1]) # msg='alex say i have on tesla' # print(msg.split(maxsplit=1)[0]) #切一次,取第0個值#isdigit:用來判斷字符是否是由純數字組成(bytes,unicode)#常用操作 # msg='***alex****' # print(msg.strip('*')) # print(msg.lstrip('*')) # print(msg.rstrip('*'))# msg='alex_SB' # print(msg.startswith('alex')) # print(msg.endswith('SB'))# msg='alex say i have one telsa, my name is alex' # print(msg.replace('alex','SB',1)) #替換一次# print('my name is %s my age is %s' %('egon',18)) # print('my name is {} my age is {}'.format('egon',18)) # print('{1} {0} {1}'.format('egon',18)) #‘egon’對應0;18對應1# print('my name is {x} my age is {y}'.format(y=18,x='egon')) #可以無序#split # user_info='root:x:0:0::asdfasdf' # l=user_info.split(':')#join # print(':'.join(l)) #將上面l返回的列表,用:再連接起來,與原來一樣; # print(''.join(l)) # print(' '.join(l))#center,ljust,rjust,zerofill #=================egon=================== # print('egon'.center(30,'=')) # print('egon'.rjust(30,'=')) # print('egon'.ljust(30,'=')) # print('egon'.zfill(30))#了解部分 #find,rfind,index,rindex,count # msg='hello world' # print(msg.find('ell')) #從左到右找,如果有,則返回第一個字符的索引 # print(msg.find('easdfasdf')) #從左到右找,如果沒有,返回-1# print(msg.index('d',0,3)) #從左到右找,如果有,則返回第一個字符的索引 # print(msg.index('x')) #從左到右找,如果有,則返回第一個字符的索引# print(msg.count('l',0,4)) # print(msg.count('l',0,3))# msg='abc\tdeft' # print(msg.expandtabs(3)) #3個空格# msg='alex Say hello' # print(msg.capitalize()) #整句話,首字母大寫 # print(msg.upper()) #全部字母大寫 # print(msg.lower()) #全部字母小寫 # print(msg.title()) #每個單詞首字母大寫 # print(msg.swapcase()) #顛倒大小寫#is系列 # msg='Alex Say Hello' # print(msg.isupper()) # print(msg.islower()) # print(msg.istitle()) # msg='asasdf123' # print(msg.isalnum()) #字符串是由字母或數字組成 msg='asdfasdf' print(msg.isalpha()) #字符串是由字母組成的 # msg=' 1' # print(msg.isspace()) #字符串都是空格嗎?都是空格為真 # msg='aaaai fabc' # print(msg.isidentifier()) #字符串不存在空格嗎?不存在為真#判斷數字 # age=10 # inp=input('>>: ').strip() # if inp.isdigit(): #isdigit能判斷bytes和unicode # inp=int(inp) # if inp > age: # print('ok') # # else: # print('必須輸入數字') num1=b'4' #bytes num2=u'4' #unicode,python3中無需加u就是unicode num3='四' #中文數字 num4='壹' num5='Ⅳ' #羅馬數字#bytes,unicode # print(num1.isdigit()) # print(num2.isdigit()) # print(num3.isdigit()) # print(num4.isdigit()) # print(num5.isdigit())#unicode # print(num2.isdecimal()) #isdecimal也能判斷數字,但是沒有isdigit判斷的全面 # print(num3.isdecimal()) # print(num4.isdecimal()) # print(num5.isdecimal())#unicode,漢字,羅馬 # print(num2.isnumeric()) # print(num3.isnumeric()) # print(num4.isnumeric()) # print(num5.isnumeric())
2、練習題:
# 寫代碼,有如下變量,請按照要求實現每個功能 (共6分,每小題各0.5分) # name = " aleX" # 1) 移除 name 變量對應的值兩邊的空格,并輸出處理結果 # print(name.strip()) # 2) 判斷 name 變量對應的值是否以 "al" 開頭,并輸出結果? # print(name.startswith('al')) # 3) 判斷 name 變量對應的值是否以 "X" 結尾,并輸出結果? # print(name.endswith('X')) # 4) 將 name 變量對應的值中的 “l” 替換為 “p”,并輸出結果 # print(name.replace('l','p')) # 5) 將 name 變量對應的值根據 “l” 分割,并輸出結果。 # print(name.split('l')) # 6) 將 name 變量對應的值變大寫,并輸出結果? # print(name.upper()) # 7) 將 name 變量對應的值變小寫,并輸出結果? # print(name.lower()) # 8) 請輸出 name 變量對應的值的第 2 個字符? # print(name[1]) # 9) 請輸出 name 變量對應的值的前 3 個字符? # print(name[0:3]) # 10) 請輸出 name 變量對應的值的后 2 個字符?? # print(name[3:]) # or # name=' aleX' # print(name[-2:]) # 11) 請輸出 name 變量對應的值中 “e” 所在索引位置?? # print(name.index('e')) # 12) 獲取子序列,去掉最后一個字符。如: oldboy 則獲取 oldbo。 # name=' oldboy ' # print(name[0:6])name=' oldboy ' print(name[:-2])
四、列表
#作用:多個裝備,多個愛好,多門課程,多個女朋友等#定義:[]內可以有多個任意類型的值,逗號分隔 my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本質my_girl_friends=list([...]) 或 l=list('abc')#優先掌握的操作: 按索引存取值(正向存取+反向存取):即可存也可以取 切片(顧頭不顧尾,步長) 長度 成員運算in和not in 追加 刪除1、注意步長
#ps:反向步長 l=[1,2,3,4,5,6]#正向步長 l[0:3:1] #[1, 2, 3] #反向步長 l[2::-1] #[3, 2, 1] #列表翻轉 l[::-1] #[6, 5, 4, 3, 2, 1]?
2、實操
#定義:[]內可以有多個任意類型的值,逗號分隔 my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本質my_girl_friends=list([...])#優先掌握的操作: # 按索引存取值(正向存取+反向存取):即可存也可以取 # print(my_girl_friends[2]) # print(my_girl_friends[-1]) # print(id(my_girl_friends)) # my_girl_friends[0]='SB' # print(id(my_girl_friends)) # print(my_girl_friends)# 切片(顧頭不顧尾,步長) # print(my_girl_friends[0:2]) # print(my_girl_friends[0:4:2])# 長度 # print(len(my_girl_friends)) #元素個數# 成員運算in和not in # print('alex' in my_girl_friends) # print(5 in my_girl_friends)# 追加 # my_girl_friends.append('6號') #默認加在后面 # print(my_girl_friends)# 刪除 # del my_girl_friends[2] # print(my_girl_friends)# print(my_girl_friends.remove('yuanhao')) #remove是單純的刪除,不會返回刪除的值,并且是按照值去刪 # res=my_girl_friends.pop(1) #按照索引取刪,默認從末尾開始刪 # print(res) #返回刪除的值# my_girl_friends.pop() #按照索引取刪,默認從末尾開始刪 # print(my_girl_friends)#常用操作: my_girl_friends=['alex','wupeiqi','alex','yuanhao',4,5] #本質my_girl_friends=list([...]) # my_girl_friends.insert(0,'sb_alex') # my_girl_friends.insert(2,'yh')# my_girl_friends.extend([1,2,3,4]) #默認向末尾擴展# print(my_girl_friends.count('alex'))#了解 # my_girl_friends.clear() #清空列表 # print(my_girl_friends)# l=my_girl_friends.copy() #復制列表 # print(l) # my_girl_friends.reverse() #顛倒列表 # print(my_girl_friends)# l=[3,4,-1,2]
# l.sort #排序 # l.sort(reverse=True) #反過來排序 # print(l)
3、練習題:
#隊列:先進先出 #append,pop # l1=[] # l1.append('first') # l1.append('second') # l1.append('third')# print(l1.pop(0)) # print(l1.pop(0)) # print(l1.pop(0))#堆棧:先進后出 # l1=[] # l1.append('first') # l1.append('second') # l1.append('third')# print(l1.pop()) # print(l1.pop()) # print(l1.pop())同上: l1=[] l1.insert(0,'first') l1.insert(0,'second') l1.insert(0,'third') print(l1) print(l1.pop(0)) print(l1.pop(0)) print(l1.pop(0))END. 有列表data=['alex',49,[1900,3,18]],分別取出列表中的名字,年齡,出生的年,月,日賦值給不同的變量 data=['alex',49,[1900,3,18]] name=data[0] age=data[1] year=data[2][0] month=data[2][1] day=data[2][2] print(name,age,year,month,day)
?五、元組
#作用:存多個值,對比列表來說,元組不可變(是可以當做字典的key的),主要是用來讀#定義:與列表類型比,只不過[]換成() age=(11,22,33,44,55)本質age=tuple((11,22,33,44,55))#優先掌握的操作: 按索引取值(正向取+反向取):只能取 切片(顧頭不顧尾,步長) 長度 成員運算in和not in1、實操
#作用:存多個值,對比列表來說,元組不可變(是可以當做字典的key的),主要是用來讀 #定義方式: ages=(10,12,18,33,18) #ages=tuple((10,12,18,33)) # print(id(ages),type(ages),ages)#優先掌握的操作: # 按索引取值(正向取+反向取):只能取 # 切片(顧頭不顧尾,步長) # print(ages[0:2]) # print(ages) # 長度 # print(len(ages)) # 成員運算in和not in # print(10 in ages)#其他操作: # print(ages.index(18)) # print(ages.index(123123123123)) #報錯,他不在tuple(元組)里面 # print(ages.count(18)) #18出現幾次# l=['a','b','c','d','e'] # # l='abcde' # l=('a','b','c','d','e') # index=0 # while index < len(l): # print(l[index]) # index+=1# l1=['a','b','c','d','e'] # for item in l1: # print(item)
# l2='abcde' # for item in l2: # print(item)# for i in range(1,10,2): # print(i)
# l1=['a','b','c','d','e'] # for i in range(len(l1)):
# print(i)
# print(i,l1[i])
2、練習題:
#簡單購物車,要求如下: 實現打印商品詳細信息,用戶輸入商品名和購買個數,則將商品名,價格,購買個數加入購物列表,如果輸入為空或其他非法輸入則要求用戶重新輸入 msg_dic={ 'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10, } goods_l=[] # while True: # for item in msg_dic: # print(item,msg_dic[item]) # choice=input('請輸入您想要購買的商品: ').strip() # if choice not in msg_dic:continue # count=input('請輸入您要購買的個數: ').strip() # if count.isdigit(): # goods_l.append((choice,msg_dic[choice],int(count))) # print(goods_l)while True:for item in msg_dic:print(item,msg_dic[item])choice=input('請輸入您想要購買的商品: ').strip()if choice in msg_dic:count=input('請輸入您要購買的個數: ').strip()if count.isdigit():goods_l.append((choice,msg_dic[choice],int(count)))print(goods_l)else:print('請輸入列表里的產品: ')下一節字典知識的運用: while True:for key,item in msg_dic.items():print('name:{name} price:{price}'.format(price=item,name=key))choice=input('商品>>: ').strip()if not choice or choice not in msg_dic:continuecount=input('購買個數>>: ').strip()if not count.isdigit():continuegoods_l.append((choice,msg_dic[choice],count))print(goods_l)
3、補充了解知識點(for)
#while+else# for i in range(5): # if i == 3:break # print(i) # else: # print('ok')
for也支持+else和break。
六、字典
#作用:存多個值,key-value存取,取值速度快#定義:key必須是不可變類型,value可以是任意類型 info={'name':'egon','age':18,'sex':'male'} #本質info=dict({....}) 或 info=dict(name='egon',age=18,sex='male') 或 info=dict([['name','egon'],('age',18)]) 或 {}.fromkeys(('name','age','sex'),None)#優先掌握的操作: 按key存取值:可存可取 長度len 成員運算in和not in刪除 鍵keys(),值values(),鍵值對items()1、實操:
#定義:key必須是不可變類型,value可以是任意類型 # d={'a':1} # d={0:1} # d={[1,2,3]:1} #列表不能當做字典的key# d={(0,'mac'):3000} # print(d[(0,'mac')]) info={'name':'egon','age':18,'sex':'male'} #本質info=dict({....}) #優先掌握的操作: # 按key存取值:可存可取 # print(info['sex']) # info['hobbies']=['read','music','play','sleep','eat'] # print(info)# 長度len # print(len(info))# 成員運算in和not in# 刪除 # print(info.pop('name')) # print(info.pop('name1213','確實是沒有的,我的哥')) # print(info.pop('name1213',None))# 鍵keys(),值values(),鍵值對items() # print(info.keys()) # print(info.values()) # print(info.items())# for key in info.keys(): # print(key)# for val in info.values(): # print(val)# for item in info.items(): # print(item[0],item[1])#常用方法 # info={'name':'egon','age':18,'sex':'male'} # print(info['name123']) # print(info.get('name123',123)) #取值不報錯 # print(info.popitem()) #彈出最后一個key-value,pop是彈出value# for k,v in info.items(): #k,v=('name', 'egon') # print(k,v)# print(info.setdefault('hobbies',['read','music'])) #有則不改,返回已經有的值,沒有則新增,返回新增的值 # print(info)# print(id(info.setdefault('hobbies',[]))) #id一樣 # print(id(info['hobbies']))
info={'name':'egon','age':18,'sex':'male',} # if 'hobbies' not in info: # info['hobbies']=[] # info['hobbies'].append('music') # else: # info['hobbies'].append('read') # # if 'hobbies' not in info: # info['hobbies'] = [] # info['hobbies'].append('music') # else: # info['hobbies'].append('read') # # print(info)# info.setdefault('hobbies',[]).append('music')# # {'name': 'egon', 'age': 18, 'sex': 'male', 'hobbies': ['music', ]} # info.setdefault('hobbies',[]).append('read') #['music', ].append('read') # print(info)#了解 # info_new={'a':1,'age':19} #'a'新增,‘age'更新 # info.update(info_new) # print(info)# dic={'name':None,'age':None,'sex':None,'hobbies':None} # dic1={}.fromkeys(['name','age','hobbies'],None) # print(dic1)#補充兩種賦值方式: #一:鏈式賦值 # x=10 # y=x # x=y=z=10 # print(id(x),id(y),id(z))#交換兩個變量的值 # m=10 # n=20 # temp=n # n=m #n=10 # m=temp # print(m,n)
# m,n=n,m # print(m,n)#二:從一個數據類型中解壓出我們想要的值 # t=(10.3,11.2,12.1,14.3,3.1)# x,y,z,a,b=t # print(x,y,z,a,b)# x,_,_,_,b=t # print(x,b) # print(_)# x,*_,b=t #*后面多個_ # print(x,b)# x,*_='hello' # print(x)# x,y,z={'a':1,'b':2,'c':3} #取值 # print(x,y,z)
2、練習題:
#1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],將所有大于 66 的值保存至字典的第一個key中,將小于 66 的值保存至第二個key的值中 #即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}# l=[11,22,33,44,55,66,77,88,99,90] # a={'k1':[],'k2':[]} # for i in l: # if i > 66: # a['k1'].append(i) # else: # a['k2'].append(i) # print(a)# 2 統計s='hello alex alex say hello sb sb'中每個單詞的個數 # 結果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2} # s='hello alex alex say hello sb sb' # l=s.split() # dic={} # for item in l: # if item in dic: # dic[item]+=1 # else: # dic[item]=1 # print(dic)# s='hello alex alex say hello sb sb' # dic={} # words=s.split() # print(words) # for word in words: #word='alex' # dic[word]=s.count(word) # print(dic)#利用setdefault解決重復賦值 ''' setdefault的功能 1:key存在,則不賦值,key不存在則設置默認值 2:key存在,返回的是key對應的已有的值,key不存在,返回的則是要設置的默認值 d={} print(d.setdefault('a',1)) #返回1d={'a':2222} print(d.setdefault('a',1)) #返回2222 ''' # s='hello alex alex say hello sb sb' # dic={} # words=s.split() # for word in words: #word='alex' # dic.setdefault(word,s.count(word)) # print(dic)七、集合
#作用:去重,關系運算,#定義:可變類型是不可hash類型不可變類型是可hash類型#定義集合: 集合:可以包含多個元素,用逗號分割,集合的元素遵循三個原則:1:每個元素必須是不可變類型(可hash,可作為字典的key)2:沒有重復的元素3:無序注意集合的目的是將不同的值存放到一起,不同的集合間用來做關系運算,無需糾結于集合中單個值#優先掌握的操作: 長度len 成員運算in和not in|合集 &交集 -差集 ^對稱差集 == >,>= ,<,<= 父集,子集?1、實操:
# pythons=['alex','wupeiqi','egon','yuanhao','gangdan','oldboy'] # linuxs=['egon','oldboy','tiedan','liudan']# l=[] # for item in pythons: # if item in linuxs: # l.append(item) #找出即報名python又報名linux的學員 # print(l) # s={1,2,'a','b','c','d','e','f'} #s=set({1,2,'a'}) # print(type(s),s)# 優先掌握的操作: # 長度len # s={1,2,'a','b','c','d','e','f'} # print(len(s)) # 成員運算in和not in # print('a' in s) # for item in s: # print(item) # | 并集 # s1={1,2,3} # s2={3,4,5} # print(s1 | s2)# & 交集 # print(s1 & s2)# -差集 #在s1里,不在s2里,或在s2里,不在s1里 # print(s1 - s2) # print(s2 - s1)# ^ 對稱差集 #共有部分之外的部分 # s1={1,2,3} # s2={3,4,5}# == # > , >= , <, <= 父集,子集 # s1={1,2,3,4} # s2={3,4,5} # print(len(s1) > len(s2))# s1={1,2,3,4} # s2={3,4} # print(s1 > s2) # print(s1 >= s2)#常用操作 s1={1,2,3,'a',4} # print(s1.pop()) #隨機刪,并返回刪除的結果# s1.remove('a') #單純地刪,不會返回刪除的結果,并且如果刪除的元素不存在則報錯 # s1.remove('asdfasdfa') #單純地刪,不會返回刪除的結果 # print(s1) # print(s1.discard('a')) #單純地刪,不會返回刪除的結果,并且如果刪除的元素不存在返回None,不會報錯 # print(s1)# s1.add('b') # print(s1) s1={1,2,3} s2={4,5} # print(s1.isdisjoint(s2)) #如果s1和s2沒有交集則返回True#了解 # s1={1,2,3,4} # s2={3,4,5}# | 并集 # print(s1.union(s2))# & 交集 # print(s1.intersection(s2)) # s1.intersection_update(s2) #s1=s1.intersection(s2) # print(s1)# -差集 # print(s1.difference(s2))# ^ 對稱差集 # print(s1.symmetric_difference(s2))# == # > , >= , <, <= 父集,子集 # s1={1,2,3,4} # s2={3,4} # print(s1.issuperset(s2)) # print(s2.issubset(s1))#去重,無需保持原來的順序 # l=['a','b',1,'a','a']
# print(set(l)) # print(list(set(l)))
#去重,需要保持原來的順序 # l=['a','b',1,'a','a'] # l_new=[] #等同于 l_new=list() # s=set() # for item in l: # if item not in s: # s.add(item) # l_new.append(item)
# print(l_new)
#列表中元素為可變類型時,去重,并保持原來的順序 l=[{'name':'egon','age':18,'sex':'male'},{'name':'alex','age':73,'sex':'male'},{'name':'egon','age':20,'sex':'female'},{'name':'egon','age':18,'sex':'male'},{'name':'egon','age':18,'sex':'male'}, ] l_new=list() s=set() for item in l:res = (item['name'], item['age'], item['sex'])if res not in s:s.add(res)l_new.append(item) print(l_new)#了解:不可變集合 可變才有.add .pop .remove等 fset=frozenset({1,2,3}) fset.
?八、數據類型總結
1、按存儲空間的占用分(從低到高)
數字 字符串 集合:無序,即無序存索引相關信息 元組:有序,需要存索引相關信息,不可變 列表:有序,需要存索引相關信息,可變,需要處理數據的增刪改 字典:無序,需要存key與value映射的相關信息,可變,需要處理數據的增刪改2、按存值個數區分
| 標量/原子類型 | 數字,字符串 |
| 容器類型 | 列表,元組,字典 |
3、按可變不可變區分
| 可變 | 列表,字典 |
| 不可變 | 數字,字符串,元組 |
4、按訪問順序區分
| 直接訪問 | 數字 |
| 順序訪問(序列類型) | 字符串,列表,元組 |
| key值訪問(映射類型) | 字典 |
5、練習題:
# 1. 文件a.txt內容:每一行內容分別為商品名字,價錢,個數,求出本次購物花費的總錢數 # apple 10 3 # tesla 100000 1 # mac 3000 2 # lenovo 30000 3 # chicken 10 3 # a=[{'name':'apple','price':10,'count':3},{'name':'tesla','price':100000,'count':1},{'name':'mac','price':3000,'count':2},{'name':'lenovo','price':30000,'count':3},{'name':'chicken','price':10,'count':3} ] list=[] num=0 res=0 for i in a:pri=i['price']*i['count']list.append(pri)while num < len(list):res+=list[num]num+=1 print(res)# 2. 修改文件內容,把文件中的alex都替換成SB # a='alex is a good teacher, alex has a tesla' # print(a.replace('alex','SB'))?
?九、作業
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/guoxiangqian/p/7505053.html
總結
以上是生活随笔為你收集整理的Day2-数据类型、字符编码、购物车的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery是库还是框架?
- 下一篇: 911日报小结