函数

函数

定义函数的三种方式

#空函数
def func_1():
    pass
#无参函数
def func_2():
    print('1')
#有参函数
def func_3(x):
	print(x)
 

简述函数的返回值

# 如果函数没有返回值,默认返回None
# 1.None就是返回值(使用函数后拿到的一个结果)
# 2. 函数可以通过return返回出返回值
# 3. return 可以终止函数
# 4. return 可以返回多个值,以列表形式存储

简述函数的参数

# # def compare(num1, num2):  # 形(形式)参:一般具有描述意义,毫无作用(接收实参)  --》 变量名(接收变量值)
# # compare(80, 140)  # 实(实际)参 :具有实际的意义,具体的一个值(传给形参)  --》 变量值

# ## 形参
#
# ### 位置形参: 从左到右一个一个写过去,就叫做位置形参
#
# ### 默认(默认值)形参:给位置形参一个默认值,让他成为默认形参,以后调用不需要为他船只,但是你为他传值的话,他也会接收
# # 默认参数必须得放在最后面(位置参数后面)
# def compare(num1, num2=140):  # 形(形式)参:一般具有描述意义,毫无作用(接收实参)  --》 变量名(接收变量值)

# compare(80, 60)  # 实(实际)参 :具有实际的意义,具体的一个值(传给形参)  --》 变量值
# # compare(180)  # 实(实际)参 :具有实际的意义,具体的一个值(传给形参)  --》 变量值
#
# ## 实参
#
# ### 位置实参:从左到右一个一个写过,就叫做位置实参,(有多少个位置形参,就必须有多少个位置实参,从左到右依次传值)
#
#
# ### 关键字实参:位置实参加上默认值,然后按照位置形参名传值
# # 关键字实参也必须在位置参数后面
# def compare2(num1, num2):  # 形(形式)参:一般具有描述意义,毫无作用(接收实参)  --》 变量名(接收变量值

# res = compare4(4, 0,num4=2, num3=3, )  # 4 0 3 2  # 关键字参数,按照位置形参名给值,这个一般用于参数过多(一般建议函数参数不超过3个)

编写注册函数


def register(name, pwd):
    with open('user_info.txt', 'a', encoding = 'utf-8')as f:
        f.write(f'|{name}:{pwd}')
        f.flush()
        return '注册成功!'
name = input("请输入您的用户名: ").strip()
pwd = input("请输入您的密码: ").strip()


编写登陆函数

def login(name, pwd):
    with open('user_info.txt','r',encoding = 'utf-8')as f:
        lis = f.read()
        lis = lis.split('|')
        print(lis, type(lis))

        for i in lis:
            i = i.split(':')
            if i[0] == name and i[1] == pwd:
                return '登陆成功!'



调用函数

#msg = register(name, pwd)
msg = login(name, pwd)
print(msg)

购物车系统

import os
product_list = {"coffee":20,"beer":15,"cola":10}
user_list = []
error  = 0

sum = 0
buy_list = {"coffee":0,"beer":0,"cola":0}
while True:
    with open("user.txt", 'r', encoding='utf-8') as f:
        for line in f:
            data = line.strip()
            data = data.split('|')
            user_list.append(data)

    choise = input("""请输入您的选择: 
                    1:登陆
                    2:注册
                    3:退出
                    """).strip()
    if choise == "1":
        name = input("请输入您的账号: ").strip()
        pwd = input("请输入您的密码: ").strip()
        for list in user_list:
            if list[0] == name and list[1] == pwd:
                print("登陆成功!")
                salary = input("请输入您的工资: ").strip()
                salary = int(salary)
                print(product_list)
                while True:
                    buy = input("""
                              请输入您要购买的商品编号:
                                1:coffee
                                2:beer
                                3:cola
                                """
                                ).strip()
                    if buy == "1":
                        buy_list['coffee']+=1
                        print(buy_list)
                    elif buy == "2":
                        buy_list['beer'] += 1
                        print(buy_list)
                    elif buy == "3":
                        buy_list['cola'] += 1
                        print(buy_list)
                    elif buy == "ok":
                        print("选择商品完成!")
                        sum = buy_list["coffee"]*20 + buy_list["beer"]*15 + buy_list["cola"]*10
                        print(buy_list)
                        print("总金额: ",sum)
                        if salary >= sum:
                            salary -= sum
                            print("购买成功!")
                            print("工资余额",salary)
                        else:
                            print("余额不足,支付失败!")
                        break
                    else:
                        print("对不起,没有这样商品!")
                        continue
            else:
                error+=1
                if error == 3:
                     break

    elif choise == '2':
        new_name = input("请输入您的账号: ").strip()
        new_pwd = input("请输入您的密码: ").strip()
        re_pwd = input("请再次输入密码: ").strip()
        if new_pwd == re_pwd:
            with open("user.txt",'a+t', encoding='utf-8') as f:
                f.write(new_name+"|"+new_pwd+'\n')
        else:
            print("两次密码不一致!")
    elif choise == '3':
        print("退出系统!")
        break
    else:
        print("对不起,没有您选择的功能!")

posted on 2019-09-02 15:43  shenblogs  阅读(169)  评论(0)    收藏  举报

导航