邓胖胖 2020-12-25 17:24 采纳率: 0%
浏览 18

Python期末项目 没有报错但是也没有显示

import csv
import os
import sys
import datetime


# 运行时生成csv文件,写入title
def make_csv():
    files = os.listdir()
    if "funds_trade.csv" not in files:
        f = open("funds_trade.csv","w",encoding="utf-8",newline="")
        fw = csv.writer(f)
        fw.writerow(["用户名", "时间", "存入/支出", "金额"])
        f.close()
    if "user.csv" not in files:
        f = open("user.csv", "w", encoding="utf-8", newline="")
        fw = csv.writer(f)
        fw.writerow(["name", "pwd"])
        f.close()


# 显示登录菜单
def show_menu():
    print("欢迎来到【银行资金管理系统】,请选择!")
    choose = eval(input("直接登录请按【1】,注册请按【2】:"))
    if choose == 2:
        user_register()
    elif choose == 1:
        name_L = input("请输入账户名:")
        passwd_L = input("请输入密码:")
        user ={"name":name_L,"passwd":passwd_L}
        user_login(user)
    else:
        print("选择错误,请重新输入!")
        show_menu()


# 判断是否登录成功,以及下一步操作
def user_login(userInfo):
    name = userInfo.get("name")
    passwd = userInfo.get("passwd")
    f = open("user.csv","r",encoding="utf-8")
    fr = csv.reader(f)
    flag = 0
    for i in fr:
        if i[0] == name and i[1] == passwd:
            flag = 1
            print("登陆成功!")
            show_mainMenu(name)
            break
    if flag == 0:
        print("登陆失败,请重新登录!")
    show_menu()


# 注册
def user_register():
    name_R = input("请输入账户名:")
    passwd_R = input("请输入密码:")
    f = open("user.csv","a",encoding="utf-8",newline="")
    fw = csv.writer(f)
    if name_R != None and passwd_R != None:
        fw.writerow([name_R,passwd_R])
        f.close()
        print("您已注册成功!")
        print("即将跳转至登录...")
        show_menu()


# 登陆成功主菜单
def show_mainMenu(name=""):
    print("-----------【银行资金管理系统】-----------")
    print("1:资金存入/取出")
    print("2:建议账单打印")
    print("3:退出系统")
    print("-----------------------------------------")
    choose2 = eval(input("请输入数字进行相关操作:"))
    if choose2 == 1:
        operation(name)

    elif choose2 == 2:
        funds_print(name)
        choose4 = eval(input("请按【0】退出账单查看:"))
        if choose4 == 0:
            show_mainMenu(name)
        else:
            show_mainMenu(name)
    elif choose2 == 3:
        sys.exit(0)

    else:
        print("输入错误,请重新输入!")
        show_mainMenu()


def operation(name=""):
    num = eval(input("请输入你存(+)取(-)的金额:"))
    if num != 0:
        funds_trade(name,num)
        print("数据更新成功!")
        print("数据保存成功!")
        balance = get_banlance(name)
        if num > 0:
            print("您已成功存入{}元!当前余额{}元!".format(num, balance))
        else:
            print("您已成功取出{}元!当前余额{}元!".format(num, balance))
        choose3 = eval(input("继续存取请按【1】,返回主菜单请按【2】:"))
        if choose3 == 1:
            operation(name)
        elif choose3 == 2:
            show_mainMenu(name)
        else:
            print("输入错误,回到主菜单!")
            show_mainMenu(name)
    else:
        print("输入错误,请重新输入!")
        operation(name)


def funds_trade(name, money):
    f = open("funds_trade.csv","a",encoding="utf-8",newline="")
    fw = csv.writer(f)
    balance = int(get_banlance(name))
    fw.writerow([name,datetime.datetime.now(),str(money),str(balance+money)])
    f.close()


def funds_print(name):
    f = open("funds_trade.csv", "r", encoding="utf-8")
    fr = csv.reader(f)
    if fr:
        print("用户名      时间         存入/支出     余额")
        for i in fr:
            if i[0] == name:
                print("{}   {}   {}   {}".format(i[0],i[1],i[2],i[3]))


def get_banlance(name):
    f = open("funds_trade.csv","r",encoding="utf-8")
    fr = csv.reader(f)
    banlance = 0
    for i in fr:
        if i[0] == name:
            banlance = int(i[-1])
    f.close()
    return banlance

请各位大佬帮我看下 谢谢

  • 写回答

1条回答 默认 最新

  • PythonJavaC++go 2020-12-25 18:28
    关注

    你定义了一堆函数,在哪里调用?

    没调用就没运行结果

    评论

报告相同问题?

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)