首頁>技術>

本文連結:https://blog.csdn.net/weixin_41603028/article/details/111499076

知識點1:Python 合法的識別符號

參考連結:哪個不是python合法識別符號

具體基礎知識點如下:組合=字母+數字+下劃線

第一個字元不能以數字開頭。從第二個字元開始可以是字母,數字和下劃線。大小寫敏感。Python的保留關鍵字不能作為識別符號。

具體關鍵字如下:

不建議使用python的內建名字集合當作識別符號。

Python提供了keyword模組來查詢關鍵字集合和判斷一個字串是否是python的關鍵字:

Python的合法識別符號

下面這段程式碼可以讓使用者輸入一個字串,然後判斷是否是合法的python識別符號,如果不是繼續輸入,直到輸入正確,程式退出。主要利用知識點中的1,2,4來判斷。以下程式碼為python3,上述參考連結裡面為python2。

import keywordimport stringdef is_valid_py_name(py_name):    py_name = py_name.strip()    if keyword.iskeyword(py_name):#判斷關鍵字        print("'{0}' is a python keyword! It is a invalid letter!".format(py_name))        return False        elif py_name == "":#判斷空        print("empty input!")        return False        elif py_name[0] not in (string.ascii_letters+'_'):#判斷第一個字母是否是以"-"或字母開頭        print("'{0}' not start with _ or letter!".format(py_name))        return False    else:        for i in range(1,len(py_name)):#從第二字元開始,遍歷字母(包括大小寫)和數字            if py_name[i] not in (string.ascii_letters+'_'+string.digits):                print("'{0}' is invalid letter!".format(py_name[i]))                return False        print("'{0}' is valid py name!".format(py_name))        return Trueif __name__ == "__main__":    #is_valid = False    #while not is_valid:    while True:        print("Please enter a string:")        py_name = input()        is_valid = is_valid_py_name(py_name)1234567891011121314151617181920212223242526272829303132

修改程式碼python2 string.letters:包含所有字母(大寫或小寫)的字串Python 3中,string.ascii_letters.

例題:

逐個測試,測試結果如下。

知識點2:字典宣告的辦法總結

字典基本知識:

字典本身是可變資料型別,字典的鍵記住兩點:

唯一:同一個字典中的鍵必須唯一,如果出現多個相同的鍵,則最新的鍵會被記住(也即值會被代替);不可變:鍵是不可變資料型別,使用可以是int,string,float,tuple

Python中的陣列可分為:元組tuple(a,b)不可變資料型別,列表list[a,b]可變資料型別,字典dict{a:b}值可以改變。

例題:

解題過程:

一個物件能被稱為 hashable , 它必須有個 hash 值,這個值在整個生命週期都不會變化,而且必須可以進行相等比較,所以一個物件可雜湊,它必須實現__hash__() 與 eq() 方法。

對於 Python 的內建型別來說,只要是建立之後無法修改的(immutable)型別都是 hashable 如字串,可變動的都是 unhashable的比如:列表、字典、集合,他們在改變值的同時卻沒有改變id,無法由地址定位值的唯一性,因而無法雜湊。我們自定義的類的例項物件預設也是可雜湊的(hashable),而hash值也就是它們的id()。

“is測試”基於id()的值。

"==測試” 基於hash()的值。

例項:初始化字典,26個小寫英文字母,從0到25.

17
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python 摩斯碼生成器