道路のPythonの百万年俸 - 第二週 - アナログブログパークシステム

プロジェクト分析:
まず、プログラムが起動し、ユーザーが選択するため、以下の内容が表示されます。

1.ログイン
アップ2.ログイン
3. [記事ページへ
4.コメントページ入力
ゴー日記ページへ5.
6.ゴーお気に入りページに
アカウントの7.キャンセル
8.全体のプログラムを終了しました

II。実装する必要があります機能:
1.登録機能要件:
。ユーザー名とパスワードをファイルに記録します。
。bユーザの要件:あなたは文字や数字、特殊文字が含まれていると、ユーザー名が一意であることを確認することができないだけ含めることができます。
。Cパスワード要件:6〜14文字の長さ。

機能要件ログオンします:
。ユーザーは、ユーザー名とパスワードのログイン認証を入力します。
。Bログインが成功した後、あなたは3--7オプションにのみアクセスすることができ、ログオンまたは失敗したログインしない場合--7オプションは、アクセスがログインにジャンプすることはできません3時を訪問。(グローバル変数を変更します)

C。ログインはまだ回以上成功し、全体のプログラムを終了します。

3.記事ページの要件に移動します:
ヒントは、xxの記事のページを入力してくださいお待ちしております。(xxは現在ログインしているユーザー名です)

4.コメントページ要件を入力します。
ヒントは、xxはコメントページを入力しますようこそ。

5.日記ページの要件に移動します:
ヒントは、日記のページを入力するためにXXを歓迎。

6.ページのコレクションの要件に移動します:
ヒントようこそページxxをコレクションに。

7.キャンセルアカウントの要件:
プログラム全体を放棄することはないが、状態は未登録状態にログインした(3〜7のオプションにアクセスするには再度ログインする必要があります)。

8.プログラム全体の要件を終了します。
プログラム全体の終わりです。

初版

s = """
1.请注册
2.请登录
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出整个程序
"""

print(s)
flag = False
def login():
    """
    登录功能
    :return:如果是登录三次未成功,返回3,如果在三次之内成功,则返回登录的用户名
    """
    count = 0
    while count < 3:
        with open("userinfo_blogs.txt", "r", encoding="UTF-8") as f3:
            flage = False
            login_user = input("请输入登录用户名:").replace(" ", "")
            login_pwd = input("请输入登录密码:").replace(" ", "")
            for i in f3:
                if login_user.strip() == i.strip().split(":")[0] and login_pwd.strip() == i.strip().split(":")[1]:
                    # print(a,b)
                    flage = True
                    break
                # print(login_user,login_pwd)
                # print(i.split(":")[0],i.split(":")[1])
            if flage == False:
                # print(login_user)
                # print(login_pwd)
                print("登录失败!")
                count += 1
            else:
                print("登陆成功!")
                global flag
                flag = True
                return login_user
    return count

def register():
    """
    注册功能
    :return:注册用户名和密码
    """
    while 1:
        error_flag = True
        user = input("请输入注册用户名:")
        for i in user:
            if not (48 <= ord(i) <= 57 or 65 <= ord(i) <= 90 or 97 <= ord(i) <= 122):
                print("请输入正确的用户名!")
                error_flag = False
                break
        if error_flag:
            pwd = input("请输入注册密码:")
            if not(6 <= len(pwd) <= 14):
                print("密码要在6~14个字符之间")
            else:
                break
    return user,pwd
def article(ret_login):
    """
    文章页面
    :param ret_login: 登陆的用户名
    :return:
    """
    print(f"欢迎{ret_login}进入文章页面!")
def comment(ret_login):
    """
    评论页面
    :param ret_login: 登陆的用户名
    :return:
    """
    print(f"欢迎{ret_login}进入评论页面!")
def diary(ret_login):
    """
    日记页面
    :param ret_login: 登陆的用户名
    :return:
    """
    print(f"欢迎{ret_login}进入日记页面!")
def collection(ret_login):
    """
    收藏页面
    :param ret_login: 登陆的用户名
    :return:
    """
    print(f"欢迎{ret_login}进入收藏页面!")
def log_off():
    """
    注销登录功能,从登录状态变成未登录状态
    :return:
    """
    print("注销成功!")
    global flag
    flag = False
def exit():
    print("退出成功!")
    return "break"
while 1:
    num = input("请输入序号:")
    if num.isdecimal() and 1 <= int(num) <= 7:
        num = int(num)
        if num == 1:
            reg_user,reg_pwd = register()
            # print(a,b)
            with open("userinfo_blogs.txt", "r", encoding="UTF-8") as f:
                reg_flag = True
                for i in f:
                    i = i.split(":")
                    if reg_user == i[0]:
                        print("用户名已存在!")
                        reg_flag = False
                if reg_flag == True:
                    with open("userinfo_blogs.txt", "a", encoding="UTF-8") as f1:
                        f1.write(f"{reg_user}:{reg_pwd}\n")
                        print("注册成功!")
        elif num == 2:
            ret_login = login()
            if str(ret_login) == "3":
                print("您已经超过三次登录还未成功!")
                print("已退出程序!")
                break

        elif num == 3:
            if not flag:
                print("请先登录!")
                ret_login = login()
                if str(ret_login) == "3":
                    print("您已经超过三次登录还未成功!")
                    print("已退出程序!")
                    break
                article(ret_login)
            else:
                article(ret_login)
        elif num == 4:
            if not flag:
                print("请先登录!")
                ret_login = login()
                if str(ret_login) == "3":
                    print("您已经超过三次登录还未成功!")
                    print("已退出程序!")
                    break
                comment(ret_login)
            else:
                comment(ret_login)
        elif num == 5:
            if not flag:
                print("请先登录!")
                ret_login = login()
                if str(ret_login) == "3":
                    print("您已经超过三次登录还未成功!")
                    print("已退出程序!")
                    break
                diary(ret_login)
            else:
                diary(ret_login)
        elif num == 6:
            if not flag:
                print("请先登录!")
                ret_login = login()
                if str(ret_login) == "3":
                    print("您已经超过三次登录还未成功!")
                    print("已退出程序!")
                    break
                collection(ret_login)
            else:
                collection(ret_login)
        elif num == 7:
            if not flag:
                print("请先登录!")
                ret_login = login()
                if str(ret_login) == "3":
                    print("您已经超过三次登录还未成功!")
                    print("已退出程序!")
                    break
                log_off()
            else:
                log_off()
    elif num == '8':
        br_k = exit()
        try:
            eval(br_k)
        except SyntaxError:
            break
    else:
        print("请输入正确的序号!")

おすすめ

転載: www.cnblogs.com/zhangchaoyin/p/11221188.html