基礎
輸入類型強制轉化
輸入為字符串形式,若要進行輸入類型轉換或輸出提示信息,可如此形式:int(input("輸入一個整數:"))
輸出形勢
print('a'+'b')? ? 結果:ab
print('a','b')? ? 結果:a b
print('%s%s'%('a','b'))? ? 結果:ab
print()函數去掉自動添加的換行:print('a',ending='')
在函數中強制修改全局變量
例如:
global A=100
循環中的else
Python中while和for常見到配有else。
假若循環中存在break,當執行break跳出循環時,不執行else塊的代碼;
若正常地結束循環,則要執行else塊的代碼。
編碼
默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字符串都是 unicode 字符串。?
指定編碼方法:
# -*- coding: gbk -*-
#coding=gbk
指定解釋器
#!/usr/bin/python3
表示 python3 解釋器所處的絕對路徑就是 /usr/bin/python3, 路徑被寫死了, 類似于編程中的"硬編碼"。
#!/usr/bin/env/ python3
表示從 "PATH 環境變量"中查找 python3 解釋器的位置, 路徑沒有被寫死, 而是在"環境變量"中尋找 python3 解釋器的安裝路徑, 再調用該路徑下的解釋器來執行腳本。
備注:
當命令行的解釋器指定和py文件內的解釋器指定沖突時,命令行優先;
以上的路徑是基于Linux/Unix的。
if?__name__?==?"__main__":
當.py文件被直接運行時,if?__name__?==?"__main__":之下的代碼塊將被運行;
當.py文件以模塊形式被導入時,if?__name__?==?"__main__":之下的代碼塊不被運行。
短路計算
匿名函數(lambda)
可以使用lambda簡單快速地定義一個函數,其格式為:
[函數名] = lambda [傳入參數] : [函數返回值]
例如:
add = lambda x,y : x+y
與
def add(x,y):
? ? return x+y
一致
@函數裝飾器
當程序使用“@函數”(比如函數 A)裝飾另一個函數(比如函數 B)時,實際上完成如下兩步:
- 將被修飾的函數(函數 B)作為參數傳給 @ 符號引用的函數(函數 A)。
- 將函數 B 替換(裝飾)成第 1 步的返回值。
def funA(fn):
print('A')
fn() # 執行傳入的fn參數
return 'fkit'
@funA
def funB():
print('B')
print(funB) # fkit
?
上面程序使用 @funA 修飾 funB,這意味著程序要完成兩步操作:
- 將 funB 作為 funA() 的參數,也就是上面代碼中 @funA 相當于執行 funA(funB)。
- 將 funB 替換成上一步執行的結果,funA() 執行完成后返回 fkit,因此 funB 就不再是函數,而是被替換成一個字符串。
運行上面程序,可以看到如下輸出結果:
A
B
Fkit
附錄
pip常用命令
獲取幫助:pip --help
升級 pip:pip install -U pip
安裝包:pip install SomePackage
卸載包 :pip uninstall SomePackage
升級指定的包:pip install -U SomePackage
搜索包:pip search SomePackage
查看指定包的詳細信息:pip show -f SomePackage
列出已安裝的包:pip freeze or pip list
查看可升級的包:pip list -o
pip自升級:python -m pip install --upgrade pip
round()函數四舍六入五成雙
Python2:
round()函數進行四舍五入
Python3:
①當被修約的值為5時,如果它前面的數為偶數且被修約數的后面沒有數時則舍棄;
②當被修約的值為5時,如果它前面的數為奇數時則進位;
③當被修約的值為5時,如果它前面的數為偶數時且被修約數的后面還有數時,則進位。
例如:
對22.5取值是舍
對23.5取值是進
對22.51取值是進
sys.argv[]
sys.argv[]可以從程序外部獲取參數,由于從外部取得的參數可以是多個,所以獲得的是一個 列表 (list),也就是說sys.argv其實可以看作是一個列表,所以才能用[]提取其中的元素。其第一個元素是程序本身,隨后才依次是外部給予的參數。
向程序傳入參數的方式就是通過命令行:python [文件名].py [參數1] [參數2] ……
其中sys.argv[0]是指程序本身(包含路徑+文件名),從sys.argv[1]開始才是傳入的參數。
程序中使用該方法需要導入sys包(import sys)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
