填写程序

时间:2010-12-17 02:25:58

标签: python

Python随机模块中的randint(a,b)函数返回a到b范围内的“随机”整数,包括两个终点。填写下面函数中的空白,该空白创建并返回0和1的长度为n的随机字符串。

from random import randint:
def randString01(n):
    _________________
    _________________
    for count in range(n):
        __________________
    return________________

(编辑:导入语句末尾的:不属于;但是,如原始问题中所示。)

...到目前为止,我发现如何将n转换为n长度的字符串(所以n n的字符串)我想知道randint适用于哪里? 到目前为止我已经

from random import randint
def randString01(num): 
    x = str() 
    count = num 
    while count >0: 
        if randint(0,1) == 0: 
            append.x(0)   
        else: 
            append.x(1) 
        count -= 1
    x=str(x) 
    return x

但它不起作用。我该怎么办?

4 个答案:

答案 0 :(得分:5)

由于这是作业,我不会给你答案,但这里有一些主要的问题:

  • 你如何使用randint(a,b)给你0或1?
  • 如何将整数转换为字符串?
  • 如何使用for循环构建字符串?

如果你能回答这些问题,你就解决了这个问题。

答案 1 :(得分:2)

在for循环中。

答案 2 :(得分:1)

因为它显然是类作品,所以这里有一些伪代码:

define randString01(num):
    set str to ""
    count = num
    while count is greater than zero:
        if randint(0,1) is zero:
            append "0" to str
        else:
            append "1" to str
        subtract one from count
    return str

顺便说一下,n出现的n字符from random import randint def randString01(num): x = str() ## <-- ??? count = num while count > 0: if randint(0,1) == 0: append.x(0) ## <-- ??? else: append.x(1) ## <-- ??? count -= 1 x = str(x) ## <-- ??? return x 字符串对此无济于事。它将为您提供零大小的“0”字符串或一个大小的“1”字符串。换句话说,所有的。


好的,你评论中的内容似乎没问题(至少在结构上):

str()

但我对你的append()from random import randint def randString01(num): x = "" count = num while count > 0: if randint(0,1) == 0: x = x + "0" else: x = x + "1" count -= 1 return x print randString01(7) ## And add these to call the function. print randString01(7) print randString01(9) print randString01(9) 行有点不确定。既然你已经完成了大部分工作,那么这是我在Python下实现这一目标的一些小改动:

1011000
1010011
110001000
110101001

输出:

{{1}}

答案 3 :(得分:0)

如果您不必使用上面的确切语法,可以使用1行代码完成。

概念:

string.join采用可迭代的方式 您可以通过将for循环内联到列表解析

来创建可迭代的随机字符串

结果代码如下。

''.join([str(random.randint(0,1)) for i in range(n)])