需要帮助在单独的行上返回数字

时间:2019-04-29 01:28:01

标签: python

我是学习python的新手。我目前正在研究一个问题,该问题如何返回将多少个鸡蛋装进一个纸箱(1个纸箱==一打鸡蛋),以及根据特定输入剩下多少鸡蛋。挑战要我在一行上打印纸箱数量,在另一行上打印多少鸡蛋。

例如:

如果输入为25,则程序应打印:

2

1

我获得了正确的输出,只是我在输出挑战时遇到了麻烦。

基本上,我创建了一个函数来进行计算,然后返回输出。代码如下。

    eggs = int(input())

    def dozen(x):
       y = x // 12
       z = x % 12
       return y, z

    a = dozen(eggs)

    print(a)

我在输入25上收到的输出是:

(2, 1)

但是如前所述,我需要做到:

2

1

我感谢您提供的任何帮助。预先谢谢你!

3 个答案:

答案 0 :(得分:0)

您可以索引元组以单独打印:

print(a[0])
print(a[1])

或者,打开元组的包装并将sep设置为'\n'

print(*a, sep='\n')

或者(另一种选择!),提前打开元组的包装:

a, b = dozen(25)
print(a)
print(b)

您也可以像下面这样使用divmod来使代码更好:

def dozen(x):
   return divmod(x, 12)

由于整数除法和模运算本质上是相同的运算,因此可以一次性完成。

答案 1 :(得分:0)

您可以执行以下任一操作:

print(*a, sep='\n') #  unpack the values of and print them separated by a newline

a, b = dozen(eggs)  # unpack the return values and assign each of them to a and b respectively
print(a, b, sep='\n')

偶然地,内置divmod只会给您正确的结果。

divmod(25, 12) #  returns 2, 1

答案 2 :(得分:0)

eggs = int(input())

def dozen(x):
    y = x // 12
    z = x % 12
    print(y)
    print(z)
a = dozen(eggs)

为什么不只是将print语句添加到函数中并丢失返回值。