0

リストボックスの個々の行ごとに新しいパスワードを作成するパスワードジェネレーターを作成しようとしています。名前が入力されたリストボックスがあり、リストにある名前の数とそれぞれの名前をカウントするループを取得しようとしていますパスワードを作成します。ループがどのように見えるかを理解しようとしているパスワードジェネレーターがあります。

これが私がこれまでに持っているものです。

from tkinter import *
import os, random, string

appWin = Tk() #the main application window
lstBoxArray = [] #an atrray to hold all the listboxes

def passWord():
    length = 8
    chars = string.ascii_letters + string.digits
    random.seed = (os.urandom(1024))
    psword = ''.join(random.choice(chars) for i in range(length))
    print(psword)
    #this section generates a random 'code' which is the password
    #at the moment it is still a stub hence the print command at the end.

stdName = Listbox(frm) #listbox populated by names
stdUserName = Listbox(frm) #listbox where a login username is shown
stdPass = Listbox(frm) #listbox where the passwords will be placed
lstBoxArray = [stdName, stdUserName, stdPass]

scrBar.config(command=setlstBoxYview)          ##
stdName.config(yscrollcommand=scrBar.set)
stdUserName.config(yscrollcommand=scrBar.set)
stdPass.config(yscrollcommand=scrBar.set)
                                              # these are just configuring the listboxs
stdName.grid(column=1,row=0,sticky='NS')
stdUserName.grid(column=4,row=0,sticky='NS')
stdPass.grid(column=5,row=0,sticky='NS')
scrBar.grid(column=6,row=0,sticky='NS')
frm.rowconfigure(0,weight=1)                  ##

したがって、基本的に私のstdNameリストボックスには約28の名前が入力されており、stdUserNameリストボックスと同じです。名前の数を数え、それぞれにパスワードを作成するループを作りたかったのです。

このようなもの。

def passGen():
    for i in range(stdName.size()): #this counts how many names there are
        'until there is the same number of pswords as there are i'
        loop the passWord and 
        stdPass.insert(END, passWord) each time it loops
        stop when stdPass == stdName

^^これは明らかにコードではありませんが、私が取得しようとしているものです^^そして私の目標は、passGenをボタンにリンクすることです。私は自分のすべてのコードを含めていませんが、それは本当に関連性があるわけではありませんが、これについて助けていただければ幸いです。

ps スペル ミスがある場合は申し訳ありません。私は英語のネイティブ スピーカーではありません。

4

1 に答える 1

0

passWordの最後の行を編集してパスワードを返す (出力するのではなく) と仮定すると、次のpassGenように簡単になります。

def passGen():
     for i in range(stdName.size()):
        stdPass.insert(END, passWord())

名前の数と同じ数のパスワードを作成すれば、同じ数になることが保証されます。

name 列の数と一致するように password 列を埋めていると考えると、while ループが意図をよりよく反映する可能性があります。

def passGen():
    while stdPass.size() < stdName.size():
        stdPass.insert(END, passWord())
于 2012-05-08T12:47:39.063 に答える