assignment of day nine

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

1.空函数:用于占位

2.有参函数:有参数的函数

3.无参函数:没有参数的函数

二.简述函数的返回值

1.如果函数没有返回值,默认返回None

2.函数可以通过return返回出返回值

3.return可以终止函数

4.return可以返回多个值,以列表形式储存

5.内置方法

三.简述函数的参数

1.形参:一般具有描述的意义,毫无作用(定义的时候写在括号里的)

2.实参:具有实际的意义,具体的一个值(传给形参)

位置形参: 从左到右一个一个写过去,就叫做位置形参

位置实参:从左到右一个一个写过,就叫做位置实参,(有多少个位置形参,就必须有多少个位置实参,从左到右依次传值)

四.编写注册函数

def register():
    username_inp = input("请输入你的用户名:")
    if ':' in username_inp:
        print('输入错误,我必须选中一个目标')
    pswd_inp = input("请输入你的密码:")
    with open('user_info.txt', 'a', encoding='utf8') as fa:
        fa.write(f'{username_inp}:{pswd_inp}')
        print('保存成功')

五.编写登录函数

def login():
    with open('user_info.txt', 'r', encoding='utf8') as fr:
        data=fr.read()
        data_split=data.split(':')
    username = data_split[0]
    pswd = data_split[1]
    username_inp=input("请输入账号")
    pswd_inp=input('请输入密码')
    if username == username_inp and pswd == pswd_inp:
        print("wdnmd")
    else:
        print("wtf")

六.可仿造 https://www.cnblogs.com/nickchen121/p/11070005.html 编写购物车系统

import os #join os
product_list=[    #make a product list
    ['watermelon',80],
    ['starbucks',30],
    ['dogfoods',200],
    ['human',5],
    ['nitendoswitch',2400],
    ['shoppingcart',10],
]

shopping_cart={}    #define a shoppingcart dictionary
current_userinfo={}  #define current_userinfo dictionary

db_file=r'db.txt'

while True:    #永久循环
    print('''
    press 1 to login 
    press 2 to register
    press 3 to shopping
    ''')
    choice=input('>>:').strip()
    if choice=="1":
        #1.login
        tag=True
        count=0
        while tag:
            if count==3:
                print("you've tried too much please logout")
                break  #if you made mistakes for 3times you i'll be kicked out
            uname=input('username:').strip()
            pswd=input('password:').strip()#delete the blank

            with open(db_file,'r',encoding='utf-8')as f:
                for line in f: #reading the file in db
                    line = line.strip('\n')
                    user_info=line.split(',')

                    uname_of_db=user_info[0]
                    pswd_of_db=user_info[1]
                    balance_of_db=int(user_info[2])

                    if uname==uname_of_db and pswd==pswd_of_db:
                        print('login succeed')

                    #登陆成功则经用户名和余额添加到列表
                    current_userinfo=[uname_of_db,balance_of_db]
                    print('userinfo is:',current_userinfo)
                    tag=False
                    break
                else:
                    print('usename or password fault!')
                    count=+1

    elif choice=='2':
        uname=input('please enter username:').strip()
        while True:
            pswd1=input("please enter your password:").strip()
            pswd2=input("please confirm your password:").strip()
            if pswd2==pswd1:
                break
            else:
                print('than was different passwords,please enter again!!!')

        balance=input('please enter the money you would like to recharge:').strip()
        with open(db_file,"a",encoding='utf-8')as f:
            f.write('%s,%s,%s\n' % (uname, pswd1, balance))

    elif choice=='3':
        if len(current_userinfo)==0:
            print('please login first')
        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('enter the number of goods,enter q to quit>>:').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:#if you've already bought
                            shopping_cart[pname]['count']+=1#add one more same goods
                        else:
                            shopping_cart[pname]={
                                'pprice':pprice,
                                'count':1
                            }

                        balance_of_db-=pprice#reduce your money
                        current_userinfo[1]=balance_of_db
                        print(
                            "Added product " + pname +
                            " into shopping cart,[42;1myour current balance "
                            + str(balance_of_db))

                    else:
                        print("you can't afford it,you son of bitch,product price is {price},you need {lack_price}more".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('confirm(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='utf8')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 succeed,please waiting for delivery')

                            shopping_cart={}
                            current_userinfo=[]
                            tag=False
                    else:
                        print('illegal input')
                elif choice =='q':
                    break
                else:
                    print('illegal operate')

posted @ 2019-09-02 18:34  是我,米老鼠  阅读(130)  评论(0编辑  收藏  举报