【发布时间】:2020-11-30 16:57:20
【问题描述】:
我制作了一个格式为:日/月/年的函数。我想做另一个功能,例如询问用户:“你想什么时候来?”并取决于用户说我想打印答案的月份。
问题:我不知道如何制作要求用户输入格式的功能:日/月/年不限制年份,我希望用户输入任何年份并且仍然能够获得与任何年份(但不同月份)的答案相同。
enter code here
import datetime
def dateformat(date):
return datetime.datetime.strptime(datumet, "%d/%m/%Y")
def ask_user():
winter = dateformat('1/1/2020') <= dateformat('31/3/2020')
spring = dateformat('1/4/2020') <= dateformat('31/5/2021')
summer = dateformat('1/6/2020') <= dateformat('31/9/2021')
autumn = dateformat('1/10/2020') <= dateformat('31/12/2021')
a = dateformat(input("When do you want to come"))
if a == winter:
print("Hi")
if a == spring:
print("bye")
if a == summer:
print("ok")
if a == autumn:
print("no")
我的问题:我怎样才能使这段代码在任何一年都有效?我希望能够在月份内输入任何年份并获得相同的输出。如果我只在 dateformat 函数中返回 %d/%m,用户将无法输入:日/月/年。有没有更好的方法来返回格式?
【问题讨论】:
-
从输入中您可以提取日期和月份。这将允许用户输入任何年份。那么,这个
If I only return %d/%m in the dateformat-function the user will not be able to type: day/month/year就不成问题了。季节不取决于年份。 -
@MacOS 你是什么意思?不关心哪一年,怎样才能让所有的飞蛾都过冬?
-
我不认为你的代码做你期望它做的事情。一方面,
31/9/2021不是实际日期,因此dateformat会抛出错误。其次,winter、spring等是布尔值。您实际上是将日期与布尔值进行比较,因此它们永远不会相等,您也不会得到任何输出。 -
@PranavHosangadi 你有例子吗?我明白你的意思了。
-
@PranavHosangadi 我怎样才能让冬天例如:01/12
标签: python python-3.x datetime if-statement format