Skip to main content
 首页 » 编程设计

python之如何在python中检查raw_input是否为整数、字符串和日期

2025年05月04日17webabcd

我想检查我的用户输入是整数、字符串还是日期。

data1 = raw_input("data = ") 
    print(data1) 
 
    if isinstance(data1, datetime.datetime.strptime(data1, '%Y-%m-%d')): 
 
        print("date it is") 
 
    elif isinstance(data1, int): 
 
        print("int it is") 
 
    elif isinstance(data1, basestring): 
        print("str it is") 

但它显示:

time data '10' does not match format '%Y-%m-%d' 

请您参考如下方法:

  1. datetime.datetime.strptime()如果字符串与格式不匹配,将引发 ValueError。

  2. raw_input()总是返回字符串对象,所以 isinstance(data1, int)如果您在检查之前不将 data1 转换为 int 对象,则始终为 False。

  3. 我建议使用 try...except像下面的代码一样捕获 ValueError:

    import datetime 
     
    data1 = raw_input("data = ") 
    print(data1) 
     
    try: 
        datetime.datetime.strptime(data1, '%Y-%m-%d') 
     
    except ValueError: 
     
        try: 
            int(data1) 
     
        except ValueError: 
            print("str it is") 
     
        else: 
            print("int it is") 
    else: 
        print("date it is") 
    

    演示:

    kevin@Arch ~> python2 input_check.py  
    data = 2014-01-02 
    2014-01-02 
    date it is 
     
    kevin@Arch ~> python2 input_check.py  
    data = 12 
    12 
    int it is 
     
    kevin@Arch ~> python2 input_check.py  
    data = foobar 
    foobar 
    str it is