显示0和1的矩阵
编写一个使用以下标题显示n-by-n矩阵的函数:
Run Code Online (Sandbox Code Playgroud)def printMatrix(n):每个元素是
0或1,是随机生成的.写提示用户输入n,并显示一个测试程序n-by-n矩阵.这是一个示例运行:Run Code Online (Sandbox Code Playgroud)Enter n: 3 010 000 111
这是我的想法:
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)
你所拥有的问题是你生成一个值,然后重复打印,问题的简化版本就是这个
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那些.
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)
供参考。检查此文档有关列表理解
| 归档时间: |
|
| 查看次数: |
9757 次 |
| 最近记录: |