如何在另一个函数中使用函数的输出?

2024-09-27 07:26:17 发布

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

我创建了一个函数从用户那里获取日期,并使用strptime将其转换为datetime格式。函数名为Obtaindate()。这将作为另一个函数Getdata()的输入。现在,在第二个函数Getdata()中,我需要用timedeltaObtaindate()中减去日期。但是我得到了错误TypeError: unsupported operand type(s) for -: 'NoneType' and 'datetime.timedelta'

我应该怎么做才能得到从第一个函数到第二个函数的日期

以下是代码示例:

def ObtainDate():
   
    isValid=False

    while not isValid:

        userin = str(input("Type Date ddmmyy: "))
        
        try: 
            dt = datetime.datetime.strptime(userin, '%d%m%y')
            print('You have selected {}'.format(datetime.date.strftime(dt, '%d-%b-%Y')))
            break
        except:
            print("Incorrect format...try again!")
            continue

            return dt

ObtainDate()
    
def Getdata():
    
    date1 = ObtainDate() - datetime.timedelta(1)
    date2 = datetime.datetime.today()
    delta = datetime.timedelta(1)
    
    while date1 < date2:

        print('Download in progress...')

Tags: 函数formatdatetimedefdttimedeltaprinttry
1条回答
网友
1楼 · 发布于 2024-09-27 07:26:17

尝试此操作-在行中添加注释以显示add.mmove/delete

exception不是很好-最好捕获特定的异常


def ObtainDate():
   
    isValid=False

    while not isValid:

        userin = str(input("Type Date ddmmyy: "))
        
        try: 
            dt = datetime.datetime.strptime(userin, '%d%m%y')
            print('You have selected {}'.format(datetime.date.strftime(dt, '%d-%b-%Y')))

            return dt    ####### moved here
        except:
            print("Incorrect format...try again!")
            continue

# REMOVED        return dt

def Getdata(adate): # ADDED PARAMETER
    
    date1 = adate- datetime.timedelta(1) # USE PARAMETER
    date2 = datetime.datetime.today()
    delta = datetime.timedelta(1)
    
    while date1 < date2:

        print('Download in progress...')
        # ADDED SAVING DATA
        data_for_this_date = …

    # ADDED RETURN
    return data_for_this_date

# ADDED SAVING VALUE OF FUNCTION CALL
theday = ObtainDate()
# ADDED PASSING the result from Obtaindate()
# AND ADDED store result returned by Getdata in a variable
data = Getdata( theday )


相关问题 更多 >

    热门问题