我试着做一个基本的程序,显示离你的下一个生日还有多少天,但是当我在终端运行它时,它说输入值应该返回一个字符串而不是一个整数?在python中使用输入函数时,它不会自动返回字符串值吗?

    import datetime
    currentDate = datetime.date.today()

    userinput = input("Please enter your birthday(MM.DD.YY)")
    birthday = datetime.datetime.strptime(userinput, "%m/%d/%Y")
    print(birthday)

最佳答案

使用%y(小写字母)捕捉两位数年份
您应该向用户建议所需的格式-您希望是“MM/DD/YY”,但您告诉用户键入“MM.DD.YY”
要计算差异,请使用以下方法(对于python3,对于python2,请使用Jahangir提到的raw_输入):

import datetime
today = datetime.date.today()

userinput = input("Please enter your birthday(MM/DD):")
birthday = datetime.datetime.strptime(userinput, "%m/%d")
birthday = datetime.date(year=today.year, month=birthday.month, day=birthday.day)

if (birthday-today).days<0:
    birthday = datetime.date(year=today.year+1, month=birthday.month, day=birthday.day)

print("%d days to your next birthday!"%(birthday-today).days)

关于python - 使用“Strptime()”在Python中显示时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37503315/

10-10 06:09