【问题标题】:want to use only one user define function for input and output in python 3+只想在 python 3+ 中使用一个用户定义函数进行输入和输出
【发布时间】:2021-07-01 02:11:51
【问题描述】:
from numpy import*
def row():
    for i in range(len(a)):
        for j in range(len(a[i])):
            t = [i, j]
            inp(*t)
def inp(*m):
    a[m] = int(input(f"entert the element of {m} = "))
    out(*m)
def out(*o):
    print(a[o])
a = zeros((1,2), dtype = int)
row()

输出显示如下:

enter the element of (0, 0) = 2
2
enter the element of (0, 1) = 3
3

但我想显示这样的输出

像这样一次输入

enter the element of (0, 0) = 2
enter the element of (0, 1) = 3

像这样一次输出

2
3

可以通过为输入和输出创建两个单独的 for 循环或两个函数来实现 但我的问题是:我怎么能只创建一个功能来做到这一点

def row():
    for i in range(len(a)):
        for j in range(len(a[i])):
            t = [i, j]
            inp(*t)

【问题讨论】:

    标签: arrays python-3.x user-defined-functions


    【解决方案1】:

    不要立即打印输出,而是保存值并在完成收集后打印它们:

    import numpy as np
    
    def row(a):
        values = []
        for i in range(len(a)):
            for j in range(len(a[i])):
                value = get_input(a, i, j)
                values.append(value)
        for value in values:
            print(value)
    
    def get_input(a, *m):
        a[m] = int(input(f"enter the element of {m} = "))
        return a[m]
    
    a = np.zeros((1,2), dtype = int)
    row(a)
    

    给予

    enter the element of (0, 0) = 1
    enter the element of (0, 1) = 2
    1
    2
    

    但是,还有一种更简单的方法:由于您还在矩阵中设置了新元素,因此您不必单独保存它们,只需打印出矩阵值即可:

    for item in a.ravel():
        print(item)
    

    【讨论】:

    • 非常感谢亲爱的,其实我是python编程的新手,请多多指教
    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多