擅长:python、mysql、java
<p>两个原因:</p>
<ul>
<li>放弃创建的字符(通过重新指定为相同的名称)</li>
<li>您只返回第一个字符(通过在循环内部返回)</li>
</ul>
<p>相反,请考虑:</p>
<pre><code>import string
import random
def random_characters(number):
i = 0
random_chars = []
while (i < number) :
random_chars.append(random.choice(string.ascii_lowercase)) # Store the char you generate
i = i + 1
return ''.join(random_chars) # Return once you have all the characters
</code></pre>
<p>当然,这不是最Python式的方法。这里有一种方法不会在人工条件下循环:</p>
^{pr2}$
<p>注意:这称为<a href="http://docs.python.org/2/reference/expressions.html#generator-expressions" rel="nofollow">generator expression</a></p>