1. 程式人生 > >Python系列之 - 入門基礎知識筆記

Python系列之 - 入門基礎知識筆記

馮諾依曼架構

    控制器
    運算器
    儲存器
    輸入裝置 (I)
    輸出裝置 (O)

    CPU——控制器,運算器 # 運算器只與記憶體交換資料
    記憶體——儲存器
    硬碟——輸入裝置,輸出裝置(向儲存器輸入資料,寫入儲存器輸出的資料)
    鍵盤,滑鼠——輸入裝置(向計算機輸入指令
    顯示器,印表機,音響等——輸出裝置

馮諾依曼體系
python的語言型別

python是動態語言,強型別語言

    靜態編譯語言
        事先宣告變數型別,型別不能更改
        編譯時檢查

    動態編譯語言
        不用事先宣告型別,隨時可以賦值為其他型別
        程式設計時不知道是什麼型別,很難推斷(編譯時無法檢查,只有執行時才能檢查)

    強型別語言
        不同型別之間操作,必須先強制型別轉換為同一型別

    弱型別語言
        不同型別之間可以操作,自動隱式轉換

基礎語法
基礎資料型別
註釋

由符號#標註的文字
數字

    整數 不區分短整型和長整型
        進位制 :二進位制(0b01),0o10,十六進位制(0xa)
        布林型 : True 、False

    浮點數
        1.2、3.1415、-0.12、146e9等價於1.46*10 9次方

    複數
        1+2i,1-2j

字串

    使用’ "單雙引號引用的字元的序列
    ‘’'和”””單雙三引號
    字串前加R或r則該字串不做特殊處理(轉義字元無效)

轉義字元

    \ ,\t,\r,\n,’,"
    tab:製表符,用在對齊列印,通常為了補足4個字元或者8個字元
    \n:相當於enter, new line,下一行

縮排

    捨棄了C等語言的花括號,用縮排代替層次關係
    約定使用4個空格縮排

續行

    在行尾使用\
    如果使用各種括號,認為括號內是一個整體,內部跨行不用
    識別符號

運算子
算術運算子
運算子     含義     示例
+     加     1+2=3
-     減     3-1=2
*     乘     2*2=4
/     除     9/3=3.0
%     取模     5%2=1
**     指數運算     3**2=8

    整除:返回除法的餘數

    自然除/結果是浮點數,整除//。

位運算子

    & | ~ ^ << >>
        &(與):二進位制的按位的相乘
            0b1101 &
            0b0001
            =0b0001
        |(或):按位相加(按位相加不進位,0b10|0b11=3)
        ~:按位取反
        ^:按位異或
        <<:
        >>:

    常用方式:乘除2的倍數,32//8相當於32>>3
    bin(32)=0b100000 往右走3位 結果為0b100
    12,0xc,0o14,0b1100

比較運算子
符號     含義     示例
==     等於     a == 3
!=     不等於     a != 3
>     大於     5 > 2
<     小於     7<13
>=     大於等於     a >= 2
<=     小於等於     b <= 7

    返回一個bool值
        1<‘1’(報錯) 1==‘1’(False)
        鏈式比較操作符
        4>3>2

邏輯運算子

    與或非 and or not
        短路運算子
            and 如果第一個表示式為False,則表示式一定為False
            or 如果第一個表示式為True ,則表示式一定是True

賦值運算子

a = min(3,5)
+= (a=a+4等價於a+=4)
-=
*=
/=
//=
%=
成員運算子

    in,not in

身份運算子

    is , is not

運算子優先順序

    單目運算子>雙目運算子
    算數運算子>位運算子>身份運算子>成員運算子>邏輯運算子
    記不住,用括號,
    長表示式,多用括號,易懂,易讀

表示式Expression

    由數字,符號,括號,變數等的組合
    算數表示式
    邏輯表示式
    賦值表示式

    Python中,賦值即定義,如果一個變數已經定義,賦值相當於重新定義

記憶體管理

    變數無需事先宣告,也不需要指定型別
    python程式設計中一般無須關心變數的存亡,也一般不用關心記憶體的管理
    python使用引用計數記錄所有物件的引用數

        當物件引用數變為0,他就可以被垃圾回收GC

            計數增加:
                賦值給其他變數就增加引用計數,例如x=3;y=x;z=[x,1]
                實參傳參,如foo(y)

            計數減少:

                函式執行結束時,區域性變數就會被自動銷燬,物件引用計數減少

                變數被賦值給其他物件,例如x=3;y=x;4

    有關效能的時候,就需要考慮變數的引用問題,但是該釋放記憶體,還是儘量不釋放記憶體,看需求

檢視引用計數

import sys

x = [ ]
print(1,sys.getrefcount(x))
print(2,sys.getrefcount([]))
y = x
print(3,sys.getrefcount(y),sys.getrefcount(x))
x = 5 #注意字面常量
print(4,sys.getrefcount(y))
print(5,sys.getrefcount(x))
   
z = 5
print(6,sys.getrefcount(x))

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

1 2
2 1
3 3 3
4 2
5 449
6 448
---------------------  
作者:Xiao.H  
來源:CSDN  
原文:https://blog.csdn.net/weixin_37687644/article/details/85557572  
版權宣告:本文為博主原創文章,轉載請附上博文連結!