Python 如何将另一个函数的返回值调用到新函数中?
我只是有一个函数有点问题。我写了一个函数:Python 如何将另一个函数的返回值调用到新函数中?,python,function,return,Python,Function,Return,我只是有一个函数有点问题。我写了一个函数: def dep(): d = int(input("when did the employee depart? Please enter response in military time 0 - 2400 ")) while (d < 0 or d > 2400): d= int(input("Please enter a valid number ")) return d def dep(): d=int(输入(“
def dep():
d = int(input("when did the employee depart? Please enter response in military time 0 - 2400 "))
while (d < 0 or d > 2400):
d= int(input("Please enter a valid number "))
return d
def dep():
d=int(输入(“员工何时离开?请在军事时间0-2400输入响应”))
而(d<0或d>2400):
d=int(输入(“请输入有效数字”))
返回d
在后面的函数中,我需要值d。如图所示:
def mealDep():
dep = dep()
if dep <= 700 and dep > 0:
def mealDep():
dep=dep()
如果dep为0:
我现在知道,我不能只调用dep()并将其赋值给变量,但如何获取返回的值呢?我去清理了几个错误,并使其他事情更好地实践。除了使用
dep=…
隐藏您自己的函数之外,还有一些其他的事情,比如不能安全地使用用户输入。希望这有帮助
def get_departure_time(): # verbosity is GOOD 99% of the time
while True:
# Get the raw input first
departure_time = input("When did the employee depart? Please enter response in military time 0 - 2400:")
# THEN validate. This prevents your code from breaking from type conversion
try:
departure_time = int(departure_time)
assert departure_time > 0 and departure_time < 2400
break # Breaks out of the infinite loop, and returns below
except (ValueError, AssertionError):
print("Please enter response in military time 0 - 2400.")
continue
return departure_time
def meal_dep(): # snek_case > camelback case
departure_time = get_departure_time()
if departure_time <= 700 and departure_time > 0:
...
def get_DEVIATION_time():#详细性在99%的情况下都很好
尽管如此:
#首先获取原始输入
离职时间=输入(“员工什么时候离职?请在军事时间0-2400输入响应:”)
#然后验证。这可以防止代码因类型转换而中断
尝试:
出发时间=int(出发时间)
断言出发时间>0且出发时间<2400
break#跳出无限循环,并在下面返回
除了(ValueError、AssertionError):
打印(“请在军事时间0-2400输入响应。”)
持续
返回出发时间
def fine_dep():#snek_case>camelback case
出发时间=获取出发时间()
如果起飞时间为0:
...
虽然您不应该执行dep=dep()
,因为这样会重新分配名称dep
,但您可以执行somevar=dep()
。还要检查return语句的缩进。它目前不在函数中(尽管这可能只是stackoverflow显示问题)。我还建议捕获当用户输入文本而不是数字时不可避免地发生的错误。“我现在知道我不能只调用dep()并将其分配给变量”嗯,当然你可以这样做。对不起,我认为我不能。我想在网上找到它,但我从user155上看到,我不应该将变量命名为与函数相同的名称。因此,只要第二个函数中的变量与第一个函数中的返回变量同名,它就可以工作?@Jay,不,这与此无关。变量名对程序员来说很方便。如果你愿意,你可以写:foo=get\u deposition\u time()
或not\u deposition\u time=get\u deposition\u time()
,它也可以工作。