Python--基本數據類型(可變/不可變類型)


Python--基本數據類型

image

賦值格式:

  • 變量名 賦值符號 值

查看數據類型的方法:

  • type( )

1、整型 int

整型一般用於存儲整數等

#int實例
age = 18
num = 100
···


2、浮點型 float

浮點型一般用於存儲小數等

#float實例
NUM = 3.14
num = 1.456789
···

注·整型和浮點型可以叫做數字類型,主要用於數學運算、類型轉換等


3、字符串 str

字符串格式

字符串主要用於記錄描述性性質的數據

定義:字符串需要用引號括起來,單引號,雙引號,三引號(沒有賦值符號的三引號為注釋)

字符串定義格式:
#空字符串
s1 = ''
#非空字符串
方式一: #單引號
num = 'one two three'

方式二:  #雙引號
num = "one two three"

方式三:  #三引號:三個單引號
num = '''one  two  three'''
或
num = """one two three"""


字符串嵌套

為什么會有單引號雙引號或者三引號,這么多種類,在字符串內,如果需要多次使用引號需要注意,引號的開始和結束的位置,例子如下:

#錯誤示范
word = '老師說:'學會python就能拿高薪。''

圖示如下:

image


image


這樣python解釋器會認為字符串只有’老師說‘和后面的空字符串’ ‘。


#正確示范,引號嵌套
word = '老師說:"學會python就能拿高薪。"'
word1 = "老師說:'學會python就能拿高薪。'"

image

image

這樣就沒有問題了,注意引號的前后位置哦!

4、列表 list

  • 列表用來存儲多個數據並且可以方便取出任意個數。

  • 取元素的方法:索引、切片

定義:列表是用中括號括起來,內部可以存放多個元素,元素與元素之間用逗號隔開,元素類型可以為任意數據類型。

列表定義格式:
#空列表
lst1 = []

#非空列表
lst2 = [1,2,3,'python']
lst3 = [1,2,3,'python',['java','php','c++']]

列表元素的下標位置

image

索引和切片:字符串,列表常用

列表舉例子,索引取值,實例如下:

索引有兩種方式:正索引、負索引
根據元素的位置來決定用那種方法,在列表前端用正索引,末尾用負索引


# 索引取值,取python
lst2 = [1, 2, 3, 'python']
print(lst2[3])	#正
print(lst2[-1])	  #負
# 嵌套取值,取出java
lst3 = [1, 2, 3, 'python', ['java', 'php', 'c++']]
print(lst3[4][0])
print(lst3[-1][0])

image

image


切片取值的原理是左閉右開,不包含最后一位,切片取值實例如下:

#取出數字類型的元素,123,456,789
lst4 = [123,456,789,'name','age','hobby']
print(lst4[0:3]) #不包含第四個元素,所以取到第三個789

image

image


5、字典 dict

字典能夠更加精確的存儲數據,以鍵值對的形式存在

定義:字典是用大括號/花括號括起來,可以存放多個元素,元素與元素之間用逗隔開,對應的格式是KV鍵值對,{k:v}。

  • 說明:
    • K是對V的描述性性質的信息(一般情況下都是字符串)
    • V是真正的數據,相當於變量的值,可以是任意數據類型
# 字典實例:
#空字典
dic = {}
#非空字典
dic1 = {'name': 'HammerZe', 'age': 18, 'hobby': 'girl'}
#字典無法使用索引取值,只能通過K取值
print(dic['name'])

image

6、布爾型 boll

布爾值是用於判斷事物的對錯,只有兩種狀態,True,False

特別注意!布爾值的變量名一般采用 is開頭定義!

實例如下:

is_right = True
is_delete = False
is_alive = True

  • 數據類型轉換

    在python中所有的數據類型都可以轉換為布 爾值
    布爾值為False的有:
    0,None,'',[],{}····,其他情況一律為True

7、元組 tuple

元組與列表幾乎相同,但是是不可變的,列表里的元素是可變的

定義:用小括號括起來,可以存放多個元素,元素之間用逗號隔開,元素不支持修改

#實例如下:
#空元組
tup = ()
print(type(tup))
#非空元組
tup1 = (1, 2, 3, 4, 5, 6,)
print(type(tup1))
tup2 = (1, 2, 3, 4, 5, 6)
print(tup1 == tup2) #結果為True,后面多一個逗號也是可以的

image


8 、集合 set

集合可以去重和關系運算

定義:用大括號/花括號括起來,可以存放多個元素,元素和元素之間用逗號隔開,只能存儲不可變類型,和字典區別開。

#實例如下
#空集合
s = set()
print(type(s))
# 非空集合
s1 = {1, 2, 3, 4, 5, 6, 7}
print(s1,type(s1))

image


python中不可變數據類型和可變數據類型

查看內存地址的方法:id( )

如何區分可變與不可變

不可變數據類型更改后地址發生改變,可變數據類型更改地址不發生改變

  • 不可變數據類型: 當該數據類型的對應變量的值發生了改變,那么它對應的內存地址也會發生改變,對於這種數據類型,就稱不可變數據類型。
  • 可變數據類型 :當該數據類型的對應變量的值發生了改變,那么它對應的內存地址不發生改變,對於這種數據類型,就稱可變數據類型。

用一張表來說明:

數據類型 可變/不可變
整型 不可變
字符串 不可變
元組 不可變
列表 可變
集合 可變
字典 可變

實例如下:

查看源圖像

#分別取可變和不可變的一種來舉例子:
#整型
a = 1
print(id(a),type(a))
a = 2
print(id(a),type(a))

#結果
1354793072 <class 'int'>
1354793104 <class 'int'>

#內存地址發生了改變,所以是不可變類型

#列表:
lst = [1, 2, 3, 4, 5]
print(lst, id(lst), type(lst))
lst[0] = 'one'
print(lst, id(lst), type(lst))

#結果:
[1, 2, 3, 4, 5] 2616978892744 <class 'list'>
['one', 2, 3, 4, 5] 2616978892744 <class 'list'>
#內存地址沒有發生改變,所以是可變類型

看完例子是不是明白了可變與不可變的原理了!


image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM