我的問題是,在我的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
提交
取消