函数基础
一、函数的基本使用
''' # 注册功能 uname=input('username>>:').strip() pwd1=input('password>>: ').strip() pwd2=input('重复输入密码>>: ').strip() if pwd1 == pwd2: with open('db.txt','at',encoding='utf-8') as f: f.write('%s:%s\n' %(uname,pwd1)) f.flush() #认证功能 inp_uname=input('请输入你的账号:').strip() inp_pwd=input('请输入你的密码:').strip() with open('db.txt','rt',encoding='utf-8') as f: for line in f: info=line.strip('\n').split(':') if inp_uname == info[0] and inp_pwd == info[1]: print('login successfull') break else: print('账号或密码错误') # 注册功能 uname=input('username>>:').strip() pwd=input('password>>: ').strip() with open('db.txt','at',encoding='utf-8') as f: f.write('%s:%s\n' %(uname,pwd)) f.flush() # 注册功能 uname=input('username>>:').strip() pwd=input('password>>: ').strip() with open('db.txt','at',encoding='utf-8') as f: f.write('%s:%s\n' %(uname,pwd)) f.flush() #认证功能 inp_uname=input('请输入你的账号:').strip() inp_pwd=input('请输入你的密码:').strip() with open('db.txt','rt',encoding='utf-8') as f: for line in f: info=line.strip('\n').split(':') if inp_uname == info[0] and inp_pwd == info[1]: print('login successfull') break else: print('账号或密码错误') ''' ''' 1、什么是函数? 在程序中,函数就具备某一功能的工具 事先将工具准备好即函数的定义 遇到应用场景拿来就用即函数的调用 所以务必记住:#函数的使用必须遵循先定义,后调用的原则 2、为何要用函数 不用函数问题是: 1、程序冗长 2 程序的扩展性差 3 程序的可读性差 3 如何用函数: 函数的使用必须遵循先定义,后调用的原则 ''' # def 函数名(参数1,参数2,...): # ''' # 函数功能的描述信息 # :param 参数1: 描述 # :param 参数2: 描述 # :return: 返回值 # ''' # 代码1 # 代码2 # 代码3 # ... # return 返回值 # 准备好工具=>函数的定义阶段 def register(): while True: uname=input('username>>:').strip() if uname.isalpha(): break else: print('用户名必须由字母组成傻叉') while True: pwd1=input('密码>>: ').strip() pwd2=input('重复输入密码>>: ').strip() if pwd1 == pwd2: break else: print('两次输入的密码不一致,眼瞎吗') with open('db.txt','at',encoding='utf-8') as f: f.write('%s:%s\n' %(uname,pwd1)) f.flush() def auth(): #认证功能 inp_uname=input('请输入你的账号:').strip() inp_pwd=input('请输入你的密码:').strip() with open('db.txt','rt',encoding='utf-8') as f: for line in f: info=line.strip('\n').split(':') if inp_uname == info[0] and inp_pwd == info[1]: print('login successfull') break else: print('账号或密码错误') # 拿来就用=>函数的调用阶段 # print(register) # register() # auth() # register() # register() # register()
二、函数的定义阶段与调用阶段
函数的使用必须遵循先定义,后调用的原则, # 没有事先定义函数,而直接引用函数名,就相当于在引用一个不存在的变量名 #1、函数定义阶段:只检测函数体的语法,不执行函数体代码 # def func(): # print('1111') # print('222') # print('333') #2、函数调用阶段:执行函数体代码 # func() # 例1 # def foo(): # print('from foo') # bar() # # foo() # 例2 # def bar(): # print('from bar') # # def foo(): # print('from foo') # bar() # # foo() # # 例3 # def foo(): # print('from foo') # bar() # # def bar(): # print('from bar') # # foo() # 例4 # def foo(): # print('from foo') # bar() # # foo() # # def bar(): # print('from bar')
三、函数定义的三种形式
#定义函数时的参数就是函数体接收外部传值的一种媒介,其实就一个变量名 #1、无参函数: # 在函数定义阶段括号内没有参数,称为无参函数 # 注意:定义时无参,意味着调用时也无需传入参数 # 应用: #如果函数体代码逻辑不需要依赖外部传入的值,必须定义无参函数 # def func(): # print('hello world') # func() #2、有参函数 # 在函数定义阶段括号内有参数,称为有参函数 # 注意:定义时有参,意味着调用时也必须传入参数 # 应用: #如果函数体代码逻辑需要依赖外部传入的值,必须定义成有参函数 # def sum2(x,y): # # x=10 # # y=20 # res=x+y # print(res) # # sum2(10,20) # sum2(30,40) def check_user(): while True: uname=input('username>>:').strip() if uname.isalpha(): return uname # break else: print('用户名必须由字母组成傻叉') def check_pwd(): while True: pwd1=input('密码>>: ').strip() pwd2=input('重复输入密码>>: ').strip() if pwd1 == pwd2: return pwd1 else: print('两次输入的密码不一致,眼瞎吗') def db_hanle(uname,pwd1): with open('db.txt','at',encoding='utf-8') as f: f.write('%s:%s\n' %(uname,pwd1)) f.flush() def register(): # 检测用户名是否合法 x=check_user() #x='EGON' # 检测密码是否合法 y=check_pwd() #y='123' # 写入数据文件 # db_hanle(合法的用户名,合法的密码) db_hanle(x,y) # register() #3、空函数 # def func(): # pass def check_user(): pass def check_pwd(): pass def write_db(x,y): pass def register(): #1 输入用户名,并进行合法性校验 #2 输入密码,并进行合法性校验 #3 将合法的用户名、密码写入文件 x=check_user() y=check_pwd() write_db(x,y)
python之基础知识大全