学习报告2

import os,sys
import time
import pathlib
 

"""
	1.运行该脚本会生成一个balance.txt文件,并设置初始账户余额:¥0

	2.运行该脚本会生成一个account.txt文件,并记录账户消费信息详情。
"""

def save():

    date= time.strftime("%Y-%m-%d")

    cost=0
    while 1:
        try:
            save= int(input("请输入存款金额:").strip())
        except ValueError:
            print ("\033[31m请输入数值类型,重新输入!\033[0m")

            continue

        except(KeyboardInterrupt,EOFError):

            sys.exit("\n\033[31m程序退出\033[0m")
        if save <=0:
            print ("\033[31m请输入一个大于0的存款金额:\033[0m")

            continue

        while 1:
            try:

                comment= str(input("请输入存款信息:"))
            except(KeyboardInterrupt,EOFError):

                sys.exit("\n\033[31m程序退出\033[0m")
            if not comment:
                continue

            break

        break
    balance=rekcon_balance(save,cost)

    a.write("%-12s%-12s%-12s%-12s%-12s\n" %(date, cost, save, balance, comment))

    a.flush()

    with open("balance.txt", "w") as b:

        balance=str(balance)

        b.write(balance)
def cost():
    save=0
    date= time.strftime("%Y-%m-%d")
    
    while 1:
        try:

            cost= int(input("请输入消费金额:").strip())
        except ValueError:
            print ("\033[31m请输入数值类型,重新输入!!!\033[0m")

            continue

        except(KeyboardInterrupt,EOFError):

            sys.exit("\n\033[31m程序退出\033[0m")
        if cost <=0:
            print ("\033[31m请输入一个大于0的消费金额:\033[0m")

            continue

        break
    balance=rekcon_balance(save,cost)
    while balance < 0:
        comment= str(input("请输入消费信息:"))
        print ("\033[31m余额不足,请充值或进行其他操作!!!\033[0m")

        break
    
    else:
        
        while 1:
            try:

                comment= str(input("请输入消费信息:"))
            except(KeyboardInterrupt,EOFError):

                sys.exit("\n\033[31m程序退出\033[0m")
            if not comment:
                continue

            break
    a.write("%-12s%-12s%-12s%-12s%-12s\n" %(date, cost, save, balance, comment))

    with open("balance.txt", "w") as b:

        balance=str(balance)

        b.write(balance)

        a.flush()
def rekcon_balance(save,cost):
    try:

        with open("balance.txt", "r") as b:

            balance=b.readline()

            balance=int(balance)
    except IOError:

        balance= 0
    balance+=save
    if cost > balance:
        balance -= cost
        # balance= -1

        return balance
    else:
        balance -= cost

    bal = balance 
    with open("balance.txt", "w") as f:

        bal = str(bal)

        f.write(bal)

    return balance

def balance():
    try:

        with open("balance.txt", "r") as b:

            balance=b.readline()
    except IOError:

            balance= 0

            print ("\033[31m初始账户余额:\033[0m¥%s" %balance)
    else:
        print ("\033[31m当前账户余额:\033[0m¥%s" %balance)
def view():
    print ("账户金额详细信息".center(78,"*"))
    print ("%-12s%-12s%-12s%-12s%-12s\n" %("Date", "Cost", "Save", "Balance", "Comment"),)

    with open("account.txt","r") as b:
        for line in b.readlines():
            print(line)
            print ("*".center(70,"*"))
def chunk():
    lines=[]
   
    while True:
        try:
           
            lines.append(input("输入一大段你需要处理的文本:"))
        except:
         
            break
        
    print(lines)

def show_menu():

    cmds={"0": save, "1": cost, "2": balance, "3": view, "4": chunk, "5": quit}

    prompt= """
    \033[32m-----------------------------

    (0): save money

    (1): cost money

    (2): balance

    (3): view detail
    
    (4): chunk Text
    
    (5): quit

    -----------------------------\033[0m

    Please Input Your Choice:"""

    while 1:

        try:

            choice=input(prompt).strip()[0]
        except(KeyboardInterrupt,EOFError):

            sys.exit("\n\033[31m程序退出\033[0m")
        except IndexError:
            print ("\033[31m无效输入,请重新输入!!!\033[0m")

            continue

        if choice not in "012345":
            print ("\033[31m无效输入,请重新输入!!!\033[0m")

            continue

        if choice == 5:
           
            break
        cmds[choice]()
if __name__ == "__main__":
    header = 0
    ac = os.path.exists("./account.txt")
    print(ac)
    if ac == True:
       
        with open("account.txt","r") as init_txt:
            header  = init_txt.readline().strip()
        print(header)
 
    else:      
        pathlib.Path("account.txt").touch()
    
        if header != "Date        Cost        Save        Balance     Comment":
                
            with open("account.txt","a") as init_txt:
                init_txt.write( "%-12s%-12s%-12s%-12s%-12s\n" %("Date", "Cost", "Save", "Balance", "Comment"),)
            
    a= open("account.txt","a")

    print (show_menu())

    a.close()

Chunk_text.py

def chunk():
    lines=[]
   
    while True:
        try:
           
            lines.append(input("输入一大段你需要处理的文本:"))
        except:
         
            break
        
    return lines
for i in chunk():
    i = i.strip(" ")
    print(i)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值