1. 程式人生 > >day1_python之數據類型

day1_python之數據類型

由於 highlight hand 變化 malle std 位數 trace 結果

一、什麽可變數據類型和不可變數據類型

可變數據類型:value值改變,id值不變;不可變數據類型:value值改變,id值也隨之改變。

如何確定一種數據類型是可變的還是不可變的:

根據可變數據類型與不可變數據類型的概念,只需要在改變value值的同時,使用id()函數查看變量id值是否變化就可以知道這種數據類型是可變的還是不可變的了。

核心提示:

可變類型 Vs 不可變類型

可變類型(mutable):列表,字典

不可變類型(unmutable):數字,字符串,元組

這裏的可變不可變,是指內存中的那塊內容(value)是否可以被改變

二、什麽是數據類型?

我們人類可以很容易的分清數字與字符的區別,但是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,“漢”是文字,否則它是分不清1和‘漢’的區別的,因此,在每個編程語言裏都會有一個叫數據類型的東東,其實就是對常用的各種數據類型進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。

2.1、int(整型)

在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647

在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(長整型)

跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。

註意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。

註意:在Python3裏不再有long類型了,全都是int
>>> a= 2**64
>>> type(a)  #type()是查看數據類型的方法
<type ‘long‘>
>>> b = 2**60
>>> type(b)
<type ‘int‘>

2.2、字符串

在Python中,加了引號的字符都被認為是字符串!

>>> name = "Alex Li" #雙引號
>>> age = "22"       #只要加引號就是字符串
>>> age2 = 22          #int
>>>
>>> msg = ‘‘‘My name is Alex, I am 22 years old!‘‘‘  #我擦,3個引號也可以
>>>
>>> hometown = ‘ShanDong‘   #單引號也可以

那單引號、雙引號、多引號有什麽區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種情況 你需要考慮單雙的配合  

msg = "My name is Alex , I‘m 22 years old!"

多引號什麽作用呢?作用就是多行字符串必須用多引號  

msg = ‘‘‘
今天我想寫首小詩,
歌頌我的同桌,
你看他那烏黑的短發,
好像一只炸毛雞。
‘‘‘
 
print(msg)

字符串拼接

數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。

>>> name
‘Alex Li‘
>>> age
‘22‘
>>>
>>> name + age  #相加其實就是簡單拼接
‘Alex Li22‘
>>>
>>> name * 10 #相乘其實就是復制自己多少次,再拼接在一起
‘Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li‘

註意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接  

>>> type(name),type(age2)
(<type ‘str‘>, <type ‘int‘>)
>>>
>>> name
‘Alex Li‘
>>> age2
22
>>> name + age2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate ‘str‘ and ‘int‘ objects #錯誤提示數字 和 字符 不能拼接

2.3、布爾型(bool)

布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷

但其實你們並不明白對麽? let me explain, 我現在有2個值 , a=3, b=5 , 我說a>b你說成立麽? 我們當然知道不成立,但問題是計算機怎麽去描述這成不成立呢?或者說a< b是成立,計算機怎麽描述這是成立呢?

沒錯,答案就是,用布爾類型

>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True

計算機為什麽要描述這種條件呢?因為接下來就可以根據條件結果來幹不同的事情啦呀!比如  

if a > b
   print(a is bigger than b )
 
else
   print(a is smaller than b )

  

  

  

  

day1_python之數據類型