Python基礎

馮諾依曼體系架構

這裏寫圖片描述

  • CPU有運算器和控制器組成
  • 運算器,完成各種算術運算、邏輯運算、數據傳輸等數據加工處理
  • 控制器,控制程序的執行
  • 存儲器,用於記憶程序和數據,例如內存
  • 輸入設備, 將數據或者程序輸入到計算機中,例如鍵盤,鼠標
  • 輸出設備,將數據或程序的處理結果展示給用戶,例如顯示器、打印機等
  • CPU中還有寄存器和多級緩存Cache

編程基礎

  • 計算機語言
    • 人與計算機中間交互的語言
  • 機器語言
    • 一定位數組成二進制的0和1的序列,稱爲機器指令。機器指令的集合就是機器語言
    • 與自然語言差異太大,難學、難懂、難寫、難記、難查錯
  • 彙編語言
    • 用一些助記符號代替機器指令,稱爲彙編語言。ADD A,B 指的是將寄存器A的數與寄存器B的數相加得到的數放到寄存器A中
    • 彙編語言寫好的程序需要彙編程序轉化成機器指令
    • 彙編語言只是稍微好記一些,可以認爲就是機器指令對應的助記符。只是符號本身接近自然語言

語言分類

  • 低級語言
    • 面向機器的語言,包括機器語言、彙編語言
    • 不同的機器不能通用,不同的機器需要不同的機器指令或者彙編程序
  • 高級語言
    • 接近自然語言和數學語言的計算機語言
    • 高級語言首先要書寫源程序,通過編譯程序把源程序轉化成機器指令的程序
    • 1954年正式發佈的Fortran語言是最早的高級語言,本意是公式翻譯
    • 人們只需要關心怎麼書寫源程序,針對不同機器的編譯的事交給編譯機器關心處理
  • 編譯語言,把源代碼轉換成目標機器的CPU指令
  • 解釋語言,解釋後轉換成字節碼,運行在虛擬機上,解釋器執行中間代碼

Python基礎語法

  • 註釋——-#標註的文本
  • 數字
    • 整數,不區分long和int
      • 進制0xa、0o10、0b10
      • bool,True、Flase
    • 浮點數
      • 1.2、3.1415、-0.12、1.46e9=1.46*10^9
    • 複數 1+2j
  • 字符串
    • 使用’ ” 單雙引號引用的字符的序列
    • ”’和”“”單雙三引號,可以跨行、可以在其中自由的使用單雙引號
    • 在字符串前面加上r或者R前綴,表示該字符串不做特殊的處理
  • 轉移序列
    • \ \t \r \n \’ \”
    • 前綴r,把裏面的所有字符當普通字符對待
  • 縮進
    • 採用縮進的方式表示層次關係,約定使用4個空格縮進
  • 續行
    • 在行尾使用\
    • 如果使用各種括號,認爲括號內是一個整體,內部跨行不用 \
  • 標識符
    • 一個名字,用來指代一個值
    • 只能用字母、下劃線和數字
    • 只能以字母或者下劃線開頭
    • 不能是Python的關鍵字
    • Python是大小寫敏感的
  • 常量
    • 一旦賦值就不能改變值的標識符
    • Python中無法定義常量
  • 字面常量
    • 一個單獨的量,例如 12、‘abc’
  • 變量
    • 賦值後,可以改變值的標識符

Python的語言類型

  • Python是動態語言、強類型語言
  • 靜態編譯語言
    • 實現聲明變量類型,類型不能再改變
    • 編譯時檢查
  • 動態編譯語言
    • 不用事先聲明類型,隨時可以賦值爲其它類型
    • 編譯時不知道是什麼類型,很難判斷
  • 強類型語言
    • 不通類型之間操作,必須先強制類型轉換爲同一類型
  • 弱類型語言
    • 不同類型之間可以操作,自動隱式轉換。

運算符Operator

  • 算術運算符
+ - *  / % **
  • 自然除 / 結果是浮點數
  • 位運算符
    這裏寫圖片描述
    • & | ~ ^ << >>
    • 常用方式:乘除2 的倍數,32//4相當於32>>2
    • 12, 0xc, 0o14, 0b110
~12等於多少,爲什麼
12源碼    0000 1100
12反碼    0000 1100
12補碼    0000 1100
12按位取反    1111 0011
1111 0011在計算機中表示負數
符號位不變,按位取反 加 1   1000 1101
-13
  • 運算符
    • 賦值運算符
      • a = min(3,5)
      • += -+ *= /= %=等
      • x = y = z = 10
    • 成員運算符
      • in、not in
    • 身份運算符
      • is 、 is not
  • 運算符優先級
    • 算數運算符>位運算符>身份運算符>成員運算符>邏輯運算符
    • 善用括號,提升易讀性

表達式Expression

  • 由數字、符號、括號、變量等的組合
    • 算數表達式
    • 邏輯表達式
    • 賦值表達式
      • python中,賦值既定義,如果一個變量已經定義,賦值相當於重新定義

內存管理

  • 引用計數
  • 當引用計數爲0,它就可以被垃圾回收
  • 垃圾回收GC

程序控制

  • 順序
    • 按照先後順序一條條執行
  • 分支
    • 根據不同情況判斷,條件滿足執行某條件下的語句
  • 循環
    • 條件滿足就重複執行,不滿足就不執行或不再執行

單分支結構

  • if語句
if condition:
    代碼塊
    ##condition必須是一個bool類型
if 1 < 2:
    print("1 less than 2")
  • 代碼塊
    • 類似於if語句的冒號後面的就是一個語句塊
    • 在if、for、def、class等
  • False等價布爾值,相當於bool(value)
    • 空集合
      • 空字符串
      • 空列表
      • 空元組
      • 空字典
    • None對象
    • 0

多分值結構

if...elif...else語句
    if condition1:
        代碼塊1
    elif condition2:
        代碼塊2
    elif condition3:
        代碼塊3
    ......
    else:
        代碼塊
  • 舉例
    a = 5
    if a < 0:
        print("negative")
    elif a == 0:
        print("zero")
    else:
        print("positive")

分支嵌套

  • 舉例
score = 80
if score < 0:
    print("wrong")
else:
    if scoree == 0:
        print('egg')
    elif score <= 100:
        print('right')
    else:
        print('too big')
  • 嵌套結構,可以是分支,循環的嵌套
  • 可以相互嵌套多層

循環–while

  • 語法
while condition:
    block

當條件滿足即Conditon爲True,進入循環體,執行block
  • range函數
  • 舉例:打印1~10
for i in range(10):
    print(i+1)

循環 continue語句

  • 中斷當前循環的當前執行,繼續下一次循環
  • 舉例:計算10以內的偶數(for循環)
for i in range(10):
    if i//2 != 0:
        continue
    else:
        print(i)

循環 break語句

  • 終止當前循環
  • 舉例:計算1000以內的被7整除的 前20個數(for循環)
count = 0
for i in range(7,1000,7):
    print(i)
    count += 1
    if count >= 20:
        break

循環 continux、break語句

  • 總結
    • continue和break是循環的控制語句,只是影響當前循環,包括while、for循環
    • 如果循環嵌套,contunue和break也只是影星語句所在的那一層循環
    • continue和break不是跳出語句塊,所以if cond:break不是跳出if,而是終結if外的break所在的循環

循環 else子句

  • 語法
while condition:
    block
else:
    block
for elemrnt in iteratable:
    block
else:
    block
  • 如果循環正常的執行結束,就執行else子句;如果使用break終止,else子句就不會執行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章