7

Pythonを使用してログインシステムを作成したいと思います。

これは私が行っている小さなプロジェクトであり、私が把握し、最終的にこれを私が作成しているプロジェクトpythonに送信できるようにするためです。webpage

今のところ私はこれを持っています:

user = raw_input('Create Username: ')
password = raw_input('Create Password: ')
store_user =[roger, Jon]
store_pass =[tennis, soccer]

store_user.append(user)
store_pass.append(password)

if user in store_user:
    print "That user already exsist"

while 1 == 1:
    userguess=""
    passwordguess=""
    key=""
    while (userguess != user) or (passwordguess != password):
        userguess = raw_input('User Name: ')
        passwordguess = raw_input('Password:')

    print "Welcome,",user, ". Type Lock to Lock or Type Create to create another user."
    print store_user
    print store_pass

    while key != "lock":
        key = raw_input("")

これにより、ユーザー名とパスワードを作成し、それらをリストに保存できます。私はそのifステートメントをスローして、リストをチェックし、ユーザーがすでに存在するかどうかを確認しました(ただし、それは機能しないと思います)

全体をループさせる方法について少しガイダンスが必要です。たとえば、ログインがあるかどうかを選択し、ログイン後に別のユーザーを作成するオプションがあり、そのユーザーかどうかを確認します。すでに存在します。

本当にありがとう!

4

3 に答える 3

5

ステップバイステップで行きましょう:

まず、ユーザーを追加しているので、ユーザーが存在するかどうかを確認すると、常に存在することがわかります。次に、ユーザーが存在するかどうかを確認します。store_user.appendしたがって、あなたが書いたifステートメントはOKですが、 :の前に置いてください。

if user in store_user:
    print "That user already exsist"
else:
    store_user.append(user)
    store_pass.append(password)

第二に、あなたが書いた条件while 1 == 1:は役に立たない(しかしそれでも正しい)、あなたはwhile 1(1がTrueと評価されるので)またはもっとwhile True:簡単に行うことができます。

第三に、ユーザー名/パスワードチェックは最後のユーザーとパスワードのみをチェックします。パスワードに同じものを使用した場合userguess in store_user、期待した結果は得られません。したがって、リストの代わりに辞書を使用する必要があります。これらを使用して、値にキーを割り当てることができます。あなたの場合、ユーザーはパスワードを使用するので、次のようになります。

store = dict()
# the code to get the user/password
store[user] = password # you "save" the value password for the key user

# then to check:
while not (userguess in store and store[userguess] == passwordguess):
   # try again

辞書についてもっと読む。

次に、各「論理」プロシージャを関数に格納して、コードを読みやすく再利用できるようにします。例えば:

def add_user(store):
    user = raw_input('Create Username: ')
    password = raw_input('Create Password: ')
    if user in store:
        print "That user already exsist"
        return False
    else:
        store[user] = password
        return True

# and call this 10 times for example...
global_store = dict()
for i in range(10):
    add_user(global_store)

(クラスの使用などは言うまでもありません)パスワードの確認部分についても同じことを行い、少し変更を加えたループを使用して、期待どおりの処理を行うことができます...

私は明確であり、私が助けたことを願っています:)

于 2012-04-24T20:11:36.340 に答える
3

これはおそらくあなたが期待していた答えではありませんが、次のようになります。車輪を再発明しないでください。

可能な限り既存のツールを使用し、無料では得られない機能に重点を置きます。

于 2012-04-25T07:45:39.267 に答える
2

これは良いスタートです。http://www.greenteapress.com/thinkpython/をチェックすることをお勧めします。辞書のようなデータ構造を使用すると、このタスクが大幅に簡素化されます。

アイテムが既にリストにあるかどうかを確認するには、それを反復処理できます。

for item in list:
    if input == item:
        # item is in list
        break
    # item is not in list

コードを関数にモジュール化することも役立つ可能性がある戦略です。たとえば、ユーザーが登録されている場合に True を返す check_name 関数を使用できます。

def check_user(user, user_list):
    for item in list:
        if user == item:
            return True
            break
        return False

Python: ケースに関係なく、値がリスト内にあるかどうかを確認します

最終的にプロジェクトをオンラインで提供する場合は、Django や Flask などのフレームワークを調べてください。ログインやユーザーの管理などが大幅に簡素化されます。頑張ってください。

于 2012-04-24T19:49:34.757 に答える