python學習筆記

綜述

應用場景:
首選是網絡應用,包括網站、后臺服務等等;其次是許多日常需要的小工具,包括系統管理員需要的腳本任務等等;另外就是把其他語言開發的程序再包裝起來,方便使用。

優缺點:
優點:“優雅”、“明確”、“簡單”、“內置電池( batteries included)”(各種庫),所以開發速度快。
缺點:運行慢,源碼公開。

要點

!/usr/bin/env python3 #為了在linux上運行
# -*- coding: utf-8 -*- #編碼聲明

數據類型

  • 整數 1 0xff00 etc.
  • 浮點數 3.14 3e-5
  • 字符串 "abc" 'abc' r'a\b\vc\\cc\\' # 非轉義
  • 布爾值 True False,可進行and or not運算
  • 空值 None
  • 常量 PI=3.1415926 #默認大寫,其實也是變量
  • 在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉為UTF-8編碼.在最新的Python 3版本中,字符串是以Unicode編碼的
  • Python提供了ord()函數獲取字符的整數表示,chr()函數把編碼轉換為對應的字符:
>>>ord('A')  
65  
>>>chr(65)
'A'
>>>chr(25991)
'文' 
>>>'\u4e2d\u6587' # 16進制的str  
'中文'  
  • 以Unicode表示的str通過encode()方法可以編碼為指定的bytes.如果我們從網絡或磁盤上讀取了字節流,那么讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'  
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
  • 格式化輸出
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
  • 列表 classmates = ['Michael', 'Bob', 'Tracy'].可以下標訪問。方法主要有.append('Lucy');.pop();.pop(i)classmates.insert(1, 'Jack')里面數據類型可以不同
  • tuple 不可更改的列表classmates = ('Michael', 'Bob', 'Tracy')
  • dic d = {'Michael': 95, 'Bob': 75, 'Tracy': 85};方法: d.get('Thomas', -1) ;d.pop('Bob')
  • set s = set([1, 1, 2, 2, 3, 3]);s.add(4);s.remove(4);兩個set可以做數學意義上的交集、并集等操作

函數

函數主要注意默認參數,可變參數,關鍵字參數,命名關鍵字參數。
*args是可變參數,args接收的是一個tuple;**kw是關鍵字參數,kw接收的是一個dict。以及調用函數時如何傳入可變參數和關鍵字參數的語法:可變參數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過*args傳入:func(*(1, 2, 3));關鍵字參數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{'a': 1, 'b': 2})。使用*args**kw是Python的習慣寫法,當然也可以用其他參數名,但最好使用習慣用法。命名的關鍵字參數是為了限制調用者可以傳入的參數名,同時可以提供默認值。定義命名的關鍵字參數在沒有可變參數的情況下不要忘了寫分隔符*,否則定義的將是位置參數。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容