无法使创建的python函数返回一个值,然后我可以在另一个计算中使用该值

无法使创建的python函数返回一个值,然后我可以在另一个计算中使用该值,python,python-3.x,Python,Python 3.x,我定义了一个函数,询问您在工作日什么时候开始,以及一个函数,询问您何时结束。我现在试图定义一个函数来计算它们之间的时间差,而我遇到的一个问题实际上是使用调用start/finish函数的结果 我很难理解如何使函数返回我想要的值,即当我调用函数并添加Monday参数时,从而询问具体在星期一开始的工作时间。我不确定如何获得类似“10:00”的结果,因此我可以在另一个函数中使用该结果返回 而且,我越是深入编写这段代码,就越是对如何区分日子感到困惑。如中所示,我创建了一个函数,询问您何时开始,然后我将其

我定义了一个函数,询问您在工作日什么时候开始,以及一个函数,询问您何时结束。我现在试图定义一个函数来计算它们之间的时间差,而我遇到的一个问题实际上是使用调用start/finish函数的结果

我很难理解如何使函数返回我想要的值,即当我调用函数并添加Monday参数时,从而询问具体在星期一开始的工作时间。我不确定如何获得类似“10:00”的结果,因此我可以在另一个函数中使用该结果返回

而且,我越是深入编写这段代码,就越是对如何区分日子感到困惑。如中所示,我创建了一个函数,询问您何时开始,然后我将其与另一个函数相结合,该函数基本上以一周中的几天为周期。我意识到我不知道如何将周一的ask_start_time函数与周四的ask_start_time函数分开

我得到的错误是:

What time did you start on Monday?10:00
Traceback (most recent call last):
File "C:/Users/MM/PycharmProjects/pythonProject2/test.py", line 49, in <module>
start_datetime = datetime.datetime.strptime(mon, '%H:%M')
TypeError: strptime() argument 1 must be str, not None
问题是,ask_start_time和ask_finish_time不会返回任何结果,或者根本不会返回任何结果。从这些函数返回解析的时间,您的代码将正常工作

def ask_start/end_time(...):
    ...
    return start/finish
问题是,ask_start_time和ask_finish_time不会返回任何结果,或者根本不会返回任何结果。从这些函数返回解析的时间,您的代码将正常工作

def ask_start/end_time(...):
    ...
    return start/finish
def ask_start_timeday_名称,尝试次数=25: 对于范围内的尝试: start=inputf'您在{day\u name}什么时候开始的?' 验证=重新匹配^[0-1]?[0-9]| 2[0-3]:[0-5][0-9]$,开始 如果验证: 回程起动 打印“请仅使用HH:MM格式。” 其他: 打印了25次错误的尝试,但你仍然不明白这是HH:MM def ask_finish_timeday_名称,尝试次数=25: 对于范围内的尝试: finish=inputf'您在{day\u name}什么时候完成的?' 验证=重新匹配^[0-1]?[0-9]| 2[0-3]:[0-5][0-9]$,完成 如果验证: 返回终点 打印“请仅使用HH:MM格式。” def天数: 工作日=[周一、周二、周三、周四、周五、周六、周日] 开始时间={day:ask_start_time for day in work_days} 打印开始时间 定义时间差a,b: 返回b-a 开始=询问“星期一”的开始时间 start_datetime=datetime.datetime.strtimestart,'%H:%M' 完成=询问“星期一”的完成时间 finish_datetime=datetime.datetime.strtimefinish,'%H:%M' 打印时间\u差异开始\u日期时间,完成\u日期时间 def ask_start_timeday_名称,尝试次数=25: 对于范围内的尝试: start=inputf'您在{day\u name}什么时候开始的?' 验证=重新匹配^[0-1]?[0-9]| 2[0-3]:[0-5][0-9]$,开始 如果验证: 回程起动 打印“请仅使用HH:MM格式。” 其他: 打印了25次错误的尝试,但你仍然不明白这是HH:MM def ask_finish_timeday_名称,尝试次数=25: 对于范围内的尝试: finish=inputf'您在{day\u name}什么时候完成的?' 验证=重新匹配^[0-1]?[0-9]| 2[0-3]:[0-5][0-9]$,完成 如果验证: 返回终点 打印“请仅使用HH:MM格式。” def天数: 工作日=[周一、周二、周三、周四、周五、周六、周日] 开始时间={day:ask_start_time for day in work_days} 打印开始时间 定义时间差a,b: 返回b-a 开始=询问“星期一”的开始时间 start_datetime=datetime.datetime.strtimestart,'%H:%M' 完成=询问“星期一”的完成时间 finish_datetime=datetime.datetime.strtimefinish,'%H:%M' 打印时间\u差异开始\u日期时间,完成\u日期时间
这不是它的工作原理。你必须先将函数的结果影响到一个变量,然后再使用它。你的意思是我必须先将函数的结果分配给一个变量,然后才能在计算中使用它吗?如果是,我如何隔离该结果并分配它?基本上,我的问题是,当我运行代码并输入我的开始时间和结束时间时,我不知道如何将该数字作为一个独立的数字进行访问,然后我可以进行其他计算。我发布了一个描述如何进行计算的答案。不知何故,我错过了这一点,非常感谢您花时间提供帮助。谢谢,不客气,这不是它的工作原理。你必须先将函数的结果影响到一个变量,然后再使用它。你的意思是我必须先将函数的结果分配给一个变量,然后才能在计算中使用它吗?如果是,我如何隔离该结果并分配它?基本上,我的问题是,当我运行代码并输入我的开始时间和结束时间时,我不知道如何将该数字作为一个独立的数字进行访问,然后我可以进行其他计算。我发布了一个描述如何进行计算的答案。不知何故,我错过了这一点,非常感谢您花时间提供帮助。非常感谢。不客气。谢谢你的帮助
花时间回复@欢迎光临:感谢您抽出时间回复@马可姆,不客气: