python基础之函数

函数的定义

函数的定义主要有如下要点:

  • 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:注册"+"
"+"