函数



def sendmail(xo,zt,nr='ok'):          #默认函数 :默认函数一定要放在最后面

    try:

        import smtplib

        from email.mime.text import MIMEText

        from email.utils import formataddr


        msg = MIMEText('nr', 'plain', 'utf-8')

        msg['From'] = formataddr(["武沛齐", '[email protected]'])

        msg['To'] = formataddr(["走人", 'xo'])

        msg['Subject'] = "zt"


        server = smtplib.SMTP("smtp.139.com", 25)

        server.login("[email protected]", "520122817")

        server.sendmail('[email protected]', ['xo', ], msg.as_string())

        server.quit()

    except:

        return "失败"

    else:

        return "cc"


#set = sendmail('[email protected]','nihao',123456789)  普通函数

#set = sendmail('[email protected]','nihao',123456789)

#sendmail(zt = 123456789, nr = 'nihao')                   指定函数

#  判断 成功好失败

while True:

    em = input('输入邮箱地址:')

    abc = sendmail(em,'shuaige','ok')                     普通函数

    if abc == "cc":

        print('发送成功')

    else:

        print('发送失败')


动态参数和万能参数


字符串

def fi(*args):

    print(args)

abc = 'ass',123

fi(*li)   加*把结果传进去 

fi(li)


列表

li = ['as', 123]

fi(*abc)

fi(abc)

def fl(**args):

    print(args, type(args))


字典

def fl(*abc,**args):

    print(abc,args)

dic = {'k1':'v1','k2':'v2'}

fl(**dic)

fl(n1='alex', n2=18)

格式化字符串1

a = ['hhh',456]

b = {'asd00':123,'name':'hanwei'}

 fl(*a,**b)

 

sl = 'i am {name},age {age}'.format(name='alex',age=18)

print(sl)


格式化字符串2 

dic = {'name':'alex','age':18}

s2 = 'i am {name},age {age}'.format(**dic)

print(s2)



1.函数引用变量是连接引用

2.全局变量

均可读

腻值 如 globalNAME

字典,列表 可修改 不可腻值

全局变量用大写


练习

def login(username,password):

#打开文件验证用户名和密码

#return为True 成功

#return为Fslse 失败

    f = open('db','r')

    for line in f:

        line_list = line.strip().split('|')

        if line_list[0] == username and line_list[1] == password:

            return True

    return False


def abc(usernam,passwor):

#把注册的用户和密码写入到文件

    with open('db','a')as w:

        wh = '\n'+usernam+'|'+passwor

        w.write(wh)

        w.close()

        return True



def main():

#判读登录和注册

#把用户和密码传给函数

#判断还是否成功


    t = input ('1.登录 2.注册:')

    if t == '1':

        user = input('输入用户名:')

        pwd = input('输入密码:')

        r = login(user,pwd)

        if r == True:

            print('登录成功')

        else:

            print ('登录失败')

    elif t == '2':

        user1 = input('输入用户名:')

        pwd2 = input('输入密码:')

        M = len(pwd2)

        if M > 8:

            abc(user1,pwd2)

            print('成功注册%s' %user1)

        else:

             print('密码太短')

main()