day09作业
-
简述定义函数的三种方式
空函数 有参函数 无参函数
-
简述函数的返回值
- 如果函数没有返回值,默认返回None
- 函数可以通过return返回出返回值
- return可以终止函数
- return可以返回多个值,以列表的形式存储
-
简述函数的参数
-
形参:具有描述意义,用来接收实参
位置形参:从左到右一个一个写过去,就叫做位置形参
默认形参:给位置形参一个默认值,让他成为默认形参
默认形参必须放在最后面
-
实参:具有实际意义,具体的一个值传给形参
位置实参:从左到右一个一个写过去,就叫做位置实参
关键字实参:位置实参加上默认值,然后按照位置形参名传值
关键字实参也必须放在最后
-
-
编写注册函数
-
将用户信息保存到文件内,用户信息可保存为
nick:123|sean:456|tank:789
def register(): print('注册>>>>') username_inp=input('请输入用户名:') pwd_inp =input('请输入密码:') with open('register.txt','a',encoding='utf8')as fa: fa.write(f'{username_inp}:{pwd_inp}|') fa.flush() print('注册成功') register()
-
-
编写登录函数
-
从文件内读取用户信息进行身份识别
def login(): print('登录>>>>') with open('register.txt','r',encoding='utf8')as fr: date=fr.read() date_list=date.split(':') username,pwd=date_list[0],date_list[1] username_inp = input('请输入用户名:') pwd_inp =input('请输入密码:') if username_inp==username and pwd_inp==pwd: print('登录成功') else: print('用户名或密码错误') login()
-
-
可仿造 https://www.cnblogs.com/nickchen121/p/11070005.html 编写购物车系统(选做)
import os product_list = [ ['Iphone7', 5800], ['Coffee', 30], ['疙瘩汤', 10], ['Python Book', 99], ['Bike', 199], ['ViVo X9', 2499], ] shopping_cart = {} current_userinfo = [] db_file = r'db.txt' while True: print(''' 登陆 注册 购物 ''') choice = input('>>: ').strip() if choice == '1': #1、登陆 tag = True count = 0 while tag: if count == 3: print('尝试次数过多,退出。。。') break uname = input('用户名:').strip() pwd = input('密码:').strip() with open(db_file, 'r', encoding='utf-8') as f: for line in f: line = line.strip('\n') user_info = line.split(',') uname_of_db = user_info[0] pwd_of_db = user_info[1] balance_of_db = int(user_info[2]) if uname == uname_of_db and pwd == pwd_of_db: print('登陆成功') # 登陆成功则将用户名和余额添加到列表 current_userinfo = [uname_of_db, balance_of_db] print('用户信息为:', current_userinfo) tag = False break else: print('用户名或密码错误') count += 1 elif choice == '2': uname = input('请输入用户名:').strip() while True: pwd1 = input('请输入密码:').strip() pwd2 = input('再次确认密码:').strip() if pwd2 == pwd1: break else: print('两次输入密码不一致,请重新输入!!!') balance = input('请输入充值金额:').strip() with open(db_file, 'a', encoding='utf-8') as f: f.write('%s,%s,%s\n' % (uname, pwd1, balance)) elif choice == '3': if len(current_userinfo) == 0: print('请先登陆...') else: #登陆成功后,开始购物 uname_of_db = current_userinfo[0] balance_of_db = current_userinfo[1] print('尊敬的用户[%s] 您的余额为[%s],祝您购物愉快' % (uname_of_db, balance_of_db)) tag = True while tag: for index, product in enumerate(product_list): print(index, product) choice = input('输入商品编号购物,输入q退出>>: ').strip() if choice.isdigit(): choice = int(choice) if choice < 0 or choice >= len(product_list): continue pname = product_list[choice][0] pprice = product_list[choice][1] if balance_of_db > pprice: if pname in shopping_cart: # 原来已经购买过 shopping_cart[pname]['count'] += 1 else: shopping_cart[pname] = { 'pprice': pprice, 'count': 1 } balance_of_db -= pprice # 扣钱 current_userinfo[1] = balance_of_db # 更新用户余额 print( "Added product " + pname + " into shopping cart,[42;1myour current balance " + str(balance_of_db)) else: print("买不起,穷逼! 产品价格是{price},你还差{lack_price}".format( price=pprice, lack_price=(pprice - balance_of_db))) print(shopping_cart) elif choice == 'q': print(""" ---------------------------------已购买商品列表--------------------------------- id 商品 数量 单价 总价 """) total_cost = 0 for i, key in enumerate(shopping_cart): print('%22s%18s%18s%18s%18s' % (i, key, shopping_cart[key]['count'], shopping_cart[key]['pprice'], shopping_cart[key]['pprice'] * shopping_cart[key]['count'])) total_cost += shopping_cart[key][ 'pprice'] * shopping_cart[key]['count'] print(""" 您的总花费为: %s 您的余额为: %s ---------------------------------end--------------------------------- """ % (total_cost, balance_of_db)) while tag: inp = input('确认购买(yes/no?)>>: ').strip() if inp not in ['Y', 'N', 'y', 'n', 'yes', 'no']: continue if inp in ['Y', 'y', 'yes']: # 将余额写入文件 src_file = db_file dst_file = r'%s.swap' % db_file with open(src_file,'r',encoding='utf-8') as read_f,\ open(dst_file,'w',encoding='utf-8') as write_f: for line in read_f: if line.startswith(uname_of_db): l = line.strip('\n').split(',') l[-1] = str(balance_of_db) line = ','.join(l) + '\n' write_f.write(line) os.remove(src_file) os.rename(dst_file, src_file) print('购买成功,请耐心等待发货') shopping_cart = {} current_userinfo = [] tag = False else: print('输入非法') elif choice == 'q': break else: print('非法操作')