9.2作业

1.简述定义函数的三种方式

答:1空函数,2无参函数,3含参函数

2.简述函数的返回值

答:函数的返回值为当此函数结束时输出给控制台的数据,可用return 语句自定义,默认值为None

3.简述函数的参数

答:函数的参数包括形参和实参,形参为定义函数时的参数,包括位置参数和关键字参数。定义时所定义的位置参数和关键字参数可作为函数默认值。定义过程中应避免关键字参数放在位置参数之前。实参为调用函数时实际给出的参数,如原函数仅有位置参数,则实参个数需与位置参数个数相同,关键字参数赋值时会将原形参覆盖。

4.5编写注册函数,登录函数

答:

def register_test():

print('请注册')

usersname_ipt = input('请输入用户名:')
print('用户名为:',usersname_ipt)

userspwd_ipt = input('请输入密码:')
print('密码为:',userspwd_ipt)

with open('user_info.txt','a',encoding='utf8') as fa:
    fa.write(f'{usersname_ipt}:{userspwd_ipt}')
    print('保存成功')

def login():

print('登录')

with open('user_info','r',encoding='utf8') as fr:
    data = fr.read()
    data_split = data.split(':')
    usersname,psd = data_split[0],data_split[1]

   usersname_ipt = input('请输入用户名:')
    userspwd_ipt = input('请输入密码:')
    if usersname = usersname_ipt and psd = userspsd_ipt:
        print('登录成功')
    else:
        print('登录失败')

周六到的,with下面抄的,自己不会写

6.购物车系统

答:抄了一遍

x = int(input('x:'))

y= int(input('y:'))

def mix111(x,y):

if x> y :

print(x)

else:

print(y)

def compare():

x = 10

y = 20

if x>y:

print(x)

else:

print(y)

return 1

compare()

print(compare)

print(compare())

def register_test():

print('请注册')

usersname_ipt = input('请输入用户名:')
print('用户名为:',usersname_ipt)

userspwd_ipt = input('请输入密码:')
print('密码为:',userspwd_ipt)

with open('user_info.txt','a',encoding='utf8') as fa:
    fa.write(f'{usersname_ipt}:{userspwd_ipt}')
    print('保存成功')

def login():

print('登录')

with open('user_info','r',encoding='utf8') as fr:
    data = fr.read()
    data_split = data.split(':')
    usersname,psd = data_split[0],data_split[1]

   usersname_ipt = input('请输入用户名:')
    userspwd_ipt = input('请输入密码:')
    if usersname = usersname_ipt and psd = userspsd_ipt:
        print('登录成功')
    else:
        print('登录失败')

import os

product_list=[
['iphone7',5800],
['coffee',30],
['python book',99],
['bike',299],
['vivo x9',2499],
]''

shopping_cart={}
current_userinfo = []

db_file = r'db.txy' #r是模糊搜索

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 ==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
        whlie 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 pmane 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,ke,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').strip(',')
                        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('非法操作')
posted @ 2019-09-02 18:59  Agsol  阅读(204)  评论(0编辑  收藏  举报