函数的定义
函数的定义主要有如下要点:
- def:表示函数的关键字
- 函数名:函数的名称,日后根据函数名调用函数
- 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
- 参数:为函数体提供数据
- 返回值:当函数执行完毕后,可以给调用者返回数据。
创建函数
例如下列代码
1 #创建函数 2 def f1(a): 3 if a > 2: 4 print("大") 5 f1(5) 6 7 #形式参数 8 #name叫做函数f()的形式参数 9 def f(name): 10 print(name) 11 #"小明"叫做函数f()的实际参数 12 f("小明") 13 14 #默认参数 15 #在f1()定义了一个默认参数:age=22 16 def f1(name,age=22): 17 print(name,age) 18 #使用的是指定参数 19 f1("小明",age = 33) 20 #使用的是默认参数,需要放在参数列表的最后面 21 f1("大明") 22 23 24 #指定参数 25 #形式参数给了几个参数就需要传几个参数 26 def f1(name,age): 27 print(name,age) 28 #按照顺序,给函数f1传递实际参数 29 f1("xiaoxue",22) 30 #指定参数,指定name=22,age=33 31 f1(name=22,age=33) 32 33 34 #万能参数 35 def f3(*args,**kwargs): 36 print(args,kwargs) 37 f3(111,222,333,444,k1="v1",k2 ="v2")
*args **kwargs
1 *args 2 #* 输入任意参数(列表,字典,或是字符串,字符),存成元组 3 def f1(*args): 4 print(args) 5 li = [11,22,33,44] 6 r = f1(li) 7 print(r) 8 结果:([11, 22, 33, 44],) 9 10 def f1(*args): 11 print(args,type(args)) 12 f1(11,22,333,44,"11111") 13 如果函数里面有*,传什么东西都会搞到元组里面 14 li = [11,222,33,"alex"] 15 f1(li)#没有*号,把列表当做一个整体去放到元组里面 16 f1(*li)#有*号,把列表里面每一个元素当做一个整体放到元组里面,按照顺序进行排列 17 li = "alex" 18 f1(li)#没有带*号整体当做一个参数放到元组里面,按照顺序 19 f1(*li)#有*号把字符串单个字母当做一个参数放到元组里面 20 21 **kwargs 22 #** 输入指定参数,存成字典 23 def f2(**kwargs): 24 print(kwargs) 25 #会把传入的指定参数等号左边为key,右边为values,存成字典的形式 26 print(f2(name = "123")) 27 28 def f2(**args): 29 print(args,type(args)) 30 f2(name = "alex",age = 37)#要写成指定参数,等号左面是key,右边是values 31 dic = {"k1":"v1","k2":"v2"} 32 li = ["xiaogou","lingque","yinjiao"] 33 f2(n1 = dic)#输出结果,字典里面套字典 34 f2(n2 = li)#输出结果,字典里面套列表 35 f2(**dic)#两个**,输出成字典
函数的返回值return
1 def f1(a): 2 result = []#写一个空列表 3 for item in a:#传入的值赋值给item 4 if item > 22:#当item值大于22时 5 result.append(item)#在列表里追加这个大于22的值 6 # 默认return值为None 7 #在函数中,一旦执行return,函数执行过程立即终止 8 return result #return result这个空字典 9 #print(456)不再执行 10 print(456) 11 li = [11,22,33,44] 12 r = f1(li) 13 print(r)
购物车
#! /usr/bin/env pythondef login(username,password): # def login(username,password): """ 用于用户登录 :param username:用户输入的用户名 :param password:用户输入的密码 :return:是否登录成功,返回Ture or False """ 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 register(username,password): """ 用于用户注册 :param username:用户所注册的用户名 :param password: 用户所注册的密码 :return: 注册成功 """ f = open("db", "r") if username =="" or password =="": print("输入的不能为空") else: for line in f: i = username in line if i: print("账户已存在") else: f = open("db","a") temp = " "+username + "|" + password f.write(temp) f.close() print("注册成功") shopping() def main(): t = input("1:登录 2:注册"+" "+"