今天,我将讲述一个关于我的复制粘贴错误的故事,以及如何在我的 python 程序中将带有逗号的字符串耦合并成为 tuple()。奇怪的是,在犯这个错误之前我并不是没有意识到这个概念。
那么,让我们开始快速学习 python 中的字符串和元组。
细绳
定义: 用于存储和操作文本的字符序列。
语法: 用单引号 ‘ ‘、双引号 ” ” 或三引号 ”’ ”’/””” “”” 括起来。
不可变性: 字符串创建后无法更改。
# example mystring = "hello, world!" print(type(mystring)) #output: <class> mystring2 =str() print(type(mystring2)) #output: <class></class></class>
元组
定义: 不可变的值序列。
语法: 用括号( )定义,用逗号分隔。
不变性:一旦创建,元素就无法更改。
# example mytuple = (1,2) print(type(mytuple)) #output:<class> mytuple2 =tuple() print(type(mytuple2)) #output:<class></class></class>
现在,我们了解了字符串和元组,以及如何使用直接赋值或使用构造函数使用类方法来获取字符串或元组类型的变量。但是,我的故事不同:)。
python 语句不需要分号(;)或逗号(,)或任何其他结束符号(空格用于处理块),所以如何以像“ajit kumar”这样的字符串结尾逗号,因为通常您从字典列表中复制字符串元素,并且通常以尾随逗号结尾。这就是发生在我身上的事情,然后故事就变得有趣了。
带有尾随逗号的字符串
所以,首先让我们举一个我的故事的例子。
mymistake = "ajit kumar", print(type(mymistake)) #output : <class></class>
现在,有两件事需要观察:
1) python解释器不会因为字符串’mymistake’后面的逗号而抛出任何错误,否则错误不会进一步发生。
2)变量类型变成了“元组”,而不是创建字符串变量的初衷我的错误。
我在这里写的,看起来非常简单,但是花了几个小时来调试这个错误,因为我将字符串作为参数传递给方法,并且错误很奇怪,我继续研究方法并尝试理解错误消息。例如,消息类似于“name”变量没有 lower() 方法。
问题
如果使用不带括号的逗号,python 会将其视为元组。
示例:mymistake = “ajit kumar”,创建一个元组 (“ajit kumar”,)。
所以,如果你想创建一个只有项目/元素的元组,你需要非常小心。下面的示例证明,在第一个示例中,即使一个项目位于一对括号 (1) 内,python 也会将其视为整数而不是元组。
singleitem = (1) print(type(singleitem)) #output: <class></class>
因此,要创建包含单个项目的元组,您必须使用尾随逗号,如下所示:
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output: <class></class>
而且,我认为,这就是为什么当字符串末尾有逗号时,python 将其视为元组并将变量创建为元组而不是字符串的原因。
但是,python 文档已经清楚地提到了这一点,这是我的错误或疏忽,我没有注意到它,并且一直使用 () 来创建元组,即使对于带有训练逗号的单个项目也是如此。来源
无论如何,这给了我一些新的学习和一个快捷方式来创建一个包含单个项目的元组,或者不使用 () 的多个项目。是的,我继续尝试使用“尾随逗号”和更多项目来创建元组,并且它有效。示例:
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output: <class></class>
周末学到了很多东西。我希望,这对你有帮助。将您的讨论和建议写在评论中。我喜欢听到有关 python 快捷方式和开箱即用功能的信息。
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 字符串和尾随逗号,耦合并成为,Tuple ():将错误复制并粘贴到错误和概念