如何在Python中将for循环的结果赋给变量

时间:2018-04-17 20:36:52

标签: python

我的程序会生成一个随机字符串,其中包含10到20个随机字母。

def program():
    import random
    import sys
    x=['q','w','e','r']
    y=random.randint(10,20)
    for t in range (0,y):
       w=random.randint(0,3)
       e=x[w]
       sys.stdout.write(e)

该程序将打印一个随机字符串,如'wwwweewwqqrrrrwwqqeeqqww'。我如何将此字符串存储为变量?

6 个答案:

答案 0 :(得分:3)

将其存储在变量中而不是写入:

e=''

for t in range (0,y):
    w=random.randint(0,3)
    e += x[w]

e是一个空变量,每次向其添加值x[w]

我还建议您使用print()而不是sys.stdout.write(e),因为您不需要额外的导入 - 例如sys,内置了print()

在这种情况下,我可以建议使用x=['q','w','e','r']的元组,因为它们更快。所以:x=('q','w','e','r'1)

但是如果您稍后需要修改它,那么这不是您可以使用的选项(因为它们是不可变的)。

答案 1 :(得分:3)

您可以使用列表推导替换循环,并使用join()

e = ''.join([random.choice(x) for _ in range(0, y)])

输出:

qwewwwereeeqeqww

答案 2 :(得分:2)

template <class S> jp<T> ( const jp<S>& s ) 

答案 3 :(得分:1)

如果您愿意,可以program()返回输出变量,如下所示:

def program():
    import random
    import sys
    x=['q','w','e','r']
    y=random.randint(10,20)
    output = ''
    for t in range (0,y):
        w=random.randint(0,3)
        e=x[w]
        output+=e
    # The print is stored in 'output'

    # Return the output
    return output
result = program()

答案 4 :(得分:1)

一种简单的方法是创建一个新的字符串变量,并使用WORKDIR / COPY startup.sh / RUN chmod 755 /startup.sh ENTRYPOINT sh /startup.sh /usr/sbin/init 运算符将每个字符连接到一个新字符串上。你的代码可能是

+=

此代码只是将每个字符添加到for循环中的字符串变量 def program(): import random import sys x=['q','w','e','r'] y=random.randint(10,20) z = ''; for t in range (0,y): w=random.randint(0,3) e=x[w] z += e; ,并且该字符串值应存储在z中。

答案 5 :(得分:1)

类似的东西(没有测试过这个程序,应该工作......着名的最后一句话)。

# imports at start of file, not in def
import random
import sys

# I would never call a def 'program', kind of generic name, avoid
def my_program():  # camel case, PEP-8
    x=['q','w','e','r']
    z=''  # initialize result as an empty string
    for _ in range (0, random.randint(10,20)):
       z+=x[random.randint(0,3)]  # add a letter to string z
    return z  

&#34; _&#34;通常用于丢弃变量,请参阅What is the purpose of the single underscore "_" variable in Python? 在这种情况下,_无处使用。