关于从标准输入随机化的Python问题

  1. 我的问题是,在我的r.py文件中,它需要两个命令行参数(随机数生成器种子和随机移动数),我试图从标准输入文件中读取并以 3x3 输出格式打印输出板这就像标准输入文件,除了随机化之外。标准输入文件仅包含 3x3 格式的值,例如

123
456
789

每 3 个数字后换行,就像矩阵一样。

  1. 我曾经sys.stdin读取我的输入文件,但如何正确使用它,以便我可以随机化输入文件的值(3x3 格式,每 3 个数字后换行:123 456 789)以达到我想要的应该随机化的输出文件但与输入文件一样采用 3x3 格式。

  2. 这是我到目前为止所拥有的。我可以让它打印原始输入文件,但在打印时无法将其随机化。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-


import sys, random

dinput=sys.stdin.read()


if (len(sys.argv) != 3):

    print()

    print("Usage: %s [seed] [number of random moves]" %(sys.argv[0]))

    print()

    sys.exit(1)


def main():

    random.seed(int(sys.argv[1]))

    number_of_moves = int(sys.argv[2])


    for x in range(number_of_moves):

        move = random.randrange(8) 

        print(move)

        print(dinput)      


main()


猛跑小猪
浏览 89回答 1
1回答

动漫人物

将输入转换为列表,使用random.shuffle()对其进行洗牌,然后将其转换为 3x3 网格的嵌套列表。您可以使用input()从标准输入一次读取一行。nums = []for _ in range(3):    line = input() # read a line    for c in line: # turn each character into a list element        nums.append(c)random.shuffle(nums)board = [nums[i:i+3] for i in range(0, len(nums), 3)] # convert the flat list to a 3x3 grid
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python