python中型別是在執行過程中自動決定的
執行a = 3後,先建立乙個物件來代表值3,建立乙個變數a(如果還沒有建立的話),變數a變成3物件3的乙個引用,在內部實際上變數是到物件記憶體空間的乙個指標。
與c++不同,c++變數是一塊記憶體區域,改變變數值是改變相應記憶體內的值。
在python中,變數名沒有型別,而每個變數都包含了乙個頭部資訊,標記了這個物件的型別。(還有乙個頭部資訊是引用計數器)
每個物件中的計數器記錄了當前指向該物件的引用的數目,一旦這個計數器被設定為零,這個物件的記憶體空間就會自動**。每當乙個變數名被賦予乙個新值,原來數值物件的的引用值會減一。
當物件引用自身,或引用了另乙個引用自身的物件時,引用計數器不會清除為0,必須特別對待。
不可變性:建立後就不能改變,只能重新賦值。
可變性:可以自由改變
dir(x) help(x.function)可以檢視物件的屬性和方法詳情
a = 1.1 a=3+4j
0o117 八進位制 0x9ff 十六進製制 0b10101 二進位制 ,內建函式hex(i)、oct(i)、bin(i)可以把整數轉換為這三種進製表示的字串
int函式可以將數字的字串轉換為乙個整數,int('64') int('117', 8) int('ff', 16) int('1000000', 2)。 eval函式,可以把字串作為python**,也有類似的效果 eval('0o117') eval('0xff') eval('0b1000000'),但是比int要慢
python可以把多個比較連續起來執行,如az
小數型別:(有固定精度的浮點值,解決了浮點數的缺乏精確度)(可以設定全域性精度)
from decimal import deecimal
decimal('0.1') + decimal('0.01')
分數型別:(明確保留分子和分母,避免了浮點數的不精確性和侷限性)
from fractions import fraction
x = fraction(1, 3)
a = 'spam' a="ggg's" a=b'a\xolc'
可以對字串進行索引、切片等序列操作
看上去改變了字串的操作都是建立了乙個新的字串賦給原變數
"""aaabbb''''cdcddgga"""可以在三個引號中包含多行字串
單引號和雙引號是一樣的,可以互換
與c++不同,python沒有單個字元的型別,只有字串。
[123, 'spam', 1.23] [123, [1, 2, 3], ['a', 'b', 'c']]
可以對列表進行索引、切片等序列操作(相當於其他語言中的無固定型別的陣列),並且可以巢狀
}dict(name = 'mel', age = 45)
dict([('name', 'mel'), ('age', 45)])
dict.fromkeys(['a', 'b'], 0) #傳入乙個鍵列表和初始值
無序的集合, 一種鍵值對對映,可以使用任何不可變物件作為鍵。
(0, 'ni', ('a', 'b'))
像不可變的列表,是任意物件的有序集合
python 布林型別,基礎運算和基礎流程
1.布林型 1 空元組,列表,字典,字串,none都屬於flase 2 非零,非空列表,字典,字串,元組 1.0,空元組,列表,字典,字串,none都屬於flase print bool 0 整型 print bool 列表 print bool 元組 print bool 字典和集合 print ...
Python型別和運算 數字
在python中,數字並不是乙個真正的物件型別,而是一組相似型別的分類。不僅包括通常的數字型別 整數和浮點數 黑包括數字表示式,以及高階的數字程式設計。基本數字常量 數字 常量 1234,24 整數 無窮大小 1.23,3.14e10 浮點數 0177,0x9ff,0b1010 python2.6中...
零基礎學Python 數值型別和運算子
在 python 中定義變數是 不需要指定型別 在其他很多高階語言中都需要 整形,也被稱之為整數。整數就是數學中的數字。整形在python中不受長度限制大小範圍 使用 type 函式可以檢視乙個變數的型別 小數型別 小數 運算 運算子優先順序與整形是一樣。浮點數轉化為整形 顯示轉化 隱式轉化,系統背...