1. 程式人生 > >記憶體管理,資料型別的基本使用與基本運算子(python2中與使用者互動)

記憶體管理,資料型別的基本使用與基本運算子(python2中與使用者互動)

1.CPython直譯器的垃圾回收機制
什麼是垃圾: 當一個值身上沒有繫結任何變數名(該值的引用計數=0)時,該值就是一個垃圾

引用計數增加

age=18   #18的引用計數等於1
x=age     #18的引用計數等於2

 

引用計數減少

age=19   #18的引用計數等於1

 

del   x  #18的引用計數等於0

2.變數值的三個特徵:

id: 反映的是記憶體地址

type: 資料型別

age=18

print(id(age))

print(type(age))

print(age)

 

總結:

  id相同,值一定相同

  值相同,id可以不同

3. is 與 == 

== : 值是否相同

is : id是否相同

 

4. 可變與不可變型別

可變型別: 值改變,id不變,證明就是在改變原值

不可變型別: 值改變,id也變,證明根本不是在改變原值,是建立了新值,原值就是不可變型別

 

***************************************************************************************************************

1.python2中與使用者互動

在Python3中只有input
特點: 會使用者輸入的任意內容都存成str型別

2. 在python 中只有一個raw_input,與python3的input一模一樣

但要求使用者必須輸入一個明確的型別,輸入什麼型別就存成什麼型別

 

 

************************************************************************************************************

資料型別的基本使用

一: 數字型別

整型 int 
作用: 用來記錄年齡,等級,各種號碼狀態

定義: 

age=10  # age=int(10)

print(type(age))

使用:

print(age + 1)
print(age > 3)

 

2. 浮點型  float

作用: 用來記錄身高,體重,工資狀態

定義: 

 salary=3.1 #salary=float(3.1)

 print(type(salary))

使用:

 print(3.1 + 2.3)

 print(3.1 > 2.3)

 print(3.1 > 2)

 print(3.1 + 2)

 

二: 字串型別  str

作用: 用來記錄描述性狀態,比如名字,性別
定義:在單引號('')、雙引號("")、三引號內(''' ''',""" """),包含一系列的字元

 

x='abc'      # x=str('abc')

print(type(x))

 

y="abc"

 

z="""

abc xxxx

"""

 

print(type(x))

print(type(y))

print(type(z))

 

 

msg='my name is "egon"'

使用:

print('abc'+'def') # 僅限於str型別直接相加

print('abc'*10) # *的只能是數字

 

瞭解:ASCII表

x='abcdef'

y='z'

print(x > y)

print('a' > 'Z' )

print('a' > 10 )

 

三: 列表型別   list

作用: 用來記錄多個值,用索引對應值,索引反映的是位置

定義: 在[]內用逗號分隔開多個任意型別的值

 

l=[1,3.1,'xxx',['a','b','c']] #l=list(...)

print(type(l))

使用

print(l[0])

print(l[2])

print(l[3][0])

 

students_info=[

['egon',18,['play',]],

['alex',18,['play','sleep']] ]

 

print(students_info[1][2][0])

 

四 : 字典型別  dict


作用: 用來記錄多個值,用key對應value,其中key對value有描述性的功能
定義: 在{}內用逗號分隔開多元素,每一個元素都是key:value的形式,其中value可以是任意型別的值,而key通常應該是str型別
d={'x':1,'y':3.1,'z':['a','b'],'m':{'aaa':1111}} #d=dict(...)
print(type(d))
使用:
print(d['x'])
print(d['m']['aaa'])
print(d['z'][1])

 

五: 布林型別:  True ,Flase

所有資料型別自帶布林值

布林值為假的資料型別: 0 ,空 , None

 

六: None

print(type(None))

 

***************************************************************************************************

 

基本運算子
一. 比較運算子

>   >= 

<   <=

== 

!=

 

瞭解

 

x=None

print(x==None)      True 

print(x is None)      True

 

二: 邏輯運算子

and: 連線左右兩個條件,只有兩個條件同時成立時and運算的結果為True

 

or : 連線左右兩個條件,兩個條件成立任意一個or運算的結果為True

 

not: 取相反的意思