我的程序查询数据库并返回今天、明天和即将到来的所有生日。然而,我希望即将到来的生日在一行而不是几行。这是它的外观: 生日在不同的行:
这是我的代码:
def in_a_week():
coming_up = datetime.now()
with open('bDay_db.json')as read_file:
bdays = json.load(read_file)
for x in range(2, 5):
soon = (coming_up + timedelta(days=x))
upcoming = (soon.strftime('%b %d'))
#pprint.pprint(upcoming)
if upcoming in bdays.values():
print()
print("Birthday match found in next couple of days: ")
print()
print([kv for kv in bdays.items() if kv[1] in upcoming])
print()
答案 0 :(得分:1)
def in_a_week():
coming_up = datetime.now()
with open('bDay_db.json')as read_file:
bdays = json.load(read_file)
for x in range(2, 5):
soon = (coming_up + timedelta(days=x))
upcoming = (soon.strftime('%b %d'))
#pprint.pprint(upcoming)
print("Birthday match found in next couple of days: ")
if upcoming in bdays.values():
print([kv for kv in bdays.items() if kv[1] in upcoming], end = ", ")
print()
这应该可行!
出了什么问题?
正如您所说,您希望日期在同一行。因此,首先,您使用了打印语句,它在输出中添加了一个换行符。此外,Birthday match found in next couple of days:
语句位于循环内。那应该只在开头打印,对吗?
修复了什么?
我首先删除了打印语句。然后 end=", "
确保在打印语句之后,您的下一个输出保持在同一行。在这里,为了增加功能,我在里面放了一个逗号,所以看起来很漂亮。此外,正如我已经提到的,Birthday match found in next couple of days:
被置于循环之外。最后,我放置了一个空白的打印语句,以确保一旦您退出循环,您的输出就会出现在新的一行。