我while True在程式末尾創建了一個回圈,以及一個repeat()檢查它是否為空字串的函式,如果在回圈中運行,它應該重新啟動程式。對?我不確定它是否特定于版本...
import string
import random
ascii = string.ascii_letters
digits = string.digits
punct = string.punctuation
characters = ascii digits punct
def repeat():
check = ""
if check.upper() == "":
print(password)
myList = list(characters)
random.shuffle(myList)
passwordraw = myList[:15]
password = ''.join(map(str, passwordraw))
while True:
repeat()
break
uj5u.com熱心網友回復:
第一步是清理代碼。密碼的創建歸結為:
import random
import string
def main():
characters = list(string.ascii_letters string.digits string.punctuation)
random.shuffle(characters)
password = ''.join(characters[:15])
print(password)
if __name__ == '__main__':
main()
您的描述在您要檢查的內容中??不太清楚。目前我假設您希望用戶輸入密碼并重復密碼生成和檢查的整個程序,直到生成的密碼與用戶的輸入相匹配。
def main():
characters = list(string.ascii_letters string.digits string.punctuation)
while True:
random.shuffle(characters)
password = ''.join(characters[:15])
print(password)
password_input = input('Enter the password: ')
if password == password_input:
break
現在只有輸入正確的隨機密碼(15 個不同的字符)才能退出回圈。您不太可能做到這一點(這就是我將 留print在代碼中的原因),而且我不確定這是否是您希望程式執行的操作。您可能想澄清您的問題并解釋“如果它是空字串”中的“它”是什么。
uj5u.com熱心網友回復:
僅while呼叫repeat()一次后,您就退出了回圈。去掉 break 可以repeat()在回圈中不斷呼叫方法。
簡單地說:
while True:
repeat()
旁注:repeat()如果您喜歡的話,我會在呼叫后添加某種延遲。就像是:
# don't forget to import time
import time
# the rest of your code
while True:
repeat()
time.sleep(3) # Sleep for 3 seconds
現在您的程式將在repeat()再次運行后等待 3 秒。
uj5u.com熱心網友回復:
只有在滿足引數時,while 回圈才會遍歷回圈內撰寫的任何代碼。在你的情況下,雖然它是真實的,但當它是假的時候它不會重復。如果要更改回圈的內容,請更改回圈引數中的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/405899.html
標籤:
