所以我只是想知道我得到错误的原因和原因,以便更好地了解python。
这是我尝试过的。
代码段1
x,y=int(input()),int(input())
print(x,y)
print(type(x))
print(type(y))
所以我得到了输出-
4
6
4 6
<class 'int'>
<class 'int'>
我对输出没问题,但令我感到困扰的是为什么我无法以-
的方式使用它代码段2
x,y= int(input().split('-'))
print(x,y)
print(type(x))
print(type(y))
因此,在这里,将 input()。split()包裹在int()内时,它将引发错误:
TypeError:int()参数必须是字符串,类似字节的对象或 数字,而不是“列表”
我的怀疑
我只是想知道为什么我不能将int()包装在input()。split()中?有替代方法吗?或者,如果不允许,请说明原因。
答案 0 :(得分:2)
str.split()返回str中的单词的列表
您不能将list
变成int
您可以尝试这种方式:
(x, y) = (int(x) for x in input().split('-'))
print(x, y)
print(type(x))
print(type(y))
答案 1 :(得分:1)
好的,如果您想在一行中接受多个输入并将其转换为所需的数据类型,则可以使用map()来实现。
代码段#3
x,y,z=map(int,input().strip().split())
print(x,y,z)
print(type(x))
print(type(y))
print(type(z))
所以您的输出将如下所示-
2 3 4
2 3 4
<class 'int'>
<class 'int'>
<class 'int'>
正如@dyukha正确指出的那样,您不能将input()。split()包裹在int()内的原因是因为split()返回一个列表,并且我们无法将列表转换为int数据类型。