python中對%、~含義的解釋
%有哪幾種含義?
查找手冊
翻看《The Python Libary Reference》python庫指南中附錄index部分(P1899):
% (percent):
datetime format, 198, 594, 596
environment variables expansion (Windows), 377, 1798
interpolation in configuration files, 493
operator, 31
printf-style formatting, 51, 65
根據index中用法索引逐項來看:
datetime format
:表示日期格式environment variables expansion
環境變量擴展interpolation in configureation files
插入設置文件operator
:取餘printf-style formatting
:輸出格式化
環境變量擴展:
Expands environment variable placeholders %NAME% in strings like REG_EXPAND_SZ:
ExpandEnvironmentStrings('%windir%')
'C:\\Windows'
插入設置文件
home_dir
: /Usersmy_dir
: %(home_dir)s/lumberjackmy_pictures
: %(my_dir)s/Pictures
實例:
cls_info = ['%s\n(%d %s)'% (estimator_conf['name'], estimator_conf['complexity_computer'](estimator_conf['instance']), estimator_conf['complexity_label']) for estimator_conf in configuration['estimators']]
~含義是什麼?
查手冊:
~ (tilde)
home directory expansion, 377
operator, 32
除瞭表示傢目錄外,表示操作符按位取反(the bits of inverted)
~5=-6
~-11=10
可以理解為取0為第一個正數,取坐標軸對稱點。
解析見下 ↓↓↓↓↓↓↓
按位取反運算符
按位取反運算符~很少用到,今天看《byte of Python》書中舉例,這裡學習一下,再復習一下計算機的基礎知識。
按位取反運算符,用來對一個二進制數按位取反,即將0變1,將1變0,按理說十進制的5(0000 0101)按位取反應該為(1111 1010)十進制250,但是在Python中運算結果並非如此,結果如下:
>>> ~-6
5
計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數值位,三種表示方法各不相同。在計算機系統中,數值一律用補碼來表示和存儲。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
- 正整數的補碼是其二進制表示,與原碼相同 。
- 負整數的補碼,將其對應正數二進制表示所有位取反(包括符號位,0變1,1變0)後加1。
Python按位取反運算:
>>> ~-6
5
運算分析:
-6的補碼是+6(0000 0110)取反後再+1,為(1111 1001)+(0000 0001)=(1111 1010),也就是計算機中-6是用(1111 1010)來存儲的,(1111 1010) 按位取反得到(0000 0101)這就是答案5
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 一文教會你使用Python批量縮放圖片
- Python安裝spark的詳細過程
- python讀寫修改Excel之xlrd&xlwt&xlutils
- 一文秒懂Python中的字符串
- Android 文件存儲系統原理