【Pyhton】學習筆記1-基礎篇
是什麼
在學習Python之前,我們需要了解它
Python is a programming language that lets you work quickly
and integrate systems more effectively.
這句寫在官網上的話,顯然是句廢話。除了廢話之外,我們能看出它突出的是快速和有效。
Python 是一種易於學習又功能強大的編程語言。它提供了高效的高級數據結構,還有簡單有效的面向對象編程。Python 優雅的語法和動態類型,以及解釋型語言的本質,使它成爲多數平臺上寫腳本和快速開發應用的理想語言。
這句寫在官網教程上的話,表明了Python的特點
- 簡單高效
- 動態類型
- 解釋型語言
- 大部分用於寫腳本和開發應用
動態語言
如果你是已經使用過一種或者一種以上編程語言的開發者,這個不需要怎麼解釋。
簡單解釋爲:可以在運行過程中自動隱式轉換成需要的數據類型。
解釋型語言
解釋型語言區別於編譯型語言,即每次運行都需要調用解釋器讓計算機看懂含義。而編譯型語言,一次編譯之後計算機即可執行。
能做什麼
上面簡單提到了python的使用場景,詳細分類的話如下
- web開發: Django, Pyramid, Bottle, Tornado, Flask, web2py
- GUI開發: tkInter, PyGObject, PyQt, PySide, Kivy, wxPython
- 科學和數字計算: SciPy, Pandas, IPython
- 軟件開發: Buildbot, Trac, Roundup
- 系統管理: Ansible, Salt, OpenStack
也就是憑藉着簡單易懂,Python在各個領域都有廣泛應用。
但是,語言作爲一項工具,能做什麼是一方面,作爲使用者的我們想用來做什麼是另一方面。
環境&版本
本系列文章會陸續用到個人的兩臺電腦
- MacBookPro
- Win10
Python版本爲 3.7 ,推薦使用官方穩定版 3.7.3
由於這兩年的庫的完善,本系列文章不再推薦和使用Python2.x
目的&目標羣體
目的
- 瞭解Python語法
- 能編寫完整的項目,實現具體業務
目標羣體
- 有一定編程經驗,最少熟悉一門編程語言的開發人員
變量
數值類型
int 整型
Python3.x的int
類型包含了Python2.x中的short、int、long
m = 2333333333333333333333333
print(type(m))
<class 'int'>
整型可以按4種進製表示,分別爲 十進制、二進制、八進制、十六進制,在實際開發過程中,有需求可以轉換成對應進制進行計算。
float 浮點型
m = 2333333333333333333333333.0
print(type(m))
<class 'float'>
complex 複數
m = 23333 + 0.3j
print(type(m))
<class 'complex'>
str 字符串
Python的字符串控制非常自由,字符串拼接用的+
,需要注意的是,如果數值和字符串拼接需要將數值進行轉換。
m = "222"
n = 2.3
print(m + str(n))
print(type(m + str(n)))
2222.3
<class 'str'>
如果不轉換,會提示TypeError: can only concatenate str (not "float") to str
。
和PHP不同的是,Python可以通過索引控制字符串,相當於PHP簡單的數組操作。這個來講還是很方便的。
字符串的其他用法,比如格式化、替換、大小寫轉換,這些本質上都屬於API的調用,對照文檔就能明白的,這裏就沒有必要一一做實例了。
對於字符串,只需要知道,Python是把字符串當做序列來看的就OK。
bytes 字節
區別於字符串的是,bytes存儲的是二進制字節。
m = b"2223"
print(m)
print(type(m))
b'2223'
<class 'bytes'>
數據結構
瞭解數據結構的意義在於明白
- 這個東西在這個語言裏怎麼表達
- 這個東西在這個語言的邊界是什麼
- 這個東西跟我之前用的語言有啥不一樣的
看過我其他文章的讀者知道,我目前主要使用PHP作爲開發語言,所以在後續過程中,我有時候會和PHP做對比,來講他們的異同。
Python的數據結構爲這幾種
- 列表 list
- 元祖 tuple
- 字典 dict
- 序列
- 集合 set
列表[1,2]
是可變的,元祖(1,2)
是不可變的。
比較有意思的是,列表支持乘法運算,將列表內的元素乘以多少倍。
列表的常用操作,添加刪除元素、排序等方法比較常規,所以不展開。
字典是有key-value結構的列表,樣子很像json。
m = {"m1":23,11:22}
print(m)
print(type(m))
{'m1': 23, 11: 22}
<class 'dict'>
集合是沒有重複元素的,例如 {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
同時這裏的集合也是數學概念上的集合,可以使用子交併補的方式計算。
運算符
運算符分爲
- 賦值運算符
=
- 算術運算符
- 位運算符
- 比較運算符
- 邏輯運算符
運算符的優先級如下
總結
- 熟悉一種語言不需要事無鉅細的瞭解每個函數的用法
- 快速的根據自己熟悉的語言去對比新學習的語言,找到不同
- 多看官方文檔,國內的計算機書籍能不看就不看