Code 1
n = input("Enter numbers:")
a = list(map(int, n.split()))
print(a[0])
代码 2
n = [input("Enter numbers:").split()]
print(ans[0])
问题 1:在代码 1 中,我必须将字符串转换为 int,而在代码 2 中,它已经在 int 中。
问题2:打印代码不起作用。为什么我不能从列表中打印元素?
在这两段代码中,您都使用input()
函数。此函数始终从用户返回string
。即使他们在出现提示时输入数字(整数),也会返回这些数字的string
。
我现在将尝试解释每段代码对该string
的作用:
代码 1
n = input("Enter numbers:")
a = list(map(int, n.split()))
print(a[0])
在这里,我们将string
分配给一个变量n
。然后,我们拿n
打电话给n.split()
.这样做是通过在空格上拆分输入的string
来获取string
并将其转换为list
。因此,如果输入string
是:
"1 2 3 4"
list
是:
['1', '2', '3', '4']
然后,我们使用map
将int()
function
应用于list
中的每个element
。接下来,我们将map object
传递到list()
function
中,将其转换为list
。我们现在正在使用分配给variable
a
的integers
list
。
最后,我们print
了第一个element
a[0]
.因此,例如,如果用户输入了string
:'1 2 3 4'
,它将print
出1
。
代码 2
n = [input("Enter numbers:").split()]
print(ans[0])
在这里,我们获取输入的string
并立即像以前一样split
它。这意味着我们现在正在使用通过拆分每个空间的string
来获得list
strings
。
然而,由于它本身在方括号([]
),list
嵌入在另一个list
中。所以在格式中(我不确定这是否是你打算让代码工作的方式):
[['1', '2', '3', 4']]
然后,你printing
a[0]
.由于a
是数字的嵌入式list
作为strings
,取第一个element
只会给你数字list
,而不是数字list
的前element
。所以我们的输入示例:'1 2 3 4'
,在这种情况下print
:
['1', '2', '3', 4']
请注意,在这一段代码中,我们也没有将数字strings
转换为integers
,因此它们在末尾保持strings
。