如何使用函数的返回值并在下一个函数中使用

2024-10-01 07:48:39 发布

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

我想使用第一个函数的值来应用于我正在定义的第二个函数。你知道吗

我定义了collectUserInputTime(),它不带参数。你知道吗

一旦我调用了collectUserInputTime(),它就不会更改startHourstartMinute的值。你知道吗

另外,如果我不在函数外定义startHourstartMinute,我将得到一个startHourstartMinute未定义。你知道吗

我还尝试在collectUserInputTime()内部添加print(startHour),它确实打印了我的input(),但它没有更改函数外部的startHourstartHour仍然是一个空字符串。你知道吗

startHour = ''
startMinute = ''
def collectUserInputTime():
     print('Enter the time the call starts in 24-hour rotation:')
     data = input()
     astop = data.find(':')
     startHour = data[0:astop]
     startMinute = data[astop+1:]
     return startHour and startMinute



def validateUserInputTime(startHour , startMinute):
    if (startHour in hoursList and startMinute in minutesList):
        print('it is valid')
    else:
        print('input invalid')

collectUserInputTime()
validateUserInputTime(startHour, startMinute)

如何使用来自collectUserInputTime()的返回值,即startHourstartMinute?最终,我可以在我的函数validateUserInputTime(startHour, startMinute)中验证


Tags: andthe函数ininputdata参数定义
3条回答
startHour = ''
startMinute = ''
def collectUserInputTime():
     print('Enter the time the call starts in 24-hour rotation:')
     data = input()
     astop = data.find(':')
     startHour = data[0:astop]
     startMinute = data[astop+1:]
     print(startHour)
     print(startMinute)
     return startHour, startMinute

ret_val = collectUserInputTime()
print("Hours: ", ret_val[0])
print("Minutes: ", ret_val[1])

输出:

13:54
13
54
Hours:  13
Minutes:  54

因此,您可以在validateUserInputTime(startHour , startMinute)中使用它:

def validateUserInputTime(startHour , startMinute):
    if (startHour in hoursList and startMinute in minutesList):
        print('it is valid')
    else:
        print('input invalid')

ret_val = collectUserInputTime()
startHour = ret_val[0]
startMinute = ret_val[1]
validateUserInputTime(startHour, startMinute)

首先,我要更改collectUserInputTime()函数返回的内容。我会用一张单子!你知道吗

然后我将使用一个称为“Helper function”的CS概念:简而言之,您可以在另一个函数中调用一个函数。你知道吗

代码如下

def collectUserInputTime():
 data = input('Enter the time the call starts in 24-hour rotation: ')
 astop = data.find(':')
 startHour = data[0:astop]
 startMinute = data[astop+1:]
 return [startHour, startMinute]

def validateUserInputTime():
 hour = collectUserInputTime()
 startHour, startMinute = int(hour[0]), int(hour[1]) # if lists are int_lists
 if (startHour in hoursList) and (startMinute in minutesList):
     print('It is valid')
 else:
     print('Input invalid')

我还使代码更“Pythonic”在几行!你知道吗

希望这有帮助

startHour = ''
startMinute = ''
def collectUserInputTime():
     print('Enter the time the call starts in 24-hour rotation:')
     data = input()
     astop = data.find(':')
     startHour = data[0:astop]
     startMinute = data[astop+1:]
     return (startHour, startMinute)



def validateUserInputTime(startHour , startMinute):
    if (startHour in hoursList and startMinute in minutesList):
        print('it is valid')
    else:
        print('input invalid')

rtn_data = collectUserInputTime()
validateUserInputTime(rtn_data[0], rtn_data[1])

相关问题 更多 >