感谢您花时间准备我的问题。
目前我正在为一个班级创建一个方法,下面是我到目前为止所做的。
def scramble_words_password(self, words):
if words:
words = words.split()
words_count = range(len(words))
while True:
num = random.choice(words_count)
del(words_count[num])
password = [letter for letter in list(words[num])]
几个月前,我遇到了一个教程,解释了如何将函数赋值给变量,并在它们上使用随机的东西,但我又找不到了......
在我的函数/方法中我想要的是一种随机使用letter.lower()
和letter.upper()
来理解我的函数/方法底线的方法,但我怎样才能实现这一点并仍然保持这一切都在理解中。
仅供参考,我知道ATM功能是一个无限循环,所以请不要说聪明的话;)
答案 0 :(得分:1)
用户random.choice
对要调用的方法列表:
def scramble_words_password(self, words):
if words:
words = words.split()
words_count = range(len(words))
words_funcs = [str.upper, str.lower]
while True:
num = random.choice(words_count)
del(words_count[num])
password = [random.choice(words_funcs)(letter) for letter in list(words[num])]
主调用解释random.choice(words_funcs)(letter)
将从列表中选择一个随机元素,因为它们是可以将字母传递给它们的可调用对象。请记住,字符串(也包括其他内置类型)中的所有方法都可以静态调用,因此使用str.lower
和str.upper
的列表都可以。
答案 1 :(得分:0)
函数名称的作用与变量非常相似。您可以将它们作为参数传递给其他函数或创建函数列表。我建议你创建一个函数列表并随机选择一个列表元素。