Python全棧開發之基礎語法
阿新 • • 發佈:2018-09-29
deepcopy 分配 有符號 數字 桌面應用 存儲 tex 算術運算符 多行 No1. Python語言介紹
詳情見百度百科。。。
No.2 Python是一門怎麽樣的語言
詳情在百度百科。。。
No3. Python能做什麽
網絡應用、桌面應用、系統運維、機器學習、科學計算。。。
- 網絡應用 Django/Flask/Tornado
- 桌面應用 PyQt/PySide/wxPython/PyGTK
- 系統運維 psutil/IPy/dnspython/difflib
- 機器學習 Scikit-Learn/Statsmodels/PyMC/Shogun
- 科學計算 NumPy/SciPy/Matplotlib
No4. Python的優缺點
- 簡單,開發效率高,高級語言,跨平臺。。。
- 速度慢,代碼不能加密,GIL鎖。。。
No5. Python的安裝
- Windows 下載Anaconda,點點點。。。
- Linux 下載Anaconda,解壓,安裝。。。
No6. 註釋
- 單行註釋 # 一行
- 多行註釋 """一堆""" OR ‘‘‘一堆‘‘‘
No.7 關鍵字
- 具有特殊功能的標識符,這就是所謂的關鍵字
import keyword print(keyword.kwlist)
No.8 格式化
格式符號 | 備註 |
---|---|
%c | 字符 |
%s | 字符串 |
%i | 有符號十進制整數 |
%d | 無符號十進制整數 |
%o | 八進制整數 |
%x | 十六進制整數(小寫字母) |
%X | 十六進制整數(大寫字母) |
%f | 浮點數 |
No.9 變量
Python的變量就是一個便利貼
- 變量名只能是字母、數字、下劃線的組合
- 變量的第一個字符不能是數字
- 變量名不能和關鍵字重名
No.10 運算符
-
算術運算符
運算符 備註 + 加 - 減 * 乘 ** 冪 / 除 // 整除 % 模 -
賦值運算符
運算符 實例 = a = 1 += a += 1 <=> a = a + 1 -= a -= 1 <=> a = a -1 *= a = 2 <=> a = a 2 **= a = 2 <=> a = a /= a /= 2 <=> a = a / 2 //= a //= 2 <=> a = a // 2 %= a %= 2 <=> a = a % 2 -
關系運算符
運算符 備註 == 等於 != 不等於 > 大於 < 小於 >= 大於等於 <= 小於等於 -
邏輯運算符
運算符 備註 and x和y均為真,返回真 or x或者y為真,返回真 not x為假,返回真 -
位運算符
運算符 備註 & 按位與運算符,參與運算的兩個值,如果相同位都為1,則結果為1 | 按位或運算符,參與運算的兩個值,只要相同位一個為1,則結果為1 ^ 按位異或運算符,參與運算的兩個值,當相同位不同時,則結果為1 ~ 按位取反運算符,即1變0,0變1 << 左移運算符,運算符的各二進制位向左移動若幹位 >> 右移運算符,運算符的各二進制位向右移動若幹位 -
成員運算符
運算符 備註 in 如果在序列中存在返回真 not in 如果在序列中不存在返回真 -
身份運算符
運算符 備註 is 判斷兩個標識符是不是引用自一個對象 is not 判斷兩個標識符是不是不是引用自一個對象
No.11常用數據類型轉換
- index(x[,base]) 將x轉換為一個指定進制的整數,默認為十進制
- long(x[,base]) 將x轉換為一個指定進制的整數,默認為十進制
- float(x) 將x轉換為一個浮點數
- str(x) 將x轉換為一個字符串
- repr(x) 將x轉換為表達式字符串
- eval(x) 用來計算字符串表達式並返回一個對象
- tuple(x) 將x轉換成一個元祖
- list(x) 將x轉換成一個列表
- chr(x) 將x(整數)轉換為字符形式
- ord(x) 將x(字符)轉換成整數形式
- hex(x) 將x轉換成十六進制
- oct(x) 將x轉換成八進制
- bin(x) 將x轉換成二進制
No.12 判斷語句
- if-else
if 條件:
do something
else:
do something
- elif
if 條件: do something elif 條件: do something
- if嵌套
if 條件: if 條件: do something elif 條件: do something elif 條件 if 條件: do something elif 條件: do something else: if 條件: do something elif 條件: do something
No.12 循環語句
- while
while 條件:
do something
栗子:
i = 0
sum = 0
while i < 100:
sum += i
i += 1
- while循環嵌套
while 條件:
do something
while 條件:
do something
栗子:
i = 1
while i <= 9:
j = 1
while j <= i
print("%d*%d=%-2d"%(j,i,i*j),end=‘‘)
j += 1
print(‘\n‘)
i += 1
-
for循環
在Python中for循環可以遍歷任何序列
for 臨時變量 in 序列:
do something
else:
do something
栗子:
name = ‘kernel‘
for i in name:
print(i)
- break和continue
break的作用是用來結束整個循環栗子: i = 0 while i <= 100: i += 1 if i == 5: break
continue的作用是用來結束本次循環,然後執行下一次循環
栗子:
i = 0
while i <= 100:
i += 1
if i == 5:
continue
No.13 簡述拷貝
要理解深淺拷貝需要理解下面的概念
變量->引用->對象->切片->拷貝
變量是便利貼
對象是被分配的一塊內存,存儲其代表的值
引用是自動形成的從變量到對象的指針
不變對象是指一旦創建就不可以改變的對象,例如字符串、數字、元組
可變對象是指可以改變的對象,例如列表、字典
- 不可變對象的賦值
a = 1
b = a
print(a) # 1
print(b) # 1
b = 2
print(a) # 1,並沒有隨著b的改變而改變
print(b) # 2
- 可變對象的賦值
a = [1,2,3,4]
b = a
print(a) # [1,2,3,4]
print(b) # [1,2,3,4]
b[3] = 5
print(a) # [1,2,3,5]
print(b) # [1,2,3,5]
-
深淺拷貝
淺拷貝:只拷貝頂級的對象
深拷貝:拷貝所有對象
import copy
l1 = [1,2,3,4,[‘a‘,‘b‘]]
l2 = copy.copy(l1)
print(l1) # [1,2,3,4,[‘a‘,‘b‘]]
print(l2) # [1,2,3,4,[‘a‘,‘b‘]]
l2[0] = 11
l2[4][0] = ‘aa‘
print(l1) # [11,2,3,4,[‘a‘,‘b‘]]
print(l2) # [11,2,3,4,[‘aa‘,‘b‘]]
import copy
l1 = [1,2,3,4,[‘a‘,‘b‘]]
l2 = copy.deepcopy(l1)
print(l1) # [1,2,3,4,[‘a‘,‘b‘]]
print(l2) # [1,2,3,4,[‘a‘,‘b‘]]
l2[0] = 11
l2[4][0] = ‘aa‘
print(l1) # [11,2,3,4,[‘aa‘,‘b‘]]
print(l2) # [11,2,3,4,[‘aa‘,‘b‘]]
結論:
深淺拷貝都是對源對象的復制,占用不同的內存空間
如果源對象只有一級目錄的話,源做任何改動,不影響深淺拷貝對象
如果源對象不止一級目錄的話,源做任何改動,都要影響淺拷貝,但不影響深拷貝
序列對象的切片其實是淺拷貝,即只拷貝頂級的對象
Python全棧開發之基礎語法