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

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

如何從用戶輸入中捕獲矩陣并在用戶輸入時將其打印出來?

如何從用戶輸入中捕獲矩陣并在用戶輸入時將其打印出來?

蝴蝶不菲 2023-08-08 17:05:08
我正在用 numpy 嘗試創建一個 3x3 矩陣。我想通過用戶輸入捕獲矩陣輸入,然后在用戶輸入時打印出矩陣。這就是我現在所擁有的,它會拋出一個ValueError: invalid literal for int() with base 10: 當我運行它時,我不知道為什么。我不會在任何地方輸入字母“a”,而只會輸入數字。def matrix():    row = int(3)    column = int(3)    matrix_input = []    print("Enter the entries in a single line (separated by space): ")    for i in range(row):  # A for loop for row entries        entries = []        for j in range(column):  # A for loop for column entries            entries.append(int(input()))        matrix_input.append(entries)    # matrix_input = np.array(entries).reshape(row, column)    print(matrix_input)目標是讓用戶在三個單獨的行上輸入 3 個數字。例子:130304603然后,程序會按照用戶輸入的內容以相同的格式準確地輸入該內容。130304603任何指導將不勝感激。謝謝
查看完整描述

4 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

現在,您的代碼分別要求每個元素。如果你輸入數字直到它像這樣結束


111

222

333

444

555

666

777

888

999

程序將返回


[[111, 222, 333], [444, 555, 666], [777, 888, 999]]

發生這種情況是因為input()位于最內層循環內,因此被調用了 9 次。


因此,如果您想輸入所示的由空格分隔的值,您可以使用列表理解將其轉換為數字列表:


row = int(3)

matrix_input = []

print("Enter the entries in a single line (separated by space): ")

for i in range(row):  # A for loop for row entries

    matrix_input.append([int(k) for k in input().split(' ')])


for out in matrix_input:

    print('{0} {1} {2}'.format(*out))

這將要求三個條目,這些條目沿空格分割并轉換為整數。如果你想要浮動,你可以使用float(k)而不是int(k)。print 命令使用解包并返回行for ... in。


或者,您可以使用' '.join(),它更靈活:


for out in matrix_input:

    print(' '.join([str(el) for el in out]))

這實際上是構造矩陣的逆運算。


查看完整回答
反對 回復 2023-08-08
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

def matrix(): 

    row = int(3)

    column = int(3)

    matrix_input = []

    print("Enter the entries in a single line (separated by space): ")


    for i in range(row):  # A for loop for row entries

        ints =input()


        entries = []


        for a in ints:

          entries.append(int(a))

        matrix_input.append(entries)


    for ele in matrix_input:

      for d in ele:

        print(d,end='')

      print('')


matrix()

輸入:


Enter the entries in a single line (separated by space): 

130

304

603

輸出:


130

304

603


查看完整回答
反對 回復 2023-08-08
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

問題是您試圖將整個字符串(每個 int 之間有空格的輸入)轉換為整數。


相反,您需要拆分輸入。見下文:


def matrix():

    row = int(3)

    column = int(3)

    matrix_input = []

    print("Enter the entries in a single line (separated by space): ")

    

    input_str = input()

    

    entries = []

    entries.extend([int(x) for x in input_str.split(' ')])

    

    for item in entries:

        print(item)


查看完整回答
反對 回復 2023-08-08
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

這可以解決問題。


def matrix():

    row = int(3)

    column = int(3)

    matrix_input = []

    print("Enter the entries in a single line (separated by space): ")

    for i in range(row):  # A for loop for row entries

        # ints = input().split()

        while True:

            ints = input().split()

            if len(ints) == 3:

                break

            print("Invalid Input Received")

            print("Enter the entries in a single line (separated by space): ")

        entries = []

        for a in ints:

            entries.append(int(a))

        matrix_input.append(entries)

    print("Output")

    for ele in matrix_input:

        for d in ele:

            print(d, end=' ')

        print('')


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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