函數

函數
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()


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