gpt4 book ai didi

python - 作业,Python 3 : Changing a Variable Type From Within a Function

转载 作者:太空宇宙 更新时间:2023-11-04 04:36:51 25 4
gpt4 key购买 nike

对于部分赋值,我需要从一个函数返回变量作为字符串。然后我需要获取这些变量并将它们放入另一个函数,最后将这些相同的变量作为整数返回。我希望这不是太含糊。这似乎是我自己很容易找到的东西,但我已经搜索了大约一个小时。

startHourstartMinute 是我要转换的变量。

这里是有问题的函数:

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 正确返回整数值:

return True, int(startHour), int(startMinute)

但是当你调用这个函数时,你会忽略那些返回值:

validateUserInputTime(startHour, startMinute)

...所以它们是否正确并不重要;你没有对他们做任何事情。

如果您随后尝试 print(type(startHour)),它仍将是 str,因为它仍然是相同值的名称。

如果你想将这些返回值分配给你的变量,你需要一个赋值语句:

success, startHour, startMinute = validateUserInputTime(startHour, startMinute)

现在,print(type(startHour)) 将显示 int


但是,这是一个非常奇怪的函数接口(interface)。如果成功,则返回 True 加上两个值;如果失败,则返回 False 且不返回任何其他内容。因此,对于无效时间,该赋值将引发 TypeError: 'bool' object is not iterable

即使在失败的情况下,您也可以通过返回三个值来解决此问题:

return False, int(startHour), int(startMinute)

或者,也许更简单,只使用一个return:

success = int(startHour) in hoursList and int(startMinute) in minutesList
if not success:
print("FAIL")
return success, int(startHour), int(startMinute)

关于python - 作业,Python 3 : Changing a Variable Type From Within a Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com