今天,我將講述一個關於我的複製和貼上錯誤的故事,以及如何在我的 Python 程式中將帶有逗號的字串耦合並成為 Tuple() 。奇怪的是,在犯這個錯誤之前我並不是沒有意識到這個概念。
那麼,讓我們開始快速學習 Python 中的字串和元組。
定義: 用於儲存和操作文字的字元序列。
語法: 用單引號 ' '、雙引號 " " 或三引號 ''' '''/""" """ 括起來。
不變性:字串建立後不能更改。
# Example mystring = "Hello, World!" print(type(mystring)) #Output: <class 'str'> mystring2 =str() print(type(mystring2)) #Output: <class 'str'>
定義: 不可變的值序列。
語法: 用括號 ( ) 定義,用逗號分隔。
不變性:一旦創建,元素就無法更改。
# Example mytuple = (1,2) print(type(mytuple)) #Output:<class 'tuple'> mytuple2 =tuple() print(type(mytuple2)) #Output:<class 'tuple'>
現在,我們了解了字串和元組,以及如何使用直接賦值或使用建構子使用類別方法來取得字串或元組類型的變數。但是,我的故事不同:)。
Python 語句不需要分號(;) 或逗號(,) 或任何其他結束符號(空格用於處理區塊),因此如何以像“Ajit Kumar”這樣的字串結尾逗號,因為通常您從字典清單中複製字串元素,並且經常以尾隨逗號結尾。這就是發生在我身上的事情,然後故事變得有趣了。
所以,首先讓我們舉一個我的故事的例子。
mymistake = "Ajit Kumar", print(type(mymistake)) #Output : <class 'tuple'>
現在,有兩件事要注意:
1) Python解釋器不會因為字串'mymistake'後面的逗號而拋出任何錯誤,否則錯誤不會進一步發生。
2)變數類型變成了“元組”,而不是創建字串變數的初衷我的錯誤。
我在這裡寫的,看起來非常簡單,但是花了幾個小時來調試這個錯誤,因為我將字串作為參數傳遞給方法,並且錯誤很奇怪,我繼續研究方法並試圖理解錯誤訊息。例如,訊息類似於「name」變數沒有 lower() 方法。
如果使用不帶括號的逗號,Python 會將其視為元組。
範例:mymistake = "Ajit Kumar",建立一個元組 ("Ajit Kumar",)。
所以,如果你想建立一個只有項目/元素的元組,你需要非常小心。下面的範例證明,在第一個範例中,即使一個項目位於一對括號 (1) 內,Python 也會將其視為整數而不是元組。
singleitem = (1) print(type(singleitem)) #Output: <class 'int'>
因此,要建立包含單一項目的元組,您必須使用尾隨逗號,如下所示:
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output: <class 'tuple'>
而且,我認為,這就是為什麼當字串末尾有逗號時,Python 將其視為元組並將變數創建為元組而不是字串的原因。
但是,Python 文件已經清楚地提到了這一點,這是我的錯誤或疏忽,我沒有註意到它,並且一直使用() 來創建元組,即使對於帶有訓練逗號的單一項目也是如此。來源
無論如何,這給了我一些新的學習和一個快捷方式來創建一個包含單一項目的元組,或者不使用 () 的多個項目。是的,我繼續嘗試使用帶有更多項目的“尾隨逗號”來創建元組,並且它有效。例:
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output: <class 'tuple'>
週末學到了很多。我希望,這對你有幫助。將您的討論和建議寫在評論中。我喜歡了解 Python 快捷方式和開箱即用的功能。
以上是字串和尾隨逗號,耦合並成為,元組():複製貼上錯誤到錯誤和概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!