如何解决AttributeError:“元组”对象没有“拆分”属性
我是 Python 新手,我对初学者问题有点困难
Write a Python program which accepts a sequence of comma-separated numbers from user and generate a list and a tuple with those numbers
这是我写的代码
sea = 9,8,8
list = sea.split(",")
tuple = tuple(list)
print ("List: ",list)
print ("Tuple: ",tuple)
AttributeError: 'tuple' object has no attribute 'split'
就是这样呵呵,感谢您花时间阅读本文,请帮我纠正:0
解决方法
现在,sea
变量包含一个 (9,8,8)
元组。
要接受来自用户的输入,请使用 input()
函数。 input()
函数返回一个字符串。所以你可以使用 str.split(',')
来分割它。
此外,不要将 list
或 tuple
用作变量名,否则会遮蔽内置函数。
完整代码:
input_from_user = input()
l = [int(n) for n in input_from_user.split(",")]
t = tuple(l)
print("List: ",l)
print("Tuple: ",t)
输出(例如):
1,2,3,4
List: [1,4]
Tuple: (1,4)
,
您应该用 sea
包装 "
变量的内容。
您的错误发生是因为 9,8
默认不是字符串。正如错误所说,它是元组。通过像这样包装它 "9,8"
它将变成字符串并且您的代码将起作用。
当您输入 sea = 9,8
时,它会变成 sea = (9,8)
。这是一个元组。
试试这个代码
SEA = "9,8"
LIST = [int(x) for x in SEA.split(",")]
TUPLE = tuple(LIST) #Directly Convert List as a Tuple
print("List",LIST)
print("Tuple",TUPLE)
注意:不要使用保留字作为变量
,Python 将逗号分隔的对象解释为元组。如果要打印 sea
的类型,则会得到 tuple
。
.split()
函数用于 str objects。它不适用于元组。
此外,根据您收到的提示,您应该使用 sea =
input()
而不是定义数字。这将允许运行程序的人选择数字。
此外,尽量不要使用诸如 list
或 tuple
之类的变量名称或可以覆盖内置函数的名称。这可能会导致您的代码出现一些不必要的错误。
如下重写您的代码。
sea =1,4
list1 =list(sea)
tuple1 =sea
print ("List: ",list1)
print ("Tuple: ",tuple1)
不要使用关键字作为变量名,它可能会混淆解释器 它默认将值存储在元组中
,让我给你解释一下, 您接受输入的方式
海 = 9,8
sea 变量中的值变成了 tuple。
稍后当您应用此功能时,
list = sea.split(",")
会报错,因为tuple没有split函数,string有这个内置函数 >
如果你想要用户输入,你可以通过这种方式接受输入:
sea = input()
或者,如果您想要硬编码值,您可以在它们周围使用双引号或单引号使它们成为字符串:
sea = "9,8"
所以你的代码应该是这样的:
sea = input()
l_list = sea.split(",")
t_tuple = tuple(l_list)
print ("List: ",l_list)
print ("Tuple: ",t_tuple)
也不要使用保留词和内置函数名作为变量,否则它们会覆盖内置函数和关键字。
,您将不得不接受字符串输入。
sea = input('Enter: ')
list = sea.split(",")
tuple = tuple(list)
print ("List: ",list)
print ("Tuple: ",tuple)
这行不通
sea = 9,8
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。