1. 程式人生 > >菜鳥學Python第三天

菜鳥學Python第三天

記憶體管理

C python直譯器的垃圾回收機制

  • 什麼是垃圾: 當一個值身上沒有繫結任何變數名(該值得引用計數=0)時,該值就是一個垃圾。

引用計數增加

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

引用計數減少"del x"解除變數名和值的繫結,減少計數,然後由Python機制回收

變數值的三個特徵

  • id : 反映的是記憶體地址

  • type : 資料型別

  • 值 : 值本身

    總結
    1. id相同,值一定相同

    1. 值相同,id可以不同

    2. is 與 ==的區別

    • == :值是否相等

    • is : id是否相等

    1. 可變型別和不可變型別:判斷可不可變,主要是判斷id是否改變。

    • 可變型別:值改變,id不可變

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


Python 2中與使用者互動(瞭解)

    1. 在Python 3中只有一個input

      特點:會將使用者輸入的任意型別都存成str型別

    1. 在Python 2中只有一個raw_input,與Python 3的input一模一樣

    x = raw_input('>>>:')

     

    python 2 中的 input 要求使用者輸入明確的型別,輸入什麼型別就存為什麼型別。

    >>> x = input('x:')
    x:123
    >>> x
    123
    >>> type(x)
    <type 'int'>

     


 

資料型別的基本使用

1. 整型:int

  • 作用:用來記錄年齡、等級、各種號碼狀態

  • 定義:

age = 10

 

  • 使用:略

2.浮點型:float

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

  • 定義:

height = 1.83

 

  • 使用:略

3.字串:str

  • 作用:用來記錄描述性質狀態,比如名字、性別等。

  • 定義:在單引號('')、雙引號(" ")、三引號(''' ''', """ """)內包含一系列字元。

    • 三種不同引號的區別:

        1. 單引號和雙引號基本無區別,都是用來存放單個字串,但要注意的是要保證前後的一致性

        2. 三引號多用來存放多行字串

        3. 字串的巢狀時,要保證內外引號的差異性,否則就會報錯

x = 'abc' # 等同於x = "abc"
​
y = """
abc
123
hahaha
"""
​
msg = 'my name is "Jason"'

 

  • 使用:

    1. 字串的加法運算(僅限於字元串同型別相加)

    2. 字串的乘法(相乘的物件必須是int型別)

    3. 字串之間的大小比較

4.列表:list

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

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

>>> l = [1, 0.1, 'Jason', ['a', 'b', 'c']]
>>> print(type(l))
<type'list'>

 

使用:列表的取值及巢狀取值

5.字典:dict

作用:用來存放多個值,用key對應value,其中key對value有描述性作用

定義:在{}內,用逗號分隔開多個元素,每一個元素都是key:value的形式,其中value可以是任意型別,而key通常是字串型別。

>>> s = {'name':'Jason','age':'23','hobby':'basketball'}

 

用法:按照key取value

>>> s = {'name':'Jason','age':'23','hobby':'basketball'}
>>> print(s['age'])
23

 

6.布林型別:bool

作用:用來控制程式的走向

定義:布林型別只有兩種,True/false;

與之前的型別不同,基本不需要提前定義

用法:通常用在迴圈或判斷語句中,控制程式流程的走向

所有資料型別自帶布林值,除0,None,空(任何為空的資料型別)的布林型別為False外,其他資料型別的布林值皆為True。

7.None

>>> print(type(None))
<class 'NoneType'>

 

 


基本運算子

1. 比較運算子

比較運算子包含:">", ">=", "<", "<=", "==", "!="

用法:通常用於迴圈或判斷語句中,輸出值為布林型別。

2. 邏輯運算子

  • and:連線左右兩個條件,只有在兩個條件同時成立時,輸出結果才為真

  • or:連線左右兩個條件,只要有其中一個條件成立時,輸出結果就位真

  • not:非

注:當統一語句中存在兩個以上條件時,用括號標明優先順序可增加程式碼可讀性