Python 是區分大小寫的還是不區分大小寫的?
在本文中,我們將學習 Python 是區分大小寫還是不區分大小寫。
什麼是大小寫敏感?
如果一種程式語言區分大小寫字元,則稱其為區分大小寫。
您是否曾經嘗試在登入網站時在密碼中混合使用大小寫字母?例如,使用 TutorialsPOINT 而不是 tutorialspoint。您可能已經注意到,大小寫字母不被視為相同,並且更改大小寫會阻止您登入。
這是一個區分大小寫示例。區分大小寫的程式語言會將大寫和小寫字母視為不同。因此,我們必須使用語法的精確大小寫,因為更改大小寫(例如,從print到Print)會導致錯誤。
Python 是區分大小寫語言嗎?
是的,Python 是一種區分大小寫的程式語言。這意味著它將大寫和小寫字母視為不同。因此,在 Python 中,我們不能互換使用具有相同字元但大小寫不同的兩個術語。
程式碼 1 - 錯誤的大小寫
以下程式丟擲NameError,因為 print 語句無效(P 為大寫) -
示例
length = 5 breadth= 2 area_rectangle = length*breadth Print("Area of Rectangle = ", area_rectangle)
輸出
執行後,上述程式將生成以下輸出 -
Traceback (most recent call last): File "main.py", line 5, inPrint("Area of Rectangle = ", area_rectangle) NameError: name 'Print' is not defined
程式碼 2 - 正確的大小寫
示例
以下程式返回矩形面積並在沒有任何錯誤的情況下執行 -
length = 5 breadth= 2 area_rectangle = length*breadth print("Area of Rectangle = ", area_rectangle)
輸出
執行後,上述程式將生成以下輸出 -
Area of Rectangle = 10
您是否注意到 print 中的大小寫差異導致了兩個不同的輸出?根據 Python 語法,關鍵字 print 應始終使用小寫。因此,當我們在程式碼 1 中更改其大小寫時,Python 無法識別它,從而導致 NameError。當我們在程式碼 2 中修復大小寫時,我們得到了預期的結果。
為什麼 Python 區分大小寫?
Python 被稱為區分大小寫語言,因為它在執行期間區分大小寫字元。即使字元相同,Python 也將兩個術語視為不同,如果它們的大小寫發生變化。如果我們嘗試使用不同的大小寫檢索值,則會收到錯誤。
Python 以這種方式構建的基本原因是它適用於各個領域。我們不希望限制可使用的識別符號和符號的數量,因此允許區分大小寫。實際上,大多數高階程式語言(如 Java、C、C++ 和 JavaScript)都區分大小寫。
Python 中的變數命名約定:何時使用大寫或小寫?
在編寫 Python 程式碼時,我們需要遵循特定的變數名稱約定。這些是可選的,但它們使我們的程式碼更清晰易讀。
為了提高可讀性,變數和函式名稱應使用小寫,並用下劃線分隔術語。例如,input_number = 10.
包和模組也應使用小寫。例如,import math。
類名中每個單詞的首字母應大寫。它們不應以下劃線分隔。例如,ExampleClass。
常量應全部大寫,並使用下劃線分隔單詞。例如,PI = 3.1416.
注意
以上命名約定強烈建議用於良好的編碼實踐,請注意,不完全遵循它們不會導致任何錯誤。
在 Python 中,如何忽略大小寫?
在大多數情況下,用於登入網站的使用者名稱不區分大小寫。如果我的使用者名稱是tutorials−point。即使我輸入Tutorials−Point或TUTORIALS−POINT,我也應該能夠登入。我們如何強制 Python 在檢查相等性時忽略大小寫?要更改字串的大小寫,我們可以使用 Python 的.upper()和.lower()函式。
upper() - 此函式將指定字串中的所有字元轉換為大寫。
lower() - 此函式將指定字串中的所有字元轉換為小寫。
假設我們需要建立一個登入頁面,其中密碼區分大小寫,但使用者名稱不區分大小寫。我們將獲取兩個使用者輸入,將使用者名稱轉換為大寫(或小寫),並將其與所需的使用者名稱進行比較,該使用者名稱也轉換為大寫(或小寫)。我們不需要將密碼轉換為大寫或小寫,因為它區分大小寫。
Python 將僅檢查字串是否按字元匹配使用者名稱,忽略輸入和預期字串的大小寫。另一方面,密碼檢查將包含字元和大小寫匹配。讓我們將其轉換為程式碼 -
示例
以下程式顯示了區分大小寫和不區分大小寫之間的區別 -
input_username = "Tutorials-Point" gvn_username = "tutorials-point" input_password = "sampleP@SSword" gvn_password = "sampleP@SSword" # here we are converting the input_username into lowercase print("Case 1: Case Ignored(case-insensitive)") if (input_username.lower() == gvn_username.lower() and input_password == gvn_password): print("You are logged in Successfully!!") else: print("Incorrect Username or Password") print() # here we are directly checking whether the input_username and password # are equal to the gvn_username and gvn_password print("Case 2: Case Not Ignored(case-sensitive)") if (input_username == gvn_username and input_password == gvn_password): print("You are logged in Successfully!!") else: print("Incorrect Username or Password")
輸出
執行後,上述程式將生成以下輸出 −
Case 1: Case Ignored(case-insensitive) You are logged in Successfully!! Case 2: Case Not Ignored(case-sensitive) Incorrect Username or Password
案例 1中透過使用.lower()函式忽略了使用者名稱的案例。因此,即使使用者輸入的使用者名稱的大小寫與記錄中的不同,登入也成功。我們在案例 2中不使用 .lower() 或 .upper() 方法。因此,大小寫不被忽略,並且相等性檢查考慮了兩個使用者名稱的案例。登入失敗,因為兩個使用者名稱的案例都不同。
注意
在前面的示例中,我們透過假設只有一個有效的使用者名稱和密碼組合來簡化登入問題。我們沒有使用.lower()或.upper()來忽略密碼的大小寫,因為密碼始終區分大小寫。
結論
我們希望您不再對 Python 大小寫敏感性的最重要方面感到困惑。您現在熟悉了一些良好的 Python 區分大小寫命名實踐。您現在瞭解瞭如何在執行不區分大小寫的字串比較時忽略 Python 中的大小寫。