函数

函数
1.def
2.名字
3.函数体
4.返回值
5.参数
    普通参数
    指定参数
    默认参数
    动态参数
        *ages
        **kwargs
    万能参数
        *args  **kwargs
6.补充:
    a.
        def f1
        def f1
    b.引用
    c.全局变量
        读,均可读
        赋值,global
        字典,列表,可修改
        ==> 全局变量用大写
#1.set 无序,不重复,可嵌套
#函数 def 名字  函数体  返回值  >>定义函数不执行
#def sendmail(xxoo):形式参数
#ret = sendmail('liangml')实际参数
# x='ok'默认参数
#send(x='liangml',xxoo='123')制定参数
函数的参数
#1.普通参数
#2.默认参数(默认参数必须放到参数列表的后边)
#3.指定参数
#4.*接受人任意实际参数
#5.*动态参数
#       *   默认将传入的参数,全部放置在元组中,f1(*[11,22,33,44])
#       **  默认将传入的参数,全部放置在字典中,f1(**{'k1':'v1','k2':'v2'})
#6.万能参数  *args **kwargs
# str.format()
# str format()#格式化输出
#%s %d
# s1 = "I am {0},age {1}".format("liangml",18)
# print(s1)
# s2 = "I am {0},age {1}".format(*["liangml",18])
# print(s2)
# s1 = "I am {name},age {age}".format(name='liangml',age='18')
# print(s1)
# dic = {'name':'liangml','age':"18"}
# s2 = 'I am {name},age {age}'.format(**dic)
# print(s2)
def sendmail():
    import  smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr

    msg = MIMEText('邮件内容','plain','utf-8')
    msg['From'] = formataddr(['名字','[email protected]'])
    msg['To'] = formataddr(["走人",'[email protected]'])
    msg['Subject'] = '主题'

    server = smtplib.SMTP('smtp.163.com',25)
    server.login('[email protected]','邮箱密码')
    server.sendmail('[email protected]',['[email protected]'],msg.as_string())
    server.quit()

sendmail()
优化后
def sendmail():
    try:
        import  smtplib
        from email.mime.text import MIMEText
        from email.utils import formataddr
        msg = MIMEText('邮件内容','plain','utf-8')
        msg['From'] = formataddr(['名字','[email protected]'])
        msg['To'] = formataddr(["走人",'[email protected]'])
        msg['Subject'] = '主题'
        server = smtplib.SMTP('smtp.163.com',25)
        server.login('[email protected]','邮箱密码')
        server.sendmail('[email protected]',['[email protected]'],msg.as_string())
        server.quit()
    except:
        #发送失败执行
        return False
    else:
        #发送成功
        return True
ret = sendmail()
print(ret)
if ret == True:
    print('发送成功')
else:
    print('发送失败')
    
return讲解,如果没有return python回自动return一个值None
def f1():
    print(123)
    #在函数中,一旦执行return,函数执行过程立即终止
    return '111'
    print(456)
r = f1()
print(r)



再次优化
def sendmail(xxoo):
    try:
        import  smtplib
        from email.mime.text import MIMEText
        from email.utils import formataddr
        msg = MIMEText('邮件内容','plain','utf-8')
        msg['From'] = formataddr(['名字','[email protected]'])
        msg['To'] = formataddr(["走人",'[email protected]'])
        msg['Subject'] = '主题'
        server = smtplib.SMTP('smtp.163.com',25)
        server.login('[email protected]','邮箱密码')
        server.sendmail('[email protected]',['xxoo'],msg.as_string())
        server.quit()
    except:
        #发送失败执行
        return False
    else:
        #发送成功
        return 'cc'

while True:
    em = input("请输入邮箱地址:")
    result = sendmail(em)
    if result == "cc":
        print("发送成功")
    else:
        print("发送失败")
        
      补充
# def f1(a1,a2):
#     return a1 + a2
# def f1(a1,a2):
#     return a1 * a2
# ret = f1(8,8)
# print(ret)

# def f1(a1):
#     a1.append(999)
# li = [11,22,33,44]
# f1(li)
# print(li)
#当函数传送元素时使用的索引


#全局变量,所有的作用域都可读
#对全局变量进行重新赋值,需要global
#特殊的,列表字典,可修改,不可重新赋值
#定义全局变量的时候全部都是大写
# def f1():
#     name = 'liangml'
#     print(name)
# def f2():
#     print(name)
#name = 'liangml'#全局变量
NAME = [11,22,33,44]
def f1():
    # age = 18
    # global name #表示,name是全局变量
    # name = '123'
    print(NAME)
    name.append(32)
    print(age,NAME)
f1()
def f2():
    age = 19
    print(age,NAME)
f2()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章