如何将打印语句与return语句放在同一行?

时间:2019-10-12 11:55:53

标签: python

我正在尝试在与return语句相同的行上获取一条print语句,我该怎么做呢?

我试图将print语句放在if语句的下面,但是在return语句的上面,并将结果打印在return语句的上面。

def isleap(y):
    if y % 400 == 0:
        print("Year %d is divisible by 400, therefore it is a leap year" %y)
        return True
    elif y % 100 ==0:
        return False
    elif y % 4 == 0:
        return True
    else:
        return False

我正在导入上面的代码以从另一个文件运行:

import leapyear
print (leapyear.isleap(1800))
print (leapyear.isleap(2019))
print (leapyear.isleap(2000))
print (leapyear.isleap(2012))

这是结果:

False
False
Year 2000 is divisible by 400, therefore it is a leap year
True
True

我希望结果具有类似的内容

  

真实:2000年可以除以400,因此它是a年

所有内容都在同一行中,并包含冒号。

2 个答案:

答案 0 :(得分:1)

您可以return True和打印语句一起使用。在星形*运算符的帮助下,您可以将元组中的元素作为单独的参数传递给print()函数:

def func():
    return True, 'It works.'

print(*func())
# True It works.

如果打印语句的顺序并不重要,则可以将参数end=''添加到第一个print()函数中:

def func():
    print('It works.', end='')
    return True

print(func())
# It works.True

答案 1 :(得分:-1)

您可以执行以下操作:

def isleap(y):
    if y % 400 == 0:
        return True, ': Year %d is divisible by 400, therefore it is a leap year' %y 
    elif y % 100 ==0:
        return False, ''
    elif y % 4 == 0:
        return True, ''
    else:
        return False, ''


print(*isleap(1800), sep='')
print(*isleap(2019), sep='')
print(*isleap(2000), sep='')
print(*isleap(2012), sep='')


print()


# If you want to use it later.
ret = isleap(2000)
if ret[0]:
    print('Length of the message is:', len(ret[1]))

输出:

False
False
True: Year 2000 is divisible by 400, therefore it is a leap year
True

Length of the message is: 60

我回答了这个问题后,提出这个问题的人问他/她想重用结果该怎么做。因此,我更新了与this答案相似的答案。