我的问题是,在我的r.py文件中,它需要两个命令行参数(随机数生成器种子和随机移动数),我试图从标准输入文件中读取并以 3x3 输出格式打印输出板这就像标准输入文件,除了随机化之外。标准输入文件仅包含 3x3 格式的值,例如123
456
789每 3 个数字后换行,就像矩阵一样。我曾经sys.stdin读取我的输入文件,但如何正确使用它,以便我可以随机化输入文件的值(3x3 格式,每 3 个数字后换行:123 456 789)以达到我想要的应该随机化的输出文件但与输入文件一样采用 3x3 格式。这是我到目前为止所拥有的。我可以让它打印原始输入文件,但在打印时无法将其随机化。#!/usr/bin/env python3# -*- coding: utf-8 -*-import sys, randomdinput=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()
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
将输入转换为列表,使用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
添加回答
举报
0/150
提交
取消