在 python 中用 while 循环重复一个程序
Reapeating a program with a while loop in python
我在程序末尾创建了一个 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
您仅在调用 repeat()
一次后就跳出了 while
循环。
去掉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 秒。
while 循环将仅在满足参数时循环遍历在循环内编写的任何代码。在您的情况下,虽然 true 会重复,但如果 false 则不会。如果您想更改循环的内容,请更改循环参数中的内容。
第一步是清理代码。密码的创建归结为:
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
的原因)并且我不确定这是否是您希望程序执行的操作。您可能想澄清您的问题并解释“if it's an empty string”中的“it”是什么。
我在程序末尾创建了一个 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
您仅在调用 repeat()
一次后就跳出了 while
循环。
去掉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 秒。
while 循环将仅在满足参数时循环遍历在循环内编写的任何代码。在您的情况下,虽然 true 会重复,但如果 false 则不会。如果您想更改循环的内容,请更改循环参数中的内容。
第一步是清理代码。密码的创建归结为:
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
的原因)并且我不确定这是否是您希望程序执行的操作。您可能想澄清您的问题并解释“if it's an empty string”中的“it”是什么。