Python初學者在這裏。試着通過在這裏和那裏閱讀代碼來學習。在一個旨在用python打開Excel文件的程序中遇到這個問題。此函數執行簡單的工作 - 使用ord()將Excel列字母標籤('Z'或'BB'或'CCC')轉換爲int。我理解就好直到我看到的轉換代碼的這個部分:什麼是[0])的的(1 +(ORD(柱目的使用ord()將字母轉換爲整數(非常基本)
if clen == 1:
return ord(column[0]) - 64
elif clen == 2:
return ((1 + (ord(column[0]) - 65)) * 26) + (ord(column[1]) - 64)
- 65)與只使用(ORD( 。列[0]) - 64)再次實施 「1 +」 似乎是多餘的,這是否是有目的的
這是全功能:
def column_index_from_string(column, fast=False):
"""Convert a column letter into a column number (e.g. B -> 2)"""
column = column.upper()
clen = len(column)
if not fast and not all('A' <= char <= 'Z' for char in column):
msg = 'Column string must contain only characters A-Z: got %s' % column
raise ColumnStringIndexException(msg)
if clen == 1:
return ord(column[0]) - 64
elif clen == 2:
return ((1 + (ord(column[0]) - 65)) * 26) + (ord(column[1]) - 64)
elif clen == 3:
return ((1 + (ord(column[0]) - 65)) * 676) + ((1 + (ord(column[1]) - 65)) * 26) + (ord(column[2]) - 64)