3 回答
TA贡献1784条经验 获得超8个赞
您必须从函数返回值并替换您将要使用的变量。
def Validation(digits):
while not digits.isdigit():
digits = input("Please select an interger for this part")
return int(digits)
length_1 = input("What is the length of one of the sides?")
length_1 = Validation(length_1)
length_2 = input("What is the length of another side?")
length_2 = Validation(length_2)
answer = length_1 * length_2 / 2
print(answer)
TA贡献1712条经验 获得超3个赞
Python 按值传递。在digits
传递给你的函数是重新分配的最后一行。这不会改变原始值,它只会创建一个新变量。而不是你在做什么,return int(digits)
TA贡献1817条经验 获得超14个赞
digits = int(digits)无法更改传递给Validation. 函数中的所有重新分配都改变了函数参数所指向的内容。这在函数之外没有任何影响。
只需返回解析后的数字:
def Validation(digits):
while not digits.isdigit():
digits = input("Please select an interger for this part")
return int(digits)
length_1 = input("What is the length of one of the sides?")
parsed_length_1 = Validation(length_1)
添加回答
举报