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

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

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

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]刪除
最新教學 更多>
  • 為什麼使用 + 對字串文字進行字串連接失敗?
    為什麼使用 + 對字串文字進行字串連接失敗?
    連接字串文字與字串在 C 中,運算子可用於連接字串和字串文字。但是,此功能存在限制,可能會導致混亂。 在問題中,作者嘗試連接字串文字「Hello」、「,world」和「!」以兩種不同的方式。第一個例子:const string hello = "Hello"; const str...
    程式設計 發佈於2024-11-05
  • React 重新渲染:最佳效能的最佳實踐
    React 重新渲染:最佳效能的最佳實踐
    React高效率的渲染機制是其受歡迎的關鍵原因之一。然而,隨著應用程式複雜性的增加,管理元件重新渲染對於最佳化效能變得至關重要。讓我們探索優化 React 渲染行為並避免不必要的重新渲染的最佳實踐。 1. 使用 React.memo() 作為函數式元件 React.memo() 是...
    程式設計 發佈於2024-11-05
  • 如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?
    如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?
    Creating a Conditional Column: If-Elif-Else in Pandas給定的問題要求將新列新增至DataFrame 中基於一系列條件標準。挑戰在於在實現這些條件的同時保持程式碼效率和可讀性。 使用函數應用程式的解決方案一種方法涉及創建一個將每一行映射到所需結果的函...
    程式設計 發佈於2024-11-05
  • 介紹邱!
    介紹邱!
    我很高興地宣布發布 Qiu – 一個嚴肅的 SQL 查詢運行器,旨在讓原始 SQL 再次變得有趣。老實說,ORM 有其用武之地,但當您只想編寫簡單的 SQL 時,它們可能會有點不知所措。我一直很喜歡寫原始 SQL 查詢,但我意識到我需要練習——大量的練習。這就是Qiu發揮作用的地方。 有了 Qiu...
    程式設計 發佈於2024-11-05
  • 為什麼 CSS 中的 Margin-Top 百分比是根據容器寬度計算的?
    為什麼 CSS 中的 Margin-Top 百分比是根據容器寬度計算的?
    CSS 中的 margin-top 百分比計算CSS 中的 margin-top 百分比計算當對元素應用 margin-top 百分比時,必須了解計算方式執行。與普遍的看法相反,邊距頂部百分比是根據包含塊的寬度而不是其高度來確定的。 W3C 規範解釋:W3C 規範解釋:根據W3C 規範,“百分比是根...
    程式設計 發佈於2024-11-05
  • 如何解決 CSS 轉換期間 Webkit 文字渲染不一致的問題?
    如何解決 CSS 轉換期間 Webkit 文字渲染不一致的問題?
    解決CSS 轉換期間的Webkit 文本渲染不一致在CSS 轉換期間,特別是縮放元素時,Webkit 中可能會出現文本渲染不一致的情況瀏覽器。這個問題源自於瀏覽器嘗試優化渲染效能。 一種解決方案是透過添加以下屬性來強制對過渡元素的父元素進行硬體加速:-webkit-transform: transl...
    程式設計 發佈於2024-11-05
  • 使用 Reactables 簡化 RxJS
    使用 Reactables 簡化 RxJS
    介紹 RxJS 是一個功能強大的庫,但眾所周知,它的學習曲線很陡峭。 這個函式庫龐大的 API 介面,再加上向反應式程式設計的典範轉移,可能會讓新手不知所措。 我創建了 Reactables API 來簡化 RxJS 的使用並簡化開發人員對反應式程式設計的介紹。 ...
    程式設計 發佈於2024-11-05
  • 如何在 Pandas 中找到多列的最大值?
    如何在 Pandas 中找到多列的最大值?
    找出 Pandas 中多列的最大值要確定 pandas DataFrame 中多列的最大值,可以採用多種方法。以下是實現此目的的方法:對指定列使用max() 函數此方法涉及明確選擇所需的列並應用max() 函數: df[["A", "B"]] df[[&quo...
    程式設計 發佈於2024-11-05
  • CI/CD 入門:自動化第一個管道的初學者指南(使用 Jenkins)
    CI/CD 入門:自動化第一個管道的初學者指南(使用 Jenkins)
    目錄 介紹 什麼是 CI/CD? 持續整合(CI) 持續交付(CD) 持續部署 CI/CD 的好處 更快的上市時間 提高程式碼品質 高效率協作 提高自動化程度和一致性 如何建立您的第一個 CI/CD 管道 第 1 步:設定版本控制 (GitHub) 步驟 2: 選擇 CI/CD ...
    程式設計 發佈於2024-11-05
  • TypeScript 如何讓 JavaScript 在大型專案中更加可靠。
    TypeScript 如何讓 JavaScript 在大型專案中更加可靠。
    介绍 JavaScript 广泛应用于 Web 开发,现在也被应用于不同行业的大型项目中。然而,随着这些项目的增长,管理 JavaScript 代码变得更加困难。数据类型不匹配、运行时意外错误以及代码不清晰等问题可能会导致查找和修复错误变得困难。 这就是TypeScript介入的地...
    程式設計 發佈於2024-11-05
  • 如何使用PHP的password_verify函數安全地驗證使用者密碼?
    如何使用PHP的password_verify函數安全地驗證使用者密碼?
    使用 PHP 解密加密密碼許多應用程式使用密碼雜湊等加密演算法安全地儲存使用者密碼。然而,在驗證登入嘗試時,將輸入密碼與加密的儲存版本進行比較非常重要。 加密問題password_hash 使用 Bcrypt,一元加密演算法方式雜湊演算法,表示加密的密碼無法逆轉或解密。這是一項安全功能,可確保即使資...
    程式設計 發佈於2024-11-05
  • 學習 Vue 部分 建立天氣應用程式
    學習 Vue 部分 建立天氣應用程式
    深入研究 Vue.js 就像在 DIY 工具包中發現了一個新的最喜歡的工具——直觀、靈活,而且功能強大得驚人。我接觸 Vue 的第一個副業專案是一個天氣應用程序,它教會了我很多關於框架功能以及一般 Web 開發的知識。這是我到目前為止所學到的。 1. Vue 入門:簡單與強大 Vu...
    程式設計 發佈於2024-11-05
  • NFT 預覽卡組件
    NFT 預覽卡組件
    ?剛剛完成了我的最新專案:使用 HTML 和 CSS 的「NFT 預覽卡元件」! ?查看並探索 GitHub 上的程式碼。歡迎反饋! ? GitHub:[https://github.com/khanimran17/NFT-preview-card-component] ?現場示範:[https:...
    程式設計 發佈於2024-11-05
  • Android 應用程式如何連接到 Microsoft SQL Server 2008?
    Android 應用程式如何連接到 Microsoft SQL Server 2008?
    將Android 應用程式連接到Microsoft SQL Server 2008Android 應用程式可以無縫連接到中央資料庫伺服器,包括Microsoft SQL Server 2008。這種連接允許開發人員從其行動應用程式存取和管理儲存在遠端伺服器上的資料。 連接方法雖然提供的範例程式碼專注...
    程式設計 發佈於2024-11-05
  • 以下是一些基於問題的標題選項,重點關注核心問題:

* C++ std::可選:為什麼沒有對引用類型進行專門化? (直接、切題)
* C++ std::option 中的參考類型
    以下是一些基於問題的標題選項,重點關注核心問題: * C++ std::可選:為什麼沒有對引用類型進行專門化? (直接、切題) * C++ std::option 中的參考類型
    C 中的可選:為什麼沒有專門化引用類型? 儘管在像 Boost 這樣的庫中存在對引用類型的專門化,C標準庫的 std::Optional 不提供這樣的功能。這項決定引發了對其理由和潛在替代機制的詢問。 遺漏背後的理由在討論 n3406(可選提案)期間,有人提出了擔憂關於包含可選參考文獻。認識到這些反...
    程式設計 發佈於2024-11-05

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

Copyright© 2022 湘ICP备2022001581号-3