如何在字符串中添加单词?

how can i add a word in a string?

所以我正在尝试在 Python 中制作一个登录和注册程序,我已经制作了注册部分,但现在我正在为登录部分而苦苦挣扎。 和一个自制的简单数据库,使用 类 来存储数据。 有两个文件: 一个用于数据库和注册和登录程序,注册和登录程序读取数据库。

这是当前登录码:

username = input("Enter your username: ")
if username == "(acc_info." + username + ".username)":
    print("Valid username")

当然没用

acc.info是数据库

这是数据库

class Accounts:
    def __init__(self, username, pw, is_admin):
        self.username = username
        self.pw = pw
        self.is_admin = is_admin

    def full_info(self):
        return '{} {} {}'.format(self.username, self.pw, self.is_admin)

admin = Accounts('admin', '5555', True)

我期待名为 username 的输入得到一个类似 admin 的用户名,当我按下输入时 运行s (acc_info.admin.username) 并且输出将是 admin 如果输入与输出相同,它会将我发送到下一部分,即密码,但如果我知道如何做用户名,我也可以做密码部分。

但现在输出是 (acc.info.admin.username) 并且程序检查输入(admin)是否与 (acc.info.admin.username) 相同。它不起作用,因为输出 (acc.info.admin.username) 应该 运行 并给我 admin

的输出

检查 if username == "(acc_info." + username + ".username)" 永远不会通过。这是在询问用户输入的字符串是否与连接“(acc_info.”、用户输入的内容和“.username)”时得到的字符串相同。因此,如果用户键入“bob”,它会比较字符串 "bob" 和“(acc_info.bob.username)”。这两个字符串明显不同。

我不完全清楚你的 "database" 和 "(acc_info ..." 应该如何适合你正在尝试做的事情。但这是一个工作示例一些登录和检查:

class Accounts:
    def __init__(self, username, pw, is_admin):
        self.username = username
        self.pw = pw
        self.is_admin = is_admin

    def full_info(self):
        return '{} {} {}'.format(self.username, self.pw, self.is_admin)

    def __eq__(self, other):
        return (self.username == other.username and self.pw == other.pw)

def check_account(entered, account_list):
    for account in account_list:
        if entered == account:
            return account
    return False


accounts = [ Accounts('admin', '5555', True),
             Accounts('bob', '1234', False),
             Accounts('jill', '4321', False),
             Accounts('hacker', '123', False)]

entered_username = input("Enter your username: ")
entered_password = input("and your password: ")

entered_account = Accounts(entered_username, entered_password, None)

matched_account = check_account(entered_account, accounts)

if matched_account:
    print("Welcome, %s" % matched_account.username)
    if matched_account.is_admin:
        print("And I see you're an actual admin! Wow!")
else:
    print("Invalid username/password.")

当然,这不是我在现实生活中使用的完整方法(例如,其中一些步骤不仅不安全,而且不是最节省内存的)。但同样,它至少看起来符合您的要求。