在 Python 中根据用户输入创建日期
Create a date from user Input in Python
从用户输入创建日期:
- 使用
input()
函数从用户那里获取输入。 - 取年、月、日的值。
- 使用模块中的
date()
类datetime
来创建日期。
主程序
from datetime import date, datetime year = int(input('Enter a year: ')) month = int(input('Enter a month: ')) day = int(input('Enter a day: ')) d = date(year, month, day) print(d) # --------------------------------------- # 👇️ date and time hours = int(input('Enter the hour: ')) minutes = int(input('Enter the minutes: ')) seconds = int(input('Enter the seconds: ')) dt = datetime(year, month, day, hours, minutes, seconds) print(dt)
我们使用该input()
函数从用户那里获取输入。
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
请注意,
input()
即使用户输入数字,该函数也保证返回一个字符串。这就是为什么我们必须在int()
将值传递给date()
和datetime()
类之前使用类来转换值。
主程序
from datetime import date year = int(input('Enter a year: ')) month = int(input('Enter a month: ')) day = int(input('Enter a day: ')) d = date(year, month, day) print(d)
如果您需要创建一个datetime
对象,还需要为小时、分钟和秒取值。
主程序
from datetime import datetime year = int(input('Enter a year: ')) month = int(input('Enter a month: ')) day = int(input('Enter a day: ')) hours = int(input('Enter the hour: ')) minutes = int(input('Enter the minutes: ')) seconds = int(input('Enter the seconds: ')) dt = datetime(year, month, day, hours, minutes, seconds) print(dt)
或者,您可以从用户那里获取单个输入值并将其拆分为日期组件。
从用户输入创建日期:
- 使用该
input()
函数获取格式为YYYY-MM-DD
. - 拆分连字符上的输入值并将日期组件转换为整数。
- 使用模块中的
date()
类datetime
来创建日期。
主程序
from datetime import date date_components = input('Enter a date formatted as YYYY-MM-DD: ').split('-') print(date_components) year, month, day = [int(item) for item in date_components] d = date(year, month, day) print(d)
我们使用该input()
函数获取格式化为的字符串,YYYY-MM-DD
并使用该str.split()
方法在每个连字符上拆分它。
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
主程序
print('2023-11-22'.split('-')) # 👉️ ['2023', '11', '22'] print('2024-06-21'.split('-')) # 👉️ ['2024', '06', '21']
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分(可选) |
下一步是使用列表理解将字符串转换为整数。
主程序
from datetime import date date_components = input('Enter a date formatted as YYYY-MM-DD: ').split('-') print(date_components) year, month, day = [int(item) for item in date_components] d = date(year, month, day) print(d)
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们使用int()
该类将当前字符串转换为整数并返回结果。
最后一步是将日期组件传递给date
类以创建日期对象。