需要一个密码来等于日期(d / m / y)

时间:2019-05-21 17:45:23

标签: python

我们的老师给我们分配了一个“密码”(不是登录名,基本上是创建一个始终等于日期的变量,然后创建一个“ if- else”变量,以便该变量等于date))

您所看到的代码只是我尝试过的,我在网络上找不到任何内容。

import datetime
x = datetime.datetime.now()
xd=x.strftime("%d")
xm=x.strftime("%m")
xy=x.strftime("%Y")
Date = [xd,xm,xy]
password=input("what is the password?")
if password==Date:
    print("well done")
else:
    print("try again")

我没有语法错误

4 个答案:

答案 0 :(得分:6)

您将以一种过于“分散”的方式进行处理。您可以一次将日期转换成字符串:

import datetime
x = datetime.datetime.now()
date = x.strftime("%d%m%Y")  # will produce '05212019'
# alternatively:  "%d,%m,%Y"   would produce '05,21,2019' - you can customize this format
password = input("Enter the password. ")
if password == date:
    print("Well done")
else:
    print("Try again")

答案 1 :(得分:1)

第一个Date是保留字,因此我建议使用date

date是一个列表,password是一个字符串,因此您需要将Date更改为字符串

date = ''.join(date) # 21052019

OR

password更改为列表(假设输入类似21 05 2019

password = input("what is the password?").split(' ') # ['21', '05', '2019']

OR

不创建列表,仅使用datetime

生成密码/日期
date = x.strftime("%d%m%Y") # 21052016

答案 2 :(得分:0)

不确定要使用哪种格式,但是可以执行以下操作,然后修改格式,使其看起来完全符合您的需要:

>>> import datetime
>>> datetime.date.today().strftime("%B %d, %Y")
'May 21, 2019'

您可以更改为...

*.strftime("%B%d%Y") 

...例如,如果您需要它来删除空格和逗号。

如果您需要使用不同格式的时间位,此站点https://www.programiz.com/python-programming/datetime/strftime的格式代码列表非常好(%h,%d,%y等)。

答案 3 :(得分:0)

现在,Date是一个列表,password是一个字符串。您需要更改一个以匹配另一个,否则它们将永远不会比较相等。

import datetime
x = datetime.datetime.now()
xd=x.strftime("%d")
xm=x.strftime("%m")
xy=x.strftime("%Y")
Date = xd+","+xm+","+xy
password=input("what is the password?")
if password==Date:
    print("well done")
else:
    print("try again")