如何在Python中过滤和格式化输入函数中的数据?

时间:2016-02-14 08:04:40

标签: python

当我在C中定义结构时,我可以使用scanf函数从标准输入中获取和格式化数据。

例如:

struct date { int day; int month; int year;}; 
struct date today;

scanf("%i/%i/%i", &today.day, &today.month, &today.year)

但是如果我已经定义了一个新类,我怎么能在Python中获得相同的功能呢?我试图编写一个代码,但它太长了。你能介绍一个简单的方法吗?

3 个答案:

答案 0 :(得分:2)

代码:

class Date(object):
    def __init__(self, day=None, month=None, year=None):
        self.day = day
        self.month = month
        self.year = year

val = raw_input("Enter date in day/month/year format: ")
vals = val.split("/")
today = Date(*vals)

print "{}/{}/{}".format(today.day, today.month, today.year)

给出:

% python filterformat.py
Enter date in day/month/year format: 14/02/2016
14/02/2016

答案 1 :(得分:1)

Python带有铃声和口哨声,使用它们:

import datetime as dt

# input for python3, raw_input for python2
datestr = input('Please enter a date using this format: %d/%m/%Y')
date = dt.date.strptime(datestr, format='%d/%m/%Y')

print('You entered {:%d/%m/%Y}'.format(date))

有关详细信息,请参阅日期时间文档: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

答案 2 :(得分:0)

您可以使用dateparser模块。来自文档:

  

这将尝试从给定字符串中解析日期,尝试每次都检测语言。

>>> np.dot(a, a) array([[ 7, 10], [15, 22]]) 函数将解析几乎任何标准日期格式,并从给定字符串返回datetime对象,其中datetime是标准格式并内置到python中。

用户输入日期的用法:

parse