好的,我现在正在为我创建的加密添加一些复杂性。 我正在实现一个While循环,从我创建的字典中生成一定数量的字符。然后检查字符是否添加到变量中,然后在达到所需字符数量后终止while循环。由于某种原因,while循环永远不会终止,即使我使用return 0或break等等。
Alphabet = ["a", "b", "c", "d", "e", "f" "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", '/', '.', ',', '\'', ';', '\\', ']', '[', '{', '}', '|', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '-', '0', '0', '2', '3', '4', '5', '6', '7', '8', '9']
while True:
generaterandom = random.SystemRandom.choice()
calc0 = len(generaterandom)
print(generaterandom)
calc02 = 10
if generaterandom == "10":
break
答案 0 :(得分:0)
if generaterandom == "10":
这是您的问题,您正在检查generaterandom
是否为值为10
的字符串,您要执行的操作是在它达到10个字符时结束,所以您需要将您的if语句更改为:
if len(generaterandom) == 10:
break
这会改变它以检查变量generaterandom
中的字符数是否等于10,当它等于10时,你的循环将会中断。
如果这不起作用,则重构循环以使其适用于变量,例如:
loop = True
while loop:
开始并结束它:
if len(generaterandom) == 10:
loop = False
答案 1 :(得分:0)
尝试重构 While 循环,如下所示:
Alphabet = ["a", "b", "c", "d", "e", "f" "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", '/', '.', ',', '\'', ';', '\\', ']', '[', '{', '}', '|', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '-', '0', '0', '2', '3', '4', '5', '6', '7', '8', '9']
bool = 1
while bool == 1:
generaterandom = random.SystemRandom.choice()
calc0 = len(generaterandom)
print(generaterandom)
calc02 = 10
if len(generaterandom) == "10":
bool = 0