1

我刚刚写了这段代码,想知道是否有任何方法可以优化打印输出。我尝试使用 .format() 来包含总数和“偶数”或“奇数”。如果我只是在调用之前将函数的返回值分配给一个变量,我可以限制为一个打印语句吗?

基本上这个代码你输入一个二维数组,它会返回总值。

def evenrow(TwoDArray):
    counter = 0
    counterTwo = 0
    lengthArray = len(TwoDArray)
    lengthList = len(TwoDArray[0])
    while counter < lengthArray:
        while counterTwo < lengthList:
            value = TwoDArray[counter][counterTwo]
            value += value
            counterTwo += 1
        counter += 1
    return value

TwoDArray = eval(input("Enter a 2D array: "))
print('Total Value: ', evenrow(TwoDArray))
if evenrow(TwoDArray) % 2 == 0:
    print('Even or Odd: Even')
else:
    print('Even or Odd: Odd')

输出示例:

Enter a 2D array: [[0,2],[1,1]]
Total Value:  4
Even or Odd: Even

谢谢!

4

1 回答 1

0

欢迎来到 StackOverflow!我希望你在这里过得愉快。

至于你的问题 - 像馅饼一样简单:

ret = evenrow(TwoDArray)
if ret % 2 == 0:
    print('Total Value: %d\nEven or Odd: Even' % ret)
else:
    print('Total Value: %d\nEven or Odd: Odd' % ret)

我什至可以做得更好,并使用 Python 等效的三元运算符将其简化为一行:

ret = evenrow(TwoDArray)
print('Total Value: %d\nEven or Odd: %s' % (ret, 'Odd' if ret % 2 else 'Even'))

无论如何,您都希望保存返回值。想象一下,如果evenrow()是一个计算量很大的操作——你肯定不想运行它两次。

于 2013-10-23T05:20:17.970 回答