输入出生日期

新手上路,请多包涵

伙计们,我在以 dd/mm/yyyy 格式输入出生日期时遇到了问题

要遵循的说明是

  1. 提示用户在下面输入出生日期。

  2. 通过将字符串分成 3 个切片来提取 3 个字段。要将日期与月份分开,您需要先使用 find() 方法找到第一个斜杠的位置。要将月份与年份分开,您需要使用 rfind() 方法找到最后一个斜杠的位置。

我试过在索引的同时进行字符串切片和连接,但我对如何做,或者我是否正在做这件事很犹豫。也不允许使用条件语句。

 birthday = input("Enter your date of birth: ",)

day = birthday.find("/")
month = birthday.find("/")
year = birthday.rfind("/")

print("Day: ",day)
print("Month: ", month)
print("Year: ", year)

预期的格式是:

输入您的出生日期:30/8/1985

天数:30

月份:8

年份:1985

原文由 Hopeful_venture 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
2 个回答

使用 rfind() 是一种迂回的方式。它会起作用,但你会更好

day, month, year = birthday.split("/")

如果您的导师坚持 find / rfind 方法,那么您可以这样做:

 day = birthday[:birthday.find("/")]
month = birthday[birthday.find("/")+1:birthday.rfind("/")]
year = birthday[birthday.rfind("/")+1:]

练习的目的可能是教您如何对字符串进行切片,而不是如何编写可读性强的 Python。

原文由 BoarGules 发布,翻译遵循 CC BY-SA 4.0 许可协议

从有关 findrfind文档 中阅读。它们返回已发现事件的最低和最高索引。所以你应该这样做:

 b = "30/8/1985"

first_sep, last_sep = b.find("/"), b.rfind("/")
day = b[:first_sep]
month = b[first_sep+1:last_sep]
year = b[last_sep+1:]

print("Day: ", day)
print("Month: ", month)
print("Year: ", year)

输出:

 Day:  30
Month:  8
Year:  1985

原文由 Lante Dellarovere 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题