這些天跟着廖雪峯老師的python教程學習了一些知識,做一下筆記
1. Python簡介
先根據我的理解簡單介紹一下python。
特點:
- 基於C的高級語言;
- 功能強大;
- 面向對象;
- 代碼量小;
- 運行效率不如C;
應用領域:
- 日常任務,腳本化機械重複的任務;
- 做網站,比如youtube;
- 網絡遊戲後臺;
2. Hello World
講一下我的安裝和運行。更多方法可以自行搜索。
- 先從python官網下載python 3中適用自己開發環境的安裝包。
- 安裝時注意勾選
Add Python 3.5 to PATH
可以避免手動配置windows path的步驟。 - 這個時候已經可以在windows cmd界面查看python 版本號,以及在集成的idle中進行開發了。
- 爲了方便開發,安裝好用的python ide: pycharm
- 可以在官網申請到教育試用版
python編程一般分交互式環境和文本編輯器式。
在交互式環境中或者文本編輯器中(例如:notepad++)輸入
print('hello world')
第一行pthon代碼就完成了,運行試下。
3. 基本操作
3.1 輸入輸出
print()
輸出變量或字符串' '
格式化字符串
%
運算符就是用來格式化字符串的。在字符串內部,%s
表示用字符串替換,%d
表示用整數替換,有幾個%?
佔位符,後面就跟幾個變量或者值,順序要對應好。如果只有一個%?
,括號可以省略。
常見的佔位符有:
%d 整數
%f 浮點數
%s 字符串
%x 十六進制整數
input()
注意輸入默認爲字符串
>>> a = input()
1
>>> a
'1'#這裏'1'爲字符串
3.2 條件判斷
if
後面接布爾值True(或者任意非空值) or False, 或者計算結果爲布爾值的表達式2 > 3
if Ture:#or False, 注意':'初學很容易忘
pass
elif Ture:
pass
else:
pass
3.3 循環
for x in ...
循環能把...
中list或tuple中的每個元素迭代出來,這點能夠簡化工作和代碼量。
例如
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
輸出
Michael
Bob
Tracy
常用for x in range(i)
注意range(i, j, k)
生成從 i ~ j-1 的步長爲 k 的整數序列
還有while
循環
4. 數據類型
4.1 基本類型
- 整數
int
- 浮點數
float
- 字符串
str
' '
或" "
表示- 轉義字符
\
orr' '
- 布爾值
True
orFalse
- 空值
None
- 變量
- 常量 習慣用大寫變量名
PI = 3.14159275
- 幾種除法
/
結果爲浮點數//
地板除,取結果的整數部分%
求餘
Python支持多種數據類型,在計算機內部,可以把任何數據都看成一個“對象”,而變量就是在程序中用來指向這些數據對象的,對變量賦值就是把數據和變量給關聯起來。
4.2 字符串和編碼
最早只有127個字母被編碼到計算機裏,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱爲ASCII編碼。
Unicode把所有語言都統一到一套編碼裏,這樣就不會再有亂碼問題了。
把Unicode編碼轉化爲“可變長編碼”的UTF-8編碼。
由於Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存爲UTF-8編碼。當Python解釋器讀取源代碼時,爲了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行註釋是爲了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個註釋;
第二行註釋是爲了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。
4.3 list, tuple, dict and set
list
['asdf', 1234, Ture, [12, 'aaa'], p, []]
len()
獲取list元素個數l[-1]
指列表最後一個元素l.append()
添加元素到末尾l.pop(i)
刪除i位置元素- 直接賦值替換該位置元素
tuple
有序列表元組,初始化後不能修改。(tuple中元素指向永遠不變,內容可能改變)
('asdf', 1234, Ture, [12, 'aaa'], p, [])
# 定義空tuple
>>> t = ()
>>> t
()
# 定義只有元素'1'的tuple
>>> t = (1)
>>> t
1
# 定義只有一個元素的tuple
>>> t = (1,)
>>> t
(1,)
dict
dict全稱dictionary,在其他語言中也稱爲map,使用鍵-值(key-value)存儲,具有極快的查找速度。需要佔用大量的內存,內存浪費多。用空間來換取時間的一種方法。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} # 注意',' ':'的寫法
>>> d['Michael']
95
這種key-value存儲方式,在放進去的時候,必須根據key算出value的存放位置,這樣,取的時候才能根據key直接拿到value。
- 通過
in
判斷key是否存在 - 通過dict提供的
get
方法,如果key不存在,可以返回None,或者自己指定的value
dict的key必須是不可變對象。因爲dict根據key來計算value的存儲位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的算法稱爲哈希算法(Hash)。
set
一組key的集合,但不存儲value。由於key不能重複,所以,在set中,沒有重複的key。set的原理和dict一樣,所以,同樣不可以放入可變對象
set可以看成數學意義上的無序和無重複元素的集合。
- 通過
add(key)
方法可以添加元素到set中。 - 通過
remove(key)
方法可以刪除元素。
兩個set可以做數學意義上的交集&
、並集|
等操作。
不變對象
str是不變對象,而list是可變對象。
對於可變對象,比如list,對list進行操作,list內部的內容是會變化的。
要始終牢記的是,a
是變量,而'abc'
纔是字符串對象!有些時候,我們經常說,對象a
的內容是'abc'
,但其實是指,a
本身是一個變量,它指向的對象的內容纔是'abc'
對於不變對象來說,調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會創建新的對象並返回,這樣,就保證了不可變對象本身永遠是不可變的。