」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 字串和尾隨逗號,耦合並成為,元組():複製貼上錯誤到錯誤和概念

字串和尾隨逗號,耦合並成為,元組():複製貼上錯誤到錯誤和概念

發佈於2024-07-30
瀏覽:621

String and Trailing comma, get couple and become, Tuple (): A copy & paste mistake to Error and concept

今天,我將講述一個關於我的複製和貼上錯誤的故事,以及如何在我的 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 快捷方式和開箱即用功能的資訊。

版本聲明 本文轉載於:https://dev.to/ajitkumar/string-and-trailing-comma-get-couple-and-become-tuple-a-copy-paste-mistake-to-error-and-concept-3gfl? 1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 查找當前執行JavaScript的腳本元素方法
    查找當前執行JavaScript的腳本元素方法
    如何引用當前執行腳本的腳本元素在某些方案中理解問題在某些方案中,開發人員可能需要將其他腳本動態加載其他腳本。但是,如果Head Element尚未完全渲染,則使用document.getElementsbytagname('head')[0] .appendChild(v)的常規方...
    程式設計 發佈於2025-07-16
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-07-16
  • CSS強類型語言解析
    CSS強類型語言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    程式設計 發佈於2025-07-16
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-07-16
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-07-16
  • PHP未來:適應與創新
    PHP未來:適應與創新
    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。 引言在編程世界中,PHP一直是網頁開發的中流砥柱。作為一個從1994年就開始發展...
    程式設計 發佈於2025-07-16
  • 如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用時間數據時...
    程式設計 發佈於2025-07-16
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    在使用GO MOD時,在GO MOD 中克服模塊路徑差異時,可能會遇到衝突,其中可能會遇到一個衝突,其中3派對軟件包將另一個帶有導入套件的path package the Imptioned package the Imptioned package the Imported tocted pac...
    程式設計 發佈於2025-07-16
  • 如何使用node-mysql在單個查詢中執行多個SQL語句?
    如何使用node-mysql在單個查詢中執行多個SQL語句?
    Multi-Statement Query Support in Node-MySQLIn Node.js, the question arises when executing multiple SQL statements in a single query using the node-mys...
    程式設計 發佈於2025-07-16
  • Java數組中元素位置查找技巧
    Java數組中元素位置查找技巧
    在Java數組中檢索元素的位置 利用Java的反射API將數組轉換為列表中,允許您使用indexof方法。 (primitives)(鏈接到Mishax的解決方案) 用於排序陣列的數組此方法此方法返回元素的索引,如果發現了元素的索引,或一個負值,指示應放置元素的插入點。
    程式設計 發佈於2025-07-16
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-07-16
  • 為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    使用php dateTime修改月份:發現預期的行為在使用PHP的DateTime類時,添加或減去幾個月可能並不總是會產生預期的結果。正如文檔所警告的那樣,“當心”這些操作的“不像看起來那樣直觀。 考慮文檔中給出的示例:這是內部發生的事情: 現在在3月3日添加另一個月,因為2月在2001年只有2...
    程式設計 發佈於2025-07-16
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,可以更快地搜索這些前綴。 了解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-07-16
  • 如何將多種用戶類型(學生,老師和管理員)重定向到Firebase應用中的各自活動?
    如何將多種用戶類型(學生,老師和管理員)重定向到Firebase應用中的各自活動?
    Red: How to Redirect Multiple User Types to Respective ActivitiesUnderstanding the ProblemIn a Firebase-based voting app with three distinct user type...
    程式設計 發佈於2025-07-16
  • 如何使用Python有效地以相反順序讀取大型文件?
    如何使用Python有效地以相反順序讀取大型文件?
    在python 反向行讀取器生成器 == ord('\ n'): 緩衝區=緩衝區[:-1] 剩餘_size- = buf_size lines = buffer.split('\ n'....
    程式設計 發佈於2025-07-16

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3