Python模块函数仅返回单个字符而非指定长度的修复求助
问题解决:函数仅返回单个字符的原因与修复方案
你的两个函数出现返回单个字符的问题,核心原因是**return语句缩进错误**——你把它放在了for循环的代码块内部,导致循环刚执行第一次迭代就直接返回了结果,根本没完成后续的循环次数。
修正后的模块代码如下:
import random def password_generator(): big_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" small_alphabet = "abcdefghijklmnopqrstuvwxyz" digits = "0123456789" generator = big_alphabet + small_alphabet + digits random_password = '' for p in range(15): random_password += random.choice(generator) # 把return移到循环外面,等循环完成所有迭代后再返回 return random_password def secret_question_generator(): digits = "0123456789" generator = digits random_index = '' for i in range(5): random_index += random.choice(generator) # 同理,return放在循环外 return random_index
修改后,调用方式不变:
random_password = generator.password_generator() random_index = generator.secret_question_generator()
此时password_generator会返回长度为15的随机字符串,secret_question_generator会返回长度为5的随机数字串。
内容的提问来源于stack exchange,提问作者Anatolij Rojs
相关产品推荐
相关产品推荐

