python的参数

positional arguments

def say(name, message): #name和message都是positional arguments
    print(name, 'said:', message)
>> say('Smith', 'Good morning')
>> Smith said: Good morning

可变参数

参数为tuple.

  • 编译器自动将输入参数转为tuple
  • 但如果传递tuple的话,编译器会在外面再加一层tuple,比如(1,2,3)会变成((1,2,3),), 如果有这样的tuple,需传*tuple
def sum(*numbers):
    result = 0
    for num in numbers:
        result += num

    return result

print(sum(1, 2, 3, 4, 89))

>> 99

当传递list时,需要用解开为单个元素

>> myList = [1, 2, 3, 4, 89]
>> print(sum(*myList))

keyword argument

通过关键字传递参数,参数为dictionary

def say(name, message, **kw):#传递0个或多个keyword argument
    print(name, ' said: ', message, ', and ', kw)

say('Smith', 'Good morning', city='Shenzhen', weekday='Tuesday')
>>  Smith  said:  Good morning , and  {'weekday': 'Tuesday', 'city': 'Shenzhen'}

通过dictionary传递

>>> dic = {'gendar':'male', 'age':29}
>>> say('Bush', 'Hello', **dic)
>>> Bush  said:  Hello , and  {'gendar': 'male', 'age': 29}

命名关键字参数

跟位置参数差不多,只是参数有了名字。

#name,message为位置参数,*后面是关键字参数,*是分割符,age和city都是keyword
def say(name, message, *, age, city):
    print(name, ' said: ', message, ', and: ', age, city)

say('Smith', 'Good morning', city='Shenzhen', age=56)

>> Smith said: Good morning , and: 56 Shenzhen

命令行参数

#打印所有命令行参数
for i in range(len(sys.argv)):
    print(sys.argv[i])

打印

$ python3 test.py hello world earth
test.py
hello
world
earth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值