<潭州教育>-Python学习笔记6@函数基础,必备参数,位置参数,可选参数

6.1 函数定义:
def BiJiao(a,b):     #驼峰规则(首字母大写),见名知意-函数名大写
    if a>b:
        print(a)
    elif a==b :
        print('xiangdeng')
    else:
        print(b)
运行:       
BiJiao(1,3)
3
6.2函数参数-默认参数、可选参数、必备参数
6.2.1,无参数
def fun1():
    print('没参数’)    #调用fun1()   #调用函数必须在函数名后加括号,表示调用没参数
 
6.2.2 必须传参数
def fun2(a):     #必备参数
    print('必须传参数’)     ##调用:fun2(1)必须传参数
 
 
6.2.3默认参数
def fun3(b=3):  #参数可传可不传,可指定
    print(b,'默认参数')
 调用:>>> fun3()   3 默认参数
 
6.2.4第一种不定常参数函数
def fun4(*arg):   #结果都包装成元祖
    print(arg)
调用:>>> fun4()
()
>>> fun4(1,2,3,4)
(1, 2, 3, 4)
>>> fun4()  # ()参数可以随意传递
>>> fun4(1,2,3,4,5) (1, 2, 3, 4, 5) 参数可以随意传递
>>>
>>> fun4([1,2,3,4,5])
([1, 2, 3, 4, 5],) 参数可以随意传递,字符串、元祖、字典
>>> fun4({1,2,3})
({1, 2, 3},) 参数可以随意传递,无论传递什么,结果都包装成元祖,逗号是因为元祖必须两个以上元素,元组只有一个元素就得加逗号
>>> fun4(*{1:11,2:22})      #参数加一个*号可以把字典列表等解开 
>>>(1, 2)
 
6.2.5第二种不定常参数函数
def fun5(**kwarg): #参数可传可不传, 结果包装成字典
    print(kwarg,'可传可不传')
调用的时候是字典的关键字key参数
>>> fun5()
{} 可传可不传
>>> fun5(a=1)
{'a': 1} 可传可不传
>>> fun5(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3} 可传可不传
 
>>> fun5(**{'a':1,'b':2})   #加两个*号可以传递字典作为参数。
{'a': 1, 'b': 2}
 
6.2.6混合参数函数一
def fun6(m,n=1):   #必备参数必须放在前面,否则报错
pass
>>> fun6(b=2,3)
SyntaxError: positional argument follows keyword argument  #关键字参数(b=2)要放在最后
>>> fun6(m=3,n=2)    #这样则不报错
>>> 
 
6.2.7 混合参数函数二,
要点,定义的时候a必备参数要在默认参数之前,调用时候b关键字参数放最后,c确保必须取值的参数取值
def fun7(*arg,b,m=1):
pass
>>> fun7(1,3,b=2)
时候
 
6.2.8混合参数函数三
def fun8(b,m=1,*arg):
print(arg)
>>> fun8(1,2,*(1,2,3))   #*号函数结果会解包
(1, 2, 3)
>>> fun8(1,2,(1,2,3))    #没*号函数结果不会解包
((1, 2, 3),)
 
def fun8(b,m=1,*arg):    #默认用这种顺序传递参数,必备、默认、不定常这样顺序一般不会报错。
 
关键字参数,调用的时候指定的参数都是关键字参数,可以是默认、必备参数
 
6.3 return的作用
def fun9(a,b):
    if a>b:
        return(a)
    elif a==b:
        print('相等')
    else:
        return(b)
 
    >>> fun9(3,5)
5
>>> s=fun9(1,1)
相等
>>> s
>>> print(s)
None
作用:1,返回值,2,函数结束标志。
 
def fun10(a,b):
    return'没下文了'
    if a>b:
        return(a)
    elif a==b:
        print('相等')
    else:
        return(b)
>>> fun9(1,9)
'没下文了'
>>> fun10(1,2)
3
6.4匿名函数lanmbda
>>> g=lambda x:x+1
>>> g(4)
5
 
总结:(python 参数无类型)
#1:必备
#2:默认
#3:可变
#4:*args 包装的参数,包装成元祖
       *kargs 接受的参数,包装成字典(关键参数) key =value
 
# 1.找到1-100内的质数,结束之后打印“搜索结束”.
# (质数:只能被1和自己整除,如2,只有除以1和2才能整除)
count = 0
for x in range(2,101):
    for y in range(2,x):
        if x % y == 0:
            break
    else:   ###当程序正常执行,没有执行break时才会执行else部分
        print (x)
 
# 2.定义一个函数,能够输入字典和元组。将字典的值(value)和元组的值交换,交换结束后,打印字典和元祖。
tu = (4, 5,8)
dic = {'a': 1, 'b': 2, 'c': 3}
def switch(t,d):
    t = list(t)
    if len(t)  >= len(d):
        n = 0
        for key in d.keys():
            d[key],t[n] = t[n],d[key]
            n += 1
        print ('tu:',t,'\n''dic:',d)
    if len(t)  < len(d):
        raise TypeError('不能这样子,字典长度不能比元祖长度长!')
switch(tu,dic)
 
 
# 3.定义一个函数,必须包含4种参数形式,然后打印这4个参数,最后返回'OK'。
def function(a,b = 4,*args, **kargv):
    print ('必备参数:',a,end= '\n')
    print ('默认参数:',b,end='\n')
    print ('可选参数元祖:',args,end='\n')
    print ('可选参数:',kargv,end='\n')
 
function(1,5,1,2,3,k=10)
print('-----------------分割线-----------------')
function(1,10,*(1,2,3))
print('-----------------分割线-----------------')
function(1,10,*(2,3,4),**{'name':'Stone','age':24})
print('-----------------分

转载于:https://www.cnblogs.com/Stone-Fei/p/8530518.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值