[英]Unsupported operand types python3
因此,我不斷收到上述錯誤消息,但我不明白為什么。 這是我到目前為止的內容:
#request user input for property value
def getPropertyValue():
value = 0
value = float(input('Please enter value of desired property: '))
#eliminate negative answers
if value < 0:
print('Invalid property value, please re-enter a positive value. ')
getPropertyValue()
#return valid answers
else:
return value
#calculate assessed value
def calc_assessed_value(value):
a_value = value * 0.60
return a_value
#calculate property tax, 72 cents of each 100 dollars
def calc_property_tax(a_value):
p_tax = a_value / 100 * 0.72
p_tax = round(p_tax, 2)
return p_tax
#display results with meaningful text
def print_message(value, a_value , p_tax):
print('Property Value: $' , value)
print('Assessed Property Value: $' , a_value)
print('Property Tax: $' , p_tax)
#run functions in order
value = getPropertyValue()
a_value = calc_assessed_value(value)
p_tax = calc_property_tax(a_value)
print_message(value , a_value , p_tax)
當我以正數運行它時,它會工作。 如果我連續運行負數,它會按預期切斷它,並循環播放直到它們輸入非負數。 但是,如果在此之后輸入正數,則會顯示錯誤消息。 我已經有一段時間了,這對我來說沒有意義。 我以為輸入一個負數可能會影響它要使用的數字類型,因此我嘗試在輸入之前將總數歸零(這就是為什么值= 0)的原因,但仍然不允許它通過。
如果要遞歸執行getPropertyValue
,則應返回函數而不是僅執行它。 在此處添加返回聲明:
#eliminate negative answers
if value < 0:
print('Invalid property value, please re-enter a positive value. ')
return getPropertyValue()
在您的getPropertyValue
函數中,當用戶輸入一個負數時,您再次遞歸調用getPropertyValue()
,但是您沒有返回其返回值,因此默認情況下它返回None
,從而導致calc_assessed_value
稍后使用None
值進行計算。
只需更改:
getPropertyValue()
至:
return getPropertyValue()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.