亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于從標準輸入隨機化的Python問題

關于從標準輸入隨機化的Python問題

猛跑小豬 2023-08-22 18:23:55
我的問題是,在我的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


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號