为什么Python函数不打印默认值?

Pea*_*key 2 python python-2.7

我是Python新手,我正在尝试打印参数的默认值集.我的代码如下;

# Functions

def shoppingcart(item='computer', *price):
    print item
    for i in price:
        print i

shoppingcart(100,200,300)
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到的只是值100,200,300.我在期待computer,100,200,300.我究竟做错了什么?

编辑

我如何在Python 2.7中实现这一目标?

编辑

我将我的代码更新为

def shoppingcart(item='computer', *price):
    print item
    for i in price:
        print i

shoppingcart(item='laptop', 100,200,300)
Run Code Online (Sandbox Code Playgroud)

但得到错误

在此输入图像描述

Joc*_*zel 6

简单地说,只有在没有其他方法时才使用默认值.在这里你有item=100和其他两个值进入*price.

在Python3中,您可以编写:

def shoppingcart(*prices, item='computer'): 
    print(item)
    print(prices)

shoppingcart(100,200,300)
shoppingcart(100,200,300, item='moon')
Run Code Online (Sandbox Code Playgroud)

在Python2中,您不能拥有默认参数,*args因此您必须找到另一种方法来调用您的函数.