对于赋值的一部分,我需要将一个函数中的变量作为字符串返回。然后我需要将这些变量放入另一个函数中,最后将这些变量作为整数返回。我希望这不是太含糊。这似乎是我自己很容易就能找到的东西,但我已经花了大约一个小时的时间去寻找了。你知道吗
startHour
和startMinute
是我要转换的变量。你知道吗
以下是相关功能:
hoursList = []
minutesList = []
listSize = 0
def createList(listSize): #WORKING
while listSize < 24:
hoursList.append(listSize)
listSize += 1
while listSize < 84:
minutesList.append(listSize - 24)
listSize += 1
createList(listSize)
def collectUserInputTime(): #WORKING
startHour, startMinute = input("Enter the time the call starts in 24-hour rotation:\n").split(":")
return startHour, startMinute
def validateUserInputTime(startHour, startMinute): #NEED TO CHANGE STRING TO INT
if int(startHour) in hoursList and int(startMinute) in minutesList:
#print("PASS")
return True, int(startHour), int(startMinute)
else:
print("FAIL")
return False
startHour, startMinute = collectUserInputTime()
validateUserInputTime(startHour, startMinute)
我也试过:
return startHours = int(startHour), startMinute = int(startMinute)
我该怎么办?谢谢。你知道吗
它正在被转换,只是您无法理解您的函数
validateUserInputTime()
正在以整数格式返回值,只是您没有使用print语句显示它使用此代码:
我自己不能尝试这个,因为什么minuteslist和hourslist不清楚,所以我不知道这个函数有什么问题,但是在第二部分,你说
你没有把一个双等号,它会返回None,也会返回一个布尔值,用这个
编辑:从我所看到的工作,唯一的问题是你要么打印通行证或打印验证输入时间
您的代码正确地从
validateUserInputTime
返回整数值:但调用函数时,忽略这些返回值:
……所以它们是否正确并不重要;你不能对它们做任何事。你知道吗
如果你试着
print(type(startHour))
,它仍然是str
,因为它仍然是一个与以前相同的值的名称。你知道吗如果要将这些返回值赋给变量,则需要一个赋值语句:
现在,
print(type(startHour))
将显示int
。你知道吗然而,对于一个函数来说,这是一个非常奇怪的接口。如果成功,则返回
True
加上两个值;如果失败,则返回False
加上其他值。因此,对于无效时间,该赋值将引发TypeError: 'bool' object is not iterable
。你知道吗即使在失败的情况下,也可以通过返回三个值来解决此问题:
或者,更简单地说,只需使用一个
return
:相关问题 更多 >
编程相关推荐