代码生成器帮助-不会按我想要的顺序停下来

时间:2019-01-10 05:03:06

标签: python-3.x

我制作了一个python随机序列生成器,我可以告诉它序列的最大长度可以,但是我希望它在特定序列处停止...我花了几天的时间寻找一种方法来执行此操作。

我让生成器做我想做的事,制作一个随机字母(大写和小写)和数字序列(我可以手动更改最大值),并且这样做了,所以它将使用while循环永远运行。搜索了几天,以我想要的方式获得它,但无法正常工作。

import string, random

while True :
    def id_generator(size=2, chars=string.ascii_uppercase + 
string.ascii_lowercase + string.digits):
        return ''.join(random.choice(chars) for _ in range(size))
    if id_generator() == "2g":
        break
        print("found your code")
    else :
        print(id_generator())

“大小”使序列可以达到最大值。我想让if语句说出它是否创建了“ 2g”,然后停止并说“找到您的代码”,否则就继续生成...我认为这与if语句有关

2 个答案:

答案 0 :(得分:1)

首先,不要在while循环中定义函数。在其他地方定义它,然后在while内调用它。

下一步,在调用函数后,将其值分配给变量,并让条件语句使用该值。

答案 1 :(得分:0)

我终于明白了...

function duplicateEncode(word){
	let m = new Map();
        let splitString= word.split("");
	let coded = "";
	splitString.map( s => {
		if(!m[s]){
			m[s] = true
			coded += "("
		} else {
			coded += ")"
		}
	})
	return coded
}
console.log(duplicateEncode("stack"))