打印和格式化输出

2 投票
4 回答
1677 浏览
提问于 2025-04-17 06:59

我有一个简单的脚本:

now = datetime.datetime.now()
print "%d%d%d%d%d" % ( now.year, now.month, now.day, now.hour, now.minute )

结果:

20111124149

如何得到这个结果:

201111241409

?

4 个回答

1

这段代码是用来处理一些特定的任务的。它可能涉及到一些数据的操作,比如读取、修改或者存储信息。具体来说,代码块中的内容会按照一定的逻辑顺序执行,帮助程序完成它的目标。

如果你对代码的具体功能有疑问,可以尝试逐行分析,看看每一行代码在做什么。这样可以帮助你更好地理解整个程序的运行过程。

记住,编程就像是给计算机下指令,指引它完成你想要的事情。多练习,多尝试,你会越来越熟悉这些代码的含义。

now = datetime.datetime.now()
print "%d%02d%02d%02d%02d" % (now.year, now.month, now.day, now.hour, now.minute)
7

第一种方法:用 %02d 替代 %d。这样可以在数字前面加零,确保总宽度为两位。

print "%02d%02d%02d%02d%02d" % (now.year, now.month, now.day, now.hour, now.minute)

第二种方法,更正确的做法:使用 datetime.strftime

print now.strftime('%Y%m%d%H%M')

关于格式字符串的解释,可以查看 Python 文档中的 strftime()strptime() 的行为

4

指定数字的宽度为两位,并且用零填充:

now = datetime.datetime.now()
print "%04d%02d%02d%02d%02d" % ( now.year, now.month, now.day, now.hour, now.minute )

如果我们把其中一个部分拆解开来,可以得到:

  • % 表示一个替换目标的开始。
  • 0 表示结果要用零填充。
  • 2 表示结果的宽度应该是2个字符。
  • d 表示这是一个十进制的数值。

更多信息:

撰写回答