我的程序会生成一个随机字符串,其中包含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'。我如何将此字符串存储为变量?
答案 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? 在这种情况下,_无处使用。