我是学习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
我感谢您提供的任何帮助。预先谢谢你!
答案 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语句添加到函数中并丢失返回值。