.Persona. 发表于 2020-12-20 16:00:04

关于列表append语法与input搭配时出现的问题

大佬们好,我是一个Python的初学者,才刚接触Python三天,以后也许还会经常来提问,请多多指教(Python版本号3.9.1 自带的idle和pycharm都有在使用)
我遇到的问题是这样的,不清楚是否是语法出现了问题,也不知道该如何解决,还是说,这样做是不被允许的,请各位大佬帮忙看一看

不知道为什么发不了图orz(

我是这样编写的:
names = []
print(names.append(input("请输入名称:")))
print(names)

得到的输出结果是:
请输入名称:ABC(此处是我输入的)
None
['ABC']

从这里我可以看出,他确实把ABC加入到列表去了,但是实在不明白第二行的"None"是哪里来的

为了方便多次输入名称,我还曾经设想过如下方法:
names = []
for i in range(5):
    print(names.append(input("请输入名称:")))
    print("当前名称列表为:", names)
    i += 1
print("填写完毕。")

这样得到的输出结果是每次输入名称后,下面都会跟着出现一个"None"的输出,就很莫名其妙,虽然随着程序的进行,到最后还是会在列表中写入用户输入的5个元素,但是这个"None"一直挥之不去,挺头疼的

所以来请教一下大佬们我的问题出在哪里呢?

   

hrp 发表于 2020-12-20 16:08:43

问题出在
print(names.append(input("请输入名称:")))
这句,列表append方法对原列表操作并返回None,你相当于print(None)了

names = []
names.append(input("请输入名称:"))
print(names)

昨非 发表于 2020-12-20 16:11:13

问题在于这一句print(names.append(input("请输入名称:")))
你调用了列表的append方法,将input函数的返回值(字符串)添加到names列表里
然后将append的返回值打印出来
但是,append方法并没有返回值
所以返回了一个空(也就是none)
最后的打印结果就是空了

.Persona. 发表于 2020-12-20 16:13:12

hrp 发表于 2020-12-20 16:08
问题出在

这句,列表append方法对原列表操作并返回None,你相当于print(None)了

好的明白了,谢谢大佬!

.Persona. 发表于 2020-12-20 16:13:48

昨非 发表于 2020-12-20 16:11
问题在于这一句
你调用了列表的append方法,将input函数的返回值(字符串)添加到names列表里
然后将appe ...

感谢大佬,我搞明白了辽!
页: [1]
查看完整版本: 关于列表append语法与input搭配时出现的问题