zoukankan      html  css  js  c++  java
  • 文件操作,应用登陆系统,注释标准,冒泡排序原理

    # 写,末尾追加,指针到最后
    # +表示同时可以读写,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)
  • 相关阅读:
    excel 常用小技巧
    如何以正确的顺序重新安装驱动程序
    kaby LAKE 仅支持 Windows10
    关闭远程计算机CMD命令
    根据IP查主机名
    Charles安装与使用
    常用的算法思想总结
    iOS学习之单例模式
    PHP之简单实现MVC框架
    Objective-C 继承和多态
  • 原文地址:https://www.cnblogs.com/currynashinians000/p/8619671.html
Copyright © 2011-2022 走看看