day13 作业
1、编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改
import os
def file_update(file_path,old_msg,new_msg):
with open("b.txt","r",encoding="utf-8") as f \
,open(f"{file_path}\\b.txt","w",encoding="utf-8") as f1:
for line in f:
f1.write(line.replace(f"{old_msg}",f"{new_msg}"))
os.remove("b.txt")
file_update("locked","a","b")
2、编写tail工具
import time
def tail():
with open("log.txt","rb") as f:
f.seek(0,2)
while True:
new_msg = f.readline()
if len(new_msg)==0:
time.sleep(1)
else:
print(new_msg.decode("utf-8"))
tail()
#另一个文件
def write_log():
with open("log.txt","a",encoding="utf-8") as f:
msg = input("请输入日志内容")
f.write(f"\n{msg}")
write_log()
3、编写登录功能
def login():
user_inp = input("your name >")
pwd_inp = input("your msg >")
with open("a.txt","r",encoding="utf-8") as f:
for line in f :
username,password = line.strip().split(":")
if username==user_inp and pwd_inp == password:
print("登录成功")
break
else:
print("输入错误")
login()
4、编写注册功能
def register():
username = input("请输入注册的用户名:")
password = input("请输入注册的密码:")
with open("a.txt","a",encoding="utf-8") as f :
f.write(f"\n{username}:{password}")
register()
选做题:编写ATM程序实现以下功能,数据源于文件db.txt
1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
4、查询余额功能:输入账号查询余额
5、用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作
import os
def recharge():
''' 充值功能'''
name_inp = input("请输入要充值的账号>")
money_inp = input("请输入要充值的金钱>")
with open("db.txt","r",encoding="utf-8") as f ,\
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f :
if name_inp in line :
name,money = line.strip().split(":")
new_money = int(money_inp)+int(money)
f1.write(line.replace(money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def transfer():
'''转账功能'''
transfer_name_inp = input("请输入转账人姓名:")
collector_name_inp = input("请输入收账人姓名:")
money_inp = input("请输入转账金额")
with open("db.txt","r",encoding="utf-8") as f ,\
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f :
if transfer_name_inp in line :
transfer_name,transfer_money=line.strip().split(":")
new_money = int(transfer_money)-int(money_inp)
f1.write(line.replace(transfer_money,str(new_money)))
elif collector_name_inp in line:
collector_name,collector_money=line.strip().split(":")
new_money = int(collector_money)+int(money_inp)
f1.write(line.replace(collector_money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def cash_withdrawal():
'''提现功能'''
name_inp = input("请输入提现账号的姓名:")
money_inp = input("请输入提现的金额:")
with open("db.txt","r",encoding="utf-8") as f ,\
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f:
if name_inp in line:
name,money = line.strip().split(":")
new_money = int(money)-int(money_inp)
f1.write(line.replace(money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def login():
'''登录功能'''
user_inp = input("your name >")
pwd_inp = input("your msg >")
with open("a.txt","r",encoding="utf-8") as f:
for line in f :
username,password = line.strip().split(":")
if username==user_inp and pwd_inp == password:
print("登录成功")
return 1
else:
print("输入错误")
def query():
'''查询功能'''
name_inp=input("请输入你要查询的用户名:")
with open("db.txt","r",encoding="utf-8")as f :
for line in f :
name,money = line.strip().split(":")
if name_inp in line:
print(money)
break
#主程序
list1=["1","2","3","4"]
while True:
res = login()
if res:
while True:
print('''
欢迎来到只能充值转账提现的劣质ATM系统
1.充值
2.转账
3.提现
4.查询
''')
cmd = input("请输入指令>")
if cmd ==list1[0]:
recharge()
elif cmd == list1[1]:
transfer()
elif cmd == list1[2]:
cash_withdrawal()
elif cmd == list1[3]:
query()
else:
print("非法输入")
day13 作业的更多相关文章
- day13作业
#作业1猜年龄 , 可以让用户最多猜三次! # Auther:bing #!/usr/bin/env python age = 24 print("猜年龄") for i in r ...
- 老男孩Day13作业:ORM学员管理系统
一.作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图: 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上 ...
- Day13作业及默写
1. 整理今天的博客,写课上代码,整理流程图. 博客链接--博客园 2. 写一个函数完成三次登陆功能: 用户的用户名密码从一个文件register中取出. register文件包含多个用户名,密码,用 ...
- day13作业—(登录注册)
2.写一个函数完成三次登陆功能: 用户的用户名密码从一个文件register中取出. register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行. 完成三次验证, ...
- python全栈开发day12
列表 创建列表: 基本操作: 索引 切片 追加 删除 长度 切片 循环 包含 #######################列表list类中提供的方法######################## ...
- Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数
分析以下需求,并用代码实现 键盘录入一个字符(以字符串的形式录入) 判断当前字符在info3.txt当中是否存在 如果不存在, 给出提示 如果存在, 请统计出该字符出现的次数 Info3.txt内容如 ...
- Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数
需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...
- Day_13【IO流】扩展案例1_读取项目文件内容并去重
分析以下需求,并用代码实现: 需求: 读取当前项目下的info1.txt 文件内容如下 : aaaaaaaaaaabbbbbbbbbbbbccdefg 要求将数据去重后写回最终效果 : fgdebca ...
- day13列表推导式作业详解
1.day13题目 2,用列表推导式做下列小题 (1)过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 (2)求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表 (3)求M ...
随机推荐
- 你都这么拼了,面试官TM怎么还是无动于衷?
前言 面试,对于每个人而然并不陌生,可以说是必须经历的一个过程了,小到一场考试,大到企业面试,甚至大型选秀...... 有时自己明明很努力了,但偏偏会在面试环节出了插曲,比如,紧张就是最容易出现的了. ...
- Thread和Runnable
继承Thread类不能实现资源共享.(程序启动了三个线程,但是3个线程却分别卖了各自的5张票,并没有达到资源共享的目的) 实现Runnable接口可以资源共享.(程序启动了三个线程,但是3个线程一共才 ...
- @atcoder - AGC026F@ Manju Game
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个含 N 个数的序列,Alice 与 Bob 在博弈.Al ...
- IOS 发布 程序截图问题
特别要注意那个有无状态栏时的像素要求 **注意:在截屏模拟器的时候,请把模拟器的Scale设置成100%(Window->Scale->100%) 开模拟器截图,运行每一个iOS型号,然后 ...
- 【案例演示】JVM之强引用、软引用、弱引用、虚引用
1.背景 想要理解对象什么时候回收,就要理解到对象引用这个概念,于是有了下文 2.java中引用对象结构图 3.引用详解 3.1.什么是强引用 a.当内存不足,JVM开始垃圾回收,对于强引用的对象,就 ...
- 微服务配置中心 Apollo 源码解析——Admin 发送发布消息
内容参考:https://www.toutiao.com/a6643383570985386509/ 摘要: 原创出处http://www.iocoder.cn/Apollo/admin-server ...
- elk4
传统问题: 微服务系统下服务器数量过大,如果还在使用依次登录每台机器的传统方法查询日志,这样效率非常低下.ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写 ...
- Python3-datetime模块-日期与时间
官方文档 http://python.usyiyi.cn/translate/python_352/library/datetime.html 代码示例 from datetime import da ...
- Python 偏函数用法全方位解析
Python的functools模块中有一种函数叫“偏函数”,自从接触它以来,发现确实是一个很有用且简单的函数,相信你看完这篇文章,你也有相见恨晚的感觉. 我们都知道,函数入参可以设置默认值来简化函数 ...
- SQL注入之MySQL常用的查询语句
MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个 ...