Python的序列數據和變量
本篇內容涉及字符串、列表、元組、Python中的報錯,以及變量本質,包括引用計數技術
該篇只為拋磚引玉,其內容來自Python學習中總結,另外感謝李老師的教導和Python班同學們的幫助
附上李老師和本人扣扣:2573799357
本人扣扣:1392916221
首先解釋:序列數據和變量
1.序列指一組有順序的數據列表,有序
2.變量本文指變量名
字符串【無意義】
不可變數據類型
· 語法:
‘a‘單引號和‘‘‘a‘‘‘三引號
"a"雙引號和"""a"""三雙引號
a = "Carla:"I can come today,"" #該行為錯誤代碼,在python中有一個有意思的地# 方,""雙引號中為一個字符串,那麽雙引號中的雙引號只是一個英文中語句符使用呢? #那麽改行代號則可以使用3引號就可以正常在代碼中使用雙引號了 #題外話,在美國的紐約時報和各大報紙中很多語句都經常使用雙引號 print(‘-------分割線--------’) a = ‘‘‘Carla:"I can come today" ‘‘‘ #該行為正常代碼,卡拉:“我今天能來” 這裏顯示是雙引號
print(‘--------分割線!-------‘)
a = """Carla:‘I can come today‘ """ #改行顯示為單引號
在Python中沒有字符和字符串之分:
1、C語言中單個字符叫char,只能用單引號定義 註 char a = ‘a ‘;
2、C語言中多個字符,字符串str必須用雙引號定義
3、Python中沒有字符和字符串之分
字符串為什麽沒有意義,只顯示給人們
列表【有意義】——list
列表是一個可變數據類型 -> 功能性強
列表是一個有順序的序列,而且支持【任意數據類型】在其中存儲
1、列表有意義,可以在列表中進行數據操作
>>> a = [1,2,3,4,5] #a >>> a #顯示a [1,2,3,4,5] >>> a[0] = 3 #a的0下標修改為3>>> a [3, 2, 3, 4, 5]
2、列表的語法:[] #英文模式下的中括號
3、支持索引和切片,索引和切片的操作和字符串的操作一樣,註意逗號分隔的數據!
4、列表中可以創建空列表
那麽問題來了,空列表是真的還是假的
a = ‘ ‘ #真假?——字符串 #答案為假 a = [] #真假? ——列表 #答案為假 a = [‘ ‘,‘ ‘,‘ ‘] #那麽這個,是真還是假? #答案為真
解釋:如何確定a的真假,那麽確定的是【列表】還是【字符串】?
列表為假的依據:列表為空則為假
這個列表是空的嗎?(機器是不會思考的)
先看最外層
代碼測試:
if a: #使用if條件判斷語句測試 print(‘123‘) #如果為真則打印123 #打印結果為123,答案為真
5、列表其中的數據支持修改
元組【有意義】——tuple
不可變的數據
語法:() #英文模式下的括號,可在Python中創建元組
1、元組也可以保存任意數據類型
2、元組和列表都支持索引和切片
3、元組不支持數據修改
4、創建單個元組後面要加逗號,否則為整數,可使用type函數查看數據類型
文字遊戲:元組不可變,那麽元組中的列表可變嗎?
答案是不可以!!!
解釋:元組中列表的元素是可變的!!!!但是元組中的列表是不能變的
a = (1,2,3,[1,2,3],‘abc‘) >>>a (1,2,3,[1,2,3],‘abc‘) >>>a[3][1] = ‘a‘ #a的第三個索引中的第1個索引修改為a,下標從零開始 >>>a (1,2,3,[1,a,3],‘abc‘) #元組中的列表元素是可以修改的!!!
Python中的報錯:
-
TypeError:‘tuple‘ object does not support item assignment
-
TypeError:錯誤類型
-
類型錯誤,對這個數據類型不屬於他的操作
-
-
‘tuple‘ object does not support item assignment:錯誤的原因
-
TypeError:
-
unsupported operand type(s) for +: ‘int‘ and ‘str‘
-
不支持這樣的操作,int和str類型不支持一起
-
-
SyntaxError:invalid syntax 語法錯誤,如a++
變量命名規範
請一定遵循命名規範!
1、數字和特殊符號不能開頭
2、可采用駝峰和地中海命名
地中海:make_dinner 或 駝峰:makeDinner
變量引用計數:
-
創建變量:
-
內存: #占用兩塊(實際不止兩塊)
-
存儲 變量名需要內存
-
實際數據需要內存【同一個數據內存共享】
-
-
共享:a = 1 b = 1 c =1,abc中的1,實際數據共用一個內存地址
-
優點:節約內存
-
Python本身就在使用一些基礎變量
-
如:0-9 和 a-z
-
如果創建新的基礎數據類型,那麽不好去新開辟一塊內存,而是直接和已有的共享
-
-
-
獨立:彼此互不影響(C/Java語言的變量創建)
-
缺點:浪費內存、容易造成內存碎片
-
Python的序列數據和變量