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