#新手提问:为什么我打印下面的代码,在终端里值是None?
def add_shoppingcar (goods_name):
uname='admin'
pword='123456'
goods=[ ]
username=input('请输入用户名:')
password=input('请输入密码:')
if username == uname and password == pword:
goods=goods.append(goods_name)
print(goods)
else:
print('用户名或密码错误,请重新输入')
add_shoppingcar('电脑')
列表的append()方法返回值为None,所以把这个返回值赋给变量goods,那goods的值当然就为None;
博主的本意是想打印出goods这个列表添加新元素之后的列表,所以要把goods = goods.append(goods_name)这行代码改为goods.append(goods_name),这样就可以了。不用再额外赋给变量,因为列表长度本身就是可变的,增加或者删除元素都是改变原有列表,不会生成新列表,也就不存在重新赋给变量这个说法,只需要在修改动作完成之后,继续打印输出原有列表名称就可以。
goods.append(goods_name)
def add_shoppingcar(goods_name):
uname='admin'
pword='123456'
goods=[]
username=input('请输入用户名:')
password=input('请输入密码:')
if username==uname and password==pword:
goods.append(goods_name) # list的append方法,返回值是None,一般不会打印返回值
print(goods)
else:
print('用户名或密码错误,请重新输入')
add_shoppingcar('电脑')