文件操作,应用登陆系统,注释标准,冒泡排序原理

# 写,末尾追加,指针到最后
# +表示同时可以读写,b表示已字节的方式操作
f = open("h.txt","r+")# r+最前,a+最后
# w+,先清空,在写之后,可以读,x+和w+一样,x+额外有如果文件存在,报错
f.seek(0)
# 指针回到初始
print(f.tell())#获取指针位置
d = f.read(1)
print(d)
f.write("")#写到内存,不关闭不写入
f.flush()#强行执行,写到硬盘。
f.truncate()#截断数据,仅保留指针之前
f.readline()# 只读取一行,for line in f :line也是一行一行读,读取所有行
f.close()
# with2.7之后支持同时打开两个文件
with open("h.txt","r") as obj1 ,open("new_h.txt","w") as obj2:
for line in obj1:
# 实现大文件(内存不足),一行一行写到新文件中,
obj2.write(line)
# 没有关闭文件之前,指针保持不动
def x():
# x代指函数,x()执行函数,函数可以做参数
pass
"""
def login(username, password):
"""
用于用户名和密码的验证
:param username: 用户名
:param password: 密码
:return: True正确,False错误
"""
with open("h.txt","r",encoding="utf-8") as f:
for line in f:
# strip默认无参数,移除空格,换行符。有参数则移除两侧的值
line = line.strip()
line_list = line.split("$")
if username == line_list[0] and password ==line_list[1]:
return True
return False
def register(username,password):
"""
注册
:param username:用户名
:param password:密码
:return:True成功
"""
with open("h.txt","a",encoding="utf-8") as f:
f.write(" "+username+"$"+password)
return True
def user_exist(username):
"""
检查用户名是否存在
:param username: 用户名
:return: True存在,False不存在
"""
with open("h.txt","r",encoding="utf-8") as f:
# 无论以任何方式结束with语句,python都会自动关闭文件.(执行__exit__,close)
for line in f:
# 字符串操作是赋值,原字符串不改变
line = line.strip()
line_list = line.split("$")
if username == line_list[0]:
return True
return False
def del_user(username):
"""
删除用户
:param username: 用户名
:return: True
"""
with open("h.txt","r+",encoding="utf-8") as f1,open("new_h.txt","w+",encoding="utf-8") as f2:
for line in f1:
line = line.strip()
line_list = line.split("$")
if line_list[0] != username:
f2.write(line+" ")
with open("h.txt","w+",encoding="utf-8") as f1,open("new_h.txt","r+",encoding="utf-8") as f2:
for line2 in f2:
f1.write(line2)
return True
def revise_pwd(username,newpwd):
"""
修改密码
:param username: 用户名
:param newpwd: 新密码
:return: True
"""
with open("h.txt","r+",encoding="utf-8") as f1,open("new_h.txt","w+",encoding="utf-8") as f2:
for line in f1:
line = line.strip()
line_list = line.split("$")
if line_list[0] == username:
line = line.replace(line_list[1],newpwd)
f2.write(line+" ")
else:
f2.write(line + " ")
with open("h.txt","w+",encoding="utf-8") as f1,open("new_h.txt","r+",encoding="utf-8") as f2:
for line2 in f2:
f1.write(line2)
return True
def main():
print("欢迎登陆xx系统")
inp = input("请输入(1:登陆;2:注册;3:删除用户;4:修改密码):")
if inp == "1":
user = input("用户名:")
pwd = input("密码:")
is_login = login(user,pwd)
if is_login :
print("登陆成功")
else:
print("登陆失败")
elif inp == "2":
user = input("用户名:")
is_exist = user_exist(user)
if is_exist:
print("用户名存在")
else:
pwd = input("密码:")
result = register(user,pwd)
if result:
print("注册成功")
else:
print("注册失败")
elif inp == "3":
user = input("用户名:")
pwd = input("密码:")
is_login = login(user,pwd)
if is_login:
del_user(user)
print("删除成功")
else:
print("账号密码错误")
elif inp == "4":
user = input("用户名:")
pwd = input("密码:")
is_login = login(user,pwd)
if is_login:
new_pwd = input("新密码:")
is_revise = revise_pwd(user,new_pwd)
if is_revise:
print("修改成功")
else:
print("账号密码错误")
main()
# 冒泡排序
li = [11,22,33,44]
temp = li[1]
li[1] = li[2]
li[2] = temp
print(li)
li = [4,77,44,6,1]
for j in range(1,len(li)):
#len(li)=5
#j=1,2,3,4
for i in range(len(li)-j):
#i = 0,1,2,3
# current = li[i]
# next_values = li[i+1]
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i + 1]
li[i + 1] = temp
print(li)
原文地址:https://www.cnblogs.com/currynashinians000/p/8619671.html