1. 程式人生 > >老男孩作業二的自我解答

老男孩作業二的自我解答

1-1 內容 http class mes pri for 計算 status

技術分享

import os
import os.path





# 獲取文件內容
def get_file():
    file_path = ‘C:/Users/win10/Desktop/user.txt‘
    file_name = open(file_path, "r+")
    i = int(0)
    lists = []  # 保存替換過的
    for line in file_name.readlines():
        i = i+1
        # 替換換行符 再切割成數組
        lists.insert(i,line.split(‘,‘))
    file_name.close() #關閉文件
    return lists

# 重寫內容
def write_file(write_list):
    file_path = ‘C:/Users/win10/Desktop/user.txt‘
    file_write = open(file_path,"w")
    file_write.write(write_list)
    file_write.close()  # 關閉文件
    return
lnet = 0 #下一個數
times = 0
sum = len(get_file())
while lnet < sum:
    k = 0 # 用於計算第幾個循環
    lists = get_file()
    content = ‘‘
    username = input(‘username:‘)
    password = input(‘password:‘)
    status = 0 #狀態標記
    for item in lists:
        num = int(item[2].replace(‘\n‘,‘‘))
        # break
        if num >=3 and username == item[0]:
            print(‘該用戶已被鎖定‘)
            lnet = sum #退出while
            status = 1
            break
        elif item[0] == username and item[1] == password:
            print(‘歡迎使用‘)
            lists[k][2] = lists[k][2].replace(‘1‘,‘0‘).replace(‘2‘,‘0‘).replace(‘3‘,‘0‘)
            for it in lists:
                content += ‘,‘.join(it)
            write_file(content)
            status = 1
            lnet = sum  # 退出while
            break
        elif item[0] == username and item[1] != password:
            print(‘賬號或密碼錯誤‘)
            lists[k][2] = lists[k][2].replace(str(num),str(num+1))
            for it in lists:
                content += ‘,‘.join(it)
            write_file(content)
            status = 1
            break
        # elif item[0] != username:
        #     print(‘賬號或密碼錯誤‘)

    if times == 2:
        print(‘您已輸如超過三次錯誤!請關閉後重新打開‘)
    elif status == 0:
        print(‘賬號或密碼錯誤‘)
    times = times + 1
    lnet += 1

  

文本格式:
賬號 密碼 次數
admin,admin,0
adminasdad,adadsad,0
adasda,adasdad,1

註:次數是從零開始計算的 用戶名不能重復 

  

老男孩作業二的自我解答