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

B-Y*_*B-Y 0 python random

显示0和1的矩阵

编写一个使用以下标题显示n-by-n矩阵的函数:

def printMatrix(n):
Run Code Online (Sandbox Code Playgroud)

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

Enter n: 3 
010 
000 
111
Run Code Online (Sandbox Code Playgroud)

这是我的想法:

from __future__ import print_function

from random import randint, choice

import random

def printMatrix (n):
    n = 1
    matrix = (
    [str(randint(0, 1)) for _ in range(0, n)] for _ in range(0, n)
       )
    for row in matrix:
       print(" ".join(row))


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

main()
Run Code Online (Sandbox Code Playgroud)

Rya*_*ing 7

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

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

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

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

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

[[random.randint(0, 1) for _ in range(n)] for _ in range(n)]
Run Code Online (Sandbox Code Playgroud)

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


mar*_*ial 5

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)
Run Code Online (Sandbox Code Playgroud)

供参考。检查此文档有关列表理解