1. 程式人生 > >Python的序列數據和變量

Python的序列數據和變量

有一個 感謝 edi typeerror 其中 新的 引用計數 行為 引用

本篇內容涉及字符串、列表、元組、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語言的變量創建)

    • 缺點:浪費內存、容易造成內存碎片

當引用計數為0的時候釋放內存

Python的序列數據和變量