今天,我将讲述一个关于我的复制和粘贴错误的故事,以及如何在我的 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