删除d中的前导零

2024-09-28 05:19:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须在(年/月/日)表格中输入日期。所以,当我报告这个日期时,我会有一些类似于05/13/1999的内容,如何从这个月中去掉零。我希望它仍然能读到1999年11月12日这样的两位数月份

from functionax import disp_bday
name = raw_input("Enter name: ")
s = date = raw_input("Enter dob (mm/dd/yyyy): ")
x = month = int((s[0:1])             
year = s[6:10]
print disp_bday(name, month, year)

functionax在下面

^{pr2}$

Tags: name内容inputraw报告year表格enter
3条回答

这听起来像是要使用Regular Expression来完成此操作:

import re

m = re.match(r'(\d{1,2})/(\d{1,2})/(\d{4})', date)
if m:
    print disp_bday(m.groups())
else:
    print "invalid input"

查看here以获取有关所用表达式的更多信息

第4行缺少右括号。在

你可以:

from datetime import date

flowers = [
    'Carnations',
    'Primroses',
    'Daffodils',
    'Sweet peas',
    'Hawthorn flowers',
    'Roses',
    'Water lilies',
    'Poppies',
    'Asters',
    'Calendulas',
    'Chrysanthemums',
    'Holly flowers'
    ]

def display_birthday_wishes(name, month, year):
    p = date.today().year
    current_age = (int(p)-int(year))
    return "Hi, " + name + ". You are " + str(current_age) +\
    " years old this year! Here's a bouquet of "+ flowers[month-1] +" for you!"

name = raw_input("Enter name: ")
foo = raw_input("Enter dob (mm/dd/yyyy): ")
month, d, year = foo.split("/")
if month[0] == "0":
    month = int(month[1:])
print display_birthday_wishes(name, month, year)

请注意,我必须修改前面的示例,以便不提及date(我只是将该变量缩短为d),否则它会干扰date函数。在

不要自己解析sate,而是使用内置的datetime模块

>>> dt = datetime.strptime("05/13/1999", "%m/%d/%Y")
>>> dt.month
5
>>> dt = datetime.strptime("11/12/1999", "%m/%d/%Y")
>>> dt.month
11

所以,换个代码就行了

^{pr2}$

dt = datetime.strptime(date , "%m/%d/%Y")
x = month = dt.month
year = dt.year

相关问题 更多 >

    热门问题