将随机生成的字符串分配给变量

时间:2018-01-19 18:37:12

标签: python variable-assignment

我正在尝试创建一个由3个部分组成的密码生成器。我能够生成一个随机字符串(例如tYVb)但是当我尝试将其存储为变量'mod'并尝试打印它时,该值的末尾附加了'None'(tYVbNone)。我如何只将字符串存储到我的变量中,以便我可以进一步操作它?

$ docker service ps --no-trunc webstack_p71   # check ERROR column

4 个答案:

答案 0 :(得分:1)

我就是这样做的(基于你到目前为止提供的内容):

from random import *

number = 4;

def myFunc(length):
    value = ''
    while length > 0:
        rndNumber = randint(0, 51)
        value += 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[rndNumber]
        length -= 1
    return value

mod = myFunc(number)
print (mod)

答案 1 :(得分:1)

如下所示,代码中存在一些错误或遗漏。我在下面的代码中提供了一些注释,以突出显示代码的潜在改进或突出显示一些新增内容。

from random import *

# you don't need a semi-colon after the 4
number = 4

def myFunc(length):

    # Since we are building a password, we want to start with an empty 
    #     password before the while loop.
    password = ''
    while length > 0:
        rndNumber = randint(0, 51)

        # This step builds a new password incrementally. As you go
        #     through the while loop, it adds a new character to the
        #     end of the password variable.
        password += 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[rndNumber]

        length -= 1
    return password

# you don't need to convert the output to a string using the code above
#     since the process builds a string.    
mod = myFunc(number)
print(mod)

正如Charles Duffy所提到的,random.choice()是一个更好的解决方案,使代码更加Pythonic:

random.choice()

此函数从一系列项目中随机选取(在引擎盖下,字符串被视为序列)。

可以在上面的代码中插入此代码段以帮助清理它。

letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
letter = random.choice(letters)
password += letter

答案 2 :(得分:0)

你的函数没有返回任何东西,并且在其中放入一个数字是没有用的,除非其中一个变量是全局的。我不确定你是否可以在定义内容的同一行上打印。运行代码似乎没有返回任何东西。尝试添加一个return语句。

答案 3 :(得分:0)

我认为编写您正在寻找的代码的最简洁方法是执行以下操作:

import random
letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

def myFunc(length):
    return ''.join([random.choice(letters) for x in range(0,length)])

然后你可以像这样调用函数:

x = myFunc(10)
print(x)

生成类似于zWAGjUyhEZ

的输出