【python】函数

#定义函数

def  xx():

  print("hellow word")

#执行函数

xx()

#形式参数

def qukuang(name):#name是形参
    if name=="bobo":
        return True
    else:
        return False

res=qukuang("bobo")
print(res)#True

#形参,实参(默认是按照顺序),如果指定形参等于实参可以不按照顺序

def send(name,age,info):
    print("name:"+name)
    print("age:"+str(age))
    print("info:"+info)
send(age=19,name="feng",info="hellow word")

# 结果如下:
# name:feng
# age:19
# info:hellow word

#默认参数

  默认参数必须放在不是默认参数的后面,否则报错

  默认参数的意思是如果没有传入参数的时候就会使用默认参数,有默认参数的可以不传参,没有默认参数的必须传参,否则报错

def moren(p,name="bobo"):#这样是正确的
    print(name)

def moren(name="bobo",p):#这样会报错,默认参数必须放在不是默认参数的后面
    pass

#动态参数一

#动态参数一
#     普通参数一般是在定义函数的时候设置了多少个参数就能传多少个,不能传多.
#     如果将参数设置成动态参数就可以无限传参数,函数会把所有的参数合成一个元祖类型
     def f1(*a):
         print(a,type(a))#结果为:(('adf', 2, 23, 4, 3425, 34, 5), <type 'tuple'>)是一个元组类型

     f1("adf",2,23,4,3425,34,5)

#动态参数二

#动态参数二
#动态参数二其实就是在参数的前面加两颗星
def f1(**a):
    print(a,type(a))#结果为:({'k2': '123', 'k1': 'asd'}, <type 'dict'>)#是字典类型
f1(k1="asd",k2="123")#传值的时候一定要按照这个形式传,k1="xx",k2="xx",它自动会转成键值的形式

#动态参数的小结:

  *,元组,元组的元素

  **,字典

  两个结合:

def f1(*a,**b):
    print(a)
    print(b)
f1(1,2,3,4,5,6,"23a",k1="adf",l2="123")
# 上面输出结果如下:
# (1, 2, 3, 4, 5, 6, '23a')
# {'k1': 'adf', 'l2': '123'}

#动态参数三

#为动态参数传入字典,元组,列表
# def f1(*a):
#     print(a,type(a))
# li=[1,2,3,4,56,7,"adf"]
# f1(li)#这是作为一个元素传入,结果为:(([1, 2, 3, 4, 56, 7, 'adf'],), <type 'tuple'>)
# f1(*li)#这是作为一个整体传入,结果为:((1, 2, 3, 4, 56, 7, 'adf'), <type 'tuple'>)

# def f1(**a):
#     print(a,type(a))
# dic={"k1":"123","k2":"adf"}
# f1(k1=dic)#必须要k1=dic这样传,如果直接传dic直接报错,结果为:({'k1': {'k2': 'adf', 'k1': '123'}}, <type 'dict'>)
# f1(**dic)#把dic直接传入,不需要k1=dic,不需要这个k1这个大键,结果为:({'k2': 'adf', 'k1': '123'}, <type 'dict'>)

 

#发送邮件实例

def sendmsg():
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    res=True
    try:
      msg = MIMEText('邮件内容', 'plain', 'utf-8')
      msg['From'] = formataddr(["武沛齐",'wptawy@126.com'])
      msg['To'] = formataddr(["走人",'424662508@qq.com'])
      msg['Subject'] = "主题"
      server = smtplib.SMTP("smtp.126.com", 25)
      server.login("wptawy@126.com", "邮箱密码")
      server.sendmail('wptawy@126.com', ['424662508@qq.com',], msg.as_string())
      server.quit()
    except:
      res=False
    return res

 #内置函数

posted @ 2017-06-05 14:41  丰study  阅读(88)  评论(0)    收藏  举报