2017-04-09 11 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

ほとんどすべての言語で文字列を比較すると、リテラル比較です。

だから、次のコード:文字列は"No"とまさにそれであるならば

if(MyString == "No") 

のみを通過します。 "no""No "" no"などの他の例はすべて異なるため、合格しません。

ほとんどの言語は、あなたの人生をより簡単にするためのツールをいくつか提供しています。

これは、lower()と呼ばれ、文字列のすべての大文字を小文字に変換します。

ので"Foo".lower();はあなたにセカンドがstrip()ある"foo"

を与えるだろう。これは、文字列の末尾にある先頭と末尾の空白文字を削除するので、" Foo "は "Foo"になります。

両方の組み合わせを使用すると文字列の値がずっと簡単になります。

関連する問題