2017-04-09 29 views
2

下面是我想了解的代碼。它接收用戶輸入,我擔心的是隻有當我鍵入「否」而不是「否」時才起作用。爲什麼我不得不繼續讓我的「不」資本使我的程序在Python中工作

houseprice = int(input("please enter the house cost: $")) 

while houseprice <= 0: 
    print("please enter a valid number try again") 
    houseprice = int(input("please enter the house cost: $")) 

familyincome = int(input("please enter your family income: $")) 
houseowened = input("have you owened a house before? ('Yes' or 'No')") 
while not houseowened == 'Yes' and houseowened == 'No': 
    print("please enter a valid answer") 
    houseowened = input("have you owened a house before? ('Yes' or 'No')")  

if houseprice > 500000 or familyincome > 100000 or houseowened == 'Yes': 
    print("eligeble") 
else: 
    if houseowened == 'No' or familyincome < 100000 or houseprice < 500000 : 
     print("not eligible") 
+1

是否以滿意的方式回答您的問題?如果是這樣,請使用旁邊的複選標記標記正確的答案。這有助於社區知道問題得到了解答。 –

+0

如果您的問題已得到解答,請使用旁邊的複選框標記正確答案。否則,我們可以做什麼來澄清? –

回答

1

看看你的代碼中的比較。他們正在比較字符串"No"。如果你想要接受小寫形式,也許你應該做這樣的事情無處不在,你有houseowned == 'No'

(houseowened.lower() == 'no') 

這種變化將接受任何資本。請務必對所有yes進行相應更改。

1

在幾乎所有語言中比較字符串時,它是一個字面比較。

所以下面的代碼:

if(MyString == "No") 

如果字符串是"No",準確只會通過。 "no","No "," no"和其他這樣的例子都將不通過檢查,因爲它們是不同的。

大多數語言提供了幾個工具,可以讓你的生活在這方面更容易。

對於Python,這被稱爲lower(),它將字符串的所有大寫字母轉換爲小寫。

所以"Foo".lower();會給你"foo"

二是strip()。這一個刪除字符串末尾的前導和尾隨「空白」字符,因此" Foo "將變成「Foo」

使用這兩個組合使檢查字符串值變得更加簡單。

相關問題