【Pyhton】學習筆記1-基礎篇(變量 數據結構 運算符)

【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'}
同時這裏的集合也是數學概念上的集合,可以使用子交併補的方式計算。

運算符

運算符分爲

  • 賦值運算符 =
  • 算術運算符
  • 位運算符
  • 比較運算符
  • 邏輯運算符

運算符的優先級如下

在這裏插入圖片描述

總結

  1. 熟悉一種語言不需要事無鉅細的瞭解每個函數的用法
  2. 快速的根據自己熟悉的語言去對比新學習的語言,找到不同
  3. 多看官方文檔,國內的計算機書籍能不看就不看

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章