如何每次随机获得0或1?

时间:2015-01-05 17:10:15

标签: python random

显示0和1的矩阵

  

使用以下内容编写显示n×n矩阵的函数   头:

def printMatrix(n):
     

每个元素都是01,它是随机生成的。写一个测试   提示用户输入n并显示n的程序 - { - 1}}   矩阵。这是一个示例运行:

n

这是我的想法:

Enter n: 3 
010 
000 
111

3 个答案:

答案 0 :(得分:7)

你所拥有的问题是你生成一个值然后重复打印,问题的简化版本就是这个

k = random.randint(0, 1) # decide on k once
for _ in range(n):
    print(k) # print k over and over again

这将生成k,然后将其打印n次,但您想要的是生成每次打印的新值

for _ in range(n):
    k = random.randint(0, 1) # decide on a k each time the loop runs
    print(k)

您可以使用嵌套列表理解来生成矩阵本身(此时可能比您想知道的更多,但值得展示)

[[random.randint(0, 1) for _ in range(n)] for _ in range(n)]

内部[random.randint(0, 1) for _ in range(n)]将为您提供0-1范围内的n值。嵌套在另一个理解中为你提供n

答案 1 :(得分:4)

from random import randint
n = int(input ("Enter an interger number:"))
matrix = (
    [str(randint(0, 1)) for _ in range(0, n)] for _ in range(0, n)
)
for row in matrix:
    print "".join(row)

FYI。查看有关list comprehension

的文档

答案 2 :(得分:-1)

def printMatrix(n):

        return n + 0


def main():

     n = int(input ("Enter an interger number:"))

    matrix = ([str(randint(0, 1)) for _ in range(0, n)] for _ in range(0, n))

    for row in matrix:

         print(" ".join(row))

main()